Life should be fun!

Mindless Pursuits

Some Thoughts On The Nov Epic Game Jam 2015 0

Posted on November 17, 2015 by Keith
Antigens Attack! Main Menu

Antigens Attack! Main Menu

Well, I finally did it. After many months of talking about it, I finally went into a game jam and came out the other side. The November 2015 Epic Game Jam, to be specific! It’s really the first time I’ve been serious about a game jam. Last summer, I gave a half-hearted attempt on the first day of one, but wasn’t really into it. I didn’t have the confidence. This time, I did, and it was sooooo worth it!

The theme for the game jam was ‘Desperate Diseases Require Dangerous Remedies,’ which I found out later in the Epic forums is a Hippocrates quote used by Guy Fawkes. Of course, the game that immediately sprung to mind before I knew that was one of a white blood cell destroying diseased cells. It seemed like an obvious one that others would be doing as well, but I had a vision of it from the start, and decided that finishing the game jam was more important than trying to be the most unique entry. So I sat down and, armed with a sheet of paper, drew what I was envisioning: a motorized white blood cell shooting diseased cells in a red space. So basically, a space shooter with a red tint. With that, I sat down and created a flying mechanic with a basic sphere that had an arrow sticking out the front. All I wanted to do was nail my flying mechanic.

Playing in First-Person Mode

Shooting Down Cells In First Person

Then I created an enemy using a colored sphere that I scaled to be more oblong. I didn’t think about AI or movement for it, I just wanted it to be there, and I was going to award points based upon the types of cells destroyed in a certain time. I was immediately bored. I liked the idea, but having it in wide-open space wasn’t interesting, and it really lowered the challenge level. So then came the idea of setting it within a textured cardiovascular system. I knew I couldn’t model out the system myself in the time I had, but I wanted to get something in place quickly. My previously-purchased ‘Underworld’ environment from the Unreal Marketplace sprung to mind, so I pulled it into the game and set about creating a circulation structure. The idea was now that the player would enter at one spot, and have to get through the system to the far side in a certain amount of time, with added points based upon the cells they destroyed. Except that I had no idea what the time limit should be, so for the time being, I just decided to track how long it took them and ignore the scoring system. That could be created later.

I had already decided to use my favorite weapons pack to get my weapon effects, and so then created my white blood cell model using Aartform Curvy 3D, along with a basic diseased cell. I decided to create three powerups as well, one for health, one for ammo, and one for shield energy. My idea was that these diseased cells, one they detected the player, would rush the player to try and destroy them. The player would have the option of using shields to stave off damage, but the shield energy would drop by the second, so it wasn’t a long-lasting solution. I then grabbed a previously-purchased Forcefield package and pulled it in. By the end of the first night, I had a playable level that used a different material set and colors for the Underworld modules so that it looked more organic, with my white blood cell flying around, and a shield system that looked good, but didn’t do anything yet.

A Third-Person View of the Action!

A Third-Person View of the Action!

The next day I jumped back in, and hit my first major roadblock: I hadn’t realized there was no way to use the AI for movement in 3D! So I researched and researched, and was burning through a lot of time, worried I’d have to drop my idea when the mental light came on. I realized I didn’t have to make the AI too complex. All I had to do was determine the vector to get to my player, check to see if the length was within a given range, then add an impulse to the diseased cell in that direction. After that, things became a lot clearer to me, though I didn’t end up with the diseased cells working as well as I’d wanted.

From that point, I added a second diseased cell, that I made more powerful, as well as a standard blood cell that wouldn’t act as an enemy, but just a psuedo-roadblock from a physics impact perspective. Things were moving well, and it was then that I decided to texture the walls differently to make them seem more ‘bloody’ and liquid-covered. For this I used the C-Media Advanced Materials 1 package. I made an instance of the Flat Opaque Water texture, modified the colors and properties, then used that on the Underworld modules. I love the effect I ended up with. At that point, I was getting tired and decided to spend the night relaxing with my daughters watching anime.

Another screenshot of the battling....

I didn’t get much done on Saturday. I spent most of the day doing stuff with my daughters, and tweaking the ‘AI’ for the diseased cells. It was then that I came up with the mechanic for spawning the cells, based upon the difficulty level, and also integrated the Quality Menu package from the marketplace, to ensure I had video and audio controls in place, in case I ran out of time. When Saturday ended, I was further along, but realized I might not have enough time to do everything I wanted to.

On Sunday, the final day, I had a more significant issue crop up. I was getting an ‘UNKNOWN_ERROR’ failure whenever I would try to cook or package the game. I could play it without issue in a standalone game launched from the Play button, but it just wouldn’t package. I spent a large part of my day trying to troubleshoot it, and was ready to give up on the jam, when a memory error caused Windows 10 to crash and reboot. When it came back up, I checked to ensure my project was correct, then attempted to build it again. It finally built, but only in a Development build. I couldn’t get it to generate a shipping build at all. Still – a development build would work if nothing else. I’d lost a LOT of time though. I decided I needed to focus a bit on polish and lighting.

I was really running low on time by then – only about two hours left. So I focused on my title screen and a main menu, as well as lighting. I SUCK at lighting. I really do. I just don’t get how it all fits together, and nothing was looking good. My white blood cell was grey, my enemies looked greyish and dull despite having colorful textures, and my powerups didn’t show up well. So I quickly updated all of the materials to have emissive colors and did some tweaking, which helped, but not as much as I’d hoped. At that point, I was out of time. So I packaged and posted it, and called it ‘done’ for the night. I was really nervous about the post-submission playthroughs, but there wasn’t much more to do at that time.

I was very happily surprised when the playthroughs provided positive feedback. The slowness stood out, but I expected that, since I hadn’t truly implemented the scoring system and constraints I had planned. The feedback did spark a determination to finish my original vision for the game, so that’s what I’m going to do, and then try putting it up on Steam Greenlight!

So what did I learn from the experience? First off, that if I failed to submit a game, it would have been disappointing, but not nearly as much as not trying would have been. Secondly, there are some external tools such as Substance Painter that I REALLy need to spend more time with before the next jam. Mostly, I learned that it’s okay to learn on the fly – I like doing that, but don’t get hung up for very long chasing down one way of doing something. Start brainstorming multiple approaches as soon as you discover an issue.

I’m really looking forward to the next game jam. I hope I see you participate as well!

What To Expect Between Now and Jan 4, 2016! 1

Posted on October 12, 2015 by Keith
Training at MP Pre-work 2

Training at Mindless Pursuits – Coming later this year!

There’s a lot on the horizon for Mindless Pursuits. Tomorrow will mark three months since I posted the first tutorial video, which was focused on the Generic Shooter Sample Project by Michael Allar in the Unreal Marketplace. At the time, I didn’t expect much. I was making the tutorial just to ‘warm up’ for teaching video game concepts in my daytime teaching job, and with so many tutorials and tutorial channels already available, thought no one but my students at school would ever see them. It was something of an impulse decision to post a thread about them on the Unreal Engine forums. Now – three months and over 400 users later, I’m getting a better handle on what I’m doing, both right and wrong, and have been thinking about what comes next.

Before we dive into what I’ve got planned, let me take a quick step back to explain my philosophy. After 35+ years of software development, coupled with tutoring and training others prior to becoming a licensed teacher, I learned an important lesson: you can be an expert and show people what to do, allowing them to learn by replicating your action and through rote memorization, or you can make them a part of a larger learning experience shared with you, where perfection isn’t the goal, but being willing to experiment, make mistakes, and learn through doing so leaves a more lasting impression. The latter is the core of my teaching approach:

Put the student in a position to learn by sharing the process of learning with them, warts and all, because in so doing, they are stimulated to think about the elements of the lesson as much as the end result, which teaches them even more than they expect. 

I’ve been asked more than once why I don’t edit out or re-record parts of my videos where I end up back-tracking because I’ve made a mistake, or why I would post a video such as the latest installment of the Top Down Shooter series, where I knew the solution wasn’t quite right. It’s simple: people will puzzle through these same issues themselves as part of the learning process, and by seeing the instructor do it, it helps them to know that it’s okay to make mistakes. It also help because then I can try to explain why I had to change things, or backtrack, so the reasoning becomes more clear for them as well. I myself only began using Unreal Engine just over 4 months ago. I’m a very fast learner, but I’m still just a learner myself. I certainly see no value in pretending to be otherwise to students that I hope to inspire!

So what does that mean for the plans going forward? Well, it means I don’t want to keep repeating those elements of lessons I know well enough and use often enough in various series that I become bored with them. A prime example of this is the hierarchy (tree) of weapons. If you’ve watched my videos, you’ve now see it a couple of times: a base weapon, a child weapon blueprint for projectiles, a child weapon blueprint for instant-hit weapons, a child blueprint for melee weapons, and then children of those for specific weapon implementations. It’s something I would implement for almost any game I would create, and so it becomes a repeating element of any series I record. I would much rather record a set of tutorials on how to create various weapons in a hierarchy once and revise it as needed for Unreal Engine changes, than to have to recreate it for each series. I also believe that my students online would rather not have to repeat it every time as well. So instead, I’ll create a standalone series on building a robust weapon tree, and then reference it from within future series. Not only does this mean I don’t need to continually re-record the same type of content, but it opens more time for me to provide unique tutorials on more game-specific items.

Training @ MP Pre-Work

Another look at Training at Mindless Pursuits – Coming Later This Year

Because I am going to make this change to my approach, I am going to be implementing it in the remaining parts of the Top Down Shooter and First/Third Person series. Once the weapons piece of the First/Third Person series is done, I’ll make a ‘master’ weapons series to be referenced in the future. After that, if I have a tutorial I know will be referenced in multiple series, I’ll create it as a standalone and then reference it. Examples of this that are coming up are (in no particular order):

  • Building a character class tree for easier character class creation
  • Implementing ambient music
  • Creating a reusable blueprint template for sounds based upon physical material type
  • Creating a basic attacking and hiding AI
  • Basic connectivity to a listen server for multiplayer games
  • and more….

Meanwhile, there is still a fair amount left to cover in both the Top Down Shooter and First/Third Person series. Between now and January first I hope to finish not only the standalone series listed above, but the two current series as well. That doesn’t mean ending them early, but once all of the items that need to be covered are completed through in-series and standalone tutorials. Additionally, I plan to begin the Non-Massive Multiplayer RPG tutorial series in December, and that will mark a new approach for me, where the online students get to weight in on what will be covered. More details on that next month. Please note that I am not promising to finish every topic I have in mind before January 4th – that would be a LOT to accomplish considering my other commitments to work and family, but I’m going to do as many as I can do well!

Finally, I’ve been working on the education site I’ve been wanting to provide: Training at Mindless Pursuits. You can see a couple of brief glimpses in the screenshots in this post. The goal of the site is to provide tutorials and learning opportunities for a number of game systems. Obviously, my initial focus is on Unreal Engine… and it may turn out that I never expand much beyond Unreal Engine because I enjoy it so much! This will be a full-fledged eLearning site built upon a combination of the Open Source Moodle learning management system, original content created by myself in video and interactive formats, and group discussions through course-aligned forums. I’ve been working on the build for a month now, and have the first two courses built. I want to have at least three more completed before I launch. If all goes well, I will be launching sometime around January 1st. I want this to be an in-depth training site for those who have an interest in-game development. Hopefully I can get it there. The biggest impediment is time and expense, but I’m trying to address those!

So that’s it – what I have planned between now and January 4th (which is when the December holiday break ends for school). I hope it’s of interest to you, and feel free to give me your feedback and requests. I have set up a page that lists the topics I currently have in mind, and will add to it as I get requests that I feel I can do a good tutorial on.

See you in the next tutorial!

↑ Top