As I’m just starting to get into Indie development after 12 years of AAA game development, I wanted to enter a Game Jam as quickly as possible. Luckily, The Idle Thumbs community organizes a regular game jam called Wizard Jam that was absolutely perfect for me. The rules and timeframe are pretty relaxed so I decided I wanted to spend about 3 days building a game in UE4, using as many of my own assets as possible. So, I decided to learn lighting, modeling, and animation and build a simple game. The end result is General Interest, a minimal RTS where you command an army of interest-earning securities to take over the market/colored terrain rectangle.
The game is nothing special, but I wanted to write up some of my thoughts on the process of making something for a Game Jam as it may help others. There are other resources for this including the UE Wiki and tons of video tutorials. Because I’m a programmer with limited art skills, most of this advice assumes some basic experience with coding in UE4. Anyway here we go!
When you’re making a game for a jam you probably want the smallest amount of content and code possible, so when you make your project you need to be careful. I started with a Top Down C++ project because I was making an RTS, selected PC as target, and brought in starter content. After my project built I jumped back into the editor and started pruning things. First, you may want to delete much of the starter content. I ended up deleting everything other than the materials, but don’t delete things you may want to use. Also at this point I went into the Edit->Plugins menu and disabled lots of plugins. The default setup includes things like VR that you won’t want in your project (unless it’s a VR game of course). This would also be a good time to enable any marketplace content you’re going to use, I didn’t end up using any for this project. Finally, make sure you go to the Edit->Project Settings page and fill in your project description details, as you’re about to generate some code classes
The next step is to build out the framework for your game. As I am a programmer by trade I wanted some new base classes and structure, that I would then iterate on via blueprint subclasses. The easiest way to do this is to do File->New C++ Class. In my case I wanted a new Game Instance (which is a class that sticks around between levels so can be used for things like high score saving), but depending on your template you may need a new Player Controller or Character as well. Once you have your c++ base classes you should then make blueprint subclasses of all of them, which is where you will do the rapid iteration. Just making the classes isn’t enough, you’ll have to tell the project to actually use your new classes from the Maps and Modes page of project settings, or on a specific map using world settings. I had a title screen and several RTS maps so I ended up making two separate game mode blueprints.
Okay, we have the classes, now to actually add stuff to them! What to do next depends on your game, but because I was making an RTS I decided to implement the hp/money generation in c++, the input handling half in both, and all of the visual/audio entirely in blueprints. So my first task was to make a Data Table base class:
USTRUCT(BlueprintType)
struct FInvestmentStats : public FTableRowBase
{
GENERATED_BODY()
/** Max/starting HP for this investment */
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Stats)
float MaximumHP;
};I added a bunch of stats here and made a separate structure for the terrain info. The next thing I started doing was adding a bunch of BP events and public variables to my Character subclass:
/** Targeted character to interact with */
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Control)
AGeneralInterestCharacter* TargetedCharacter;
/** Blueprint callback when hovered over */
UFUNCTION(BlueprintImplementableEvent)
void OnSetHovered(bool bInIsHovered);Once I was done building out the C++ framework I then went back to the editor and started using it. I made Data Tables for my investment and terrain stats and filled them out with bad guesses at fun values. I then went into my Character BP subclass and started implementing all of my events. I then spent 2 days iterating by adding new events, implementing them, tweaking values, etc. How to build your game depends heavily on your game genre and your personal skill set, so look for more general UE4 information online if you need help with this part. There’s one more step:
Okay, you’re happy with how your game works when you playtest in the editor, the final step is to get into an actually releasable state. This can be a bit confusing, so let’s go through the steps:
And there you go! That’s an overview of how I built my game jam project in UE4, skipping over all the hard-to-describe actually-making-the-game bits. If you have any questions or comments you can either email me or leave one here. Good luck with your game jamming!