Now updated for Unreal Engine 5! Featuring new models, sounds, and effects!
What is the Unreal Engine Game Jam Toolkit?
Time is the enemy - Equip yourself and your Game Jam team with the Unreal Engine Game Jam Toolkit from Epic Games! The Unreal Engine Game Jam Toolkit is a collection of content and code designed to give game jam participants using Unreal Engine a head start. The Toolkit is simple to learn and easy to modify. Skip hours of setup and get to making your game!
What’s in it?
The Toolkit contains a framework for rapidly developing an Unreal Engine game along with a curated collection of effects, meshes, and Materials designed to save hours of development time. Within minutes, you can add a main menu, pause and loading screens and a HUD to your existing project or use the toolkit as the base for new games and ideas. Everything’s coded in Blueprints and it includes a simple game designed using only the content in the toolkit.
What’s Included?
- UMG HUD Framework - A great starter UMG setup with a Main Menu, Loading, Pause and Game Over widgets. This system uses Blueprint Interfaces, allowing it to be used in any game and easily accessed and integrated into existing projects.
- Master Material - The Master Material provided gives you a great headstart and lets you make nearly any kind of Material Instance you require.
- **Content **- Materials, Textures, Static Meshes and more have been collected from many of the Epic provided samples and projects available from the Launcher. Muzzle Flashes, explosions, and brick walls are ready for you to use to quickly prototype your ideas and get to the fun faster.
- **UFODemoGame **- A simple but complete game built entirely using the provided content. A great demonstration of how to use the toolkit to create a simple game with a Main Menu, HUD, and Game Over widgets!
How to Install
First, download the Toolkit (here) and extract the contents of the Zip file to a folder. You will find a **GameJamKit **folder and a **UFODemoGame **folder. Everything you need is in the **GameJamKit **folder. The **UFODemoGame **is a sample game built entirely using the Toolkit and demonstrates how you might integrate it into your own project. You don’t need the demo game but it’s a great learning resource or can be used as a more fleshed out framework to work from.
Now, simply copy the **GameJamKit **folder to your own project’s **Content **folder. Optionally, copy the **UFODemoGame **folder over as well. UFODemoGame
You’ll probably want to see how this works in a real-world example. That’s exactly what **UFODemoGame **is for.
Play in Editor
You can simply load the UFOGame_MainMenu_MAP in the editor and press Play to start the game.
Play Standalone
To set up your project to launch the UFODemoGame’s Main Menu, set UFOGame_MainMenu_MAP to your Project Settings>Maps & Modes section as the Game Default Map.
Navigate to your project’s folder and right-click on YourProject.uproject file. Select Launch Game from the context menu and the game will launch in Standalone mode.
You should be presented with the game’s Main Menu. You should be able to take it from here
How to Add to Your Game
Adding the toolkit to your game is fairly simple, but you will need to know some Blueprints and the Editor’s basics before going forward.
Main Menu
Getting the Main menu working is fairly simple.
First, you will need a **GameMode **class.
- In the Content Browser, create a new Blueprint Class and chose **GameMode **as the **Parent **class. Name it something like BP_MyGame_MainMenu_GameMode
- Open the class by double-clicking it then set the HUD Class to the **BP_GameJamKit_MainMenu_HUD **class.
- Compile and save the Blueprint.
- Create a new level for your Main Menu. This level can be as complex or simple as you want it to be. Even a completely blank level will work.
- In your Main Menu Level’s World Properties, set the **GameMode class **to the MainMenu GameMode class you created before.
If you press Play now, you should be presented with the MainMenu!
The Quit button works but the Play doesn’t do anything. This is because you need to define what level to load when you click on the Play button. This data is stored in the HUD class. You have a choice here. You can either directly modify the MainMenu_HUD class directly (Easy mode) or create a child HUD class from the GameJamKit_MainMneu_HUD class. Either way, you need to define the “Level to Load”
To create your own HUD class that inherits from the Toolkit’s HUD class:
- Navigate to the BP_GameJamKit_MainMenu_HUD class and right click on it. Select “Create Child Class” from the context menu
- Name this new Blueprint something like BP_MyGame_MainMenu_HUD
- Optionally, copy this to your own game’s folder structure
- Open the newly created HUD class
- Select the **StartLevelName **variable and set it to your game’s first level map. If you don’t have one, you can use UFODemoGame_Level1_MAP
- Compile and save the HUD class
- In your **BP_MyGame_MainMenu_GameMode **class, change the HUD class to your newly created HUD class.
Now when you test your main menu, you should be able to click on the PLAY button and the level defined should load!
InGame HUD and Pause Menu
The InGame HUD class is responsible for displaying the HUD (Health, Timers, score, etc.) as well as the inGame Pause Menu and the Game Over screen.
The toolkit provides a Pause Screen, the Loading widget and a game Over screen. It does not contain any widgets or code related to health, scoring, etc. You are expected to develop those on your own.
Now, this is where things might get a little complicated, especially if you already have your own HUD class already set up.
If you don’t, it’s much more straightforward.
Easy mode:
Let’s start with Easy Mode: adding the InGame HUD and Pause Menu to a game without an existing HUD class.
- Like the MainMenu_HUD class, make a child Blueprint class from the **BP_GameJamKit_InGame_HUD **class
- Name it like **BP_MyGame_InGame_HUD **and move it to where you’d like it in your Content folder.
- Open your **GameMode **(the game mode you are using to define your game classes and game rules for your own game) and set the HUD class to your newly created MainMenu_HUD class.
Semi-easy Mode:
If you already have a HUD class, you have a couple options. The easiest is to change the parent class (reparent) your HUD to the BP_GameJamKit_InGame_HUD class. This will give you access to all the functionality and unless you have a function or variable that shares the same name as the ones in the Toolkit’s HUD class, you shouldn’t have any problems.
Before you begin, you should BACKUP your project or commit your changes to your server.
- Open your HUD class
- In the Blueprint Editor, go to File>Reparent Blueprint
- Search for and select BP_GameJamKit_InGame_HUD
- Unreal Engine will warn you that this might mess stuff up. Heed this warning! It very well might! Don’t forget to backup your data!
- Once reparented, you should see basically no changes. That’s good!
IF this worked for you, skip Hard Mode below and continue to see how to trigger the pause and game over screens from your game.
Hard Mode:
Hard more is literally copy-pasting everything into your own classes. Only experts should do this and even then, they should remember to first implement the GamJamKit_HUD_Interface into their HUD Blueprint or they won’t get the events needed.
Add the MainMenu Level Name
Just as you had to define Level 1 to our MainMenu HUD class, we need to define the name of the MainMenu level for your In InGame HUD class.
- Simply set the MainMenuLevelName variable to the name of your Main Menu Level.
Calling Interface Functions for Pause and Game Over
You now need to add some simple code to your Blueprints to get the Pause Menu and Game Over screens to activate when you want them.
Because the Toolkit uses Interfaces, it’s very easy to trigger HUD events from pretty much any class in your game. There are three Interface functions you’ll need: SetPaused, ShowWin, ShowLoss
Simply connect these wherever you want in your blueprints! In the case of UFODemoGame, **Pause **is handled by the **PlayerController **and the Win/Loss is handled by the GameState class.
Good luck in the Game Jam everybody!!
–