A quick overview over the project and setting up the basics of the 2D platformer game.
This game tutorial series will teach you how to create a 2D platformer game with randomly spawning enemies and items you can pick up. The player has to fight an alien invasion in london, running around and jumping while firing rockets and laying bombs (once picked up).
In this tutorial we’ll take a quick look at the project and set up some basics in the Makinom editor.
Setting up the Unity Project #
By now you should’ve downloaded the project resources, a unitypackage file containing the assets we’ll use in this tutorial series.
Create new Unity Project #
Use the Unity Hub to create a new Unity project, make sure to use at least Unity 2019.1, best one of the LTS versions (e.g. Unity 2019.4 LTS).
The new project comes with an empty sample scene set up, we don’t really need it, so you can delete it (and the folder Assets/Scenes/) if you want.
We’ll use the Unity UI module, make sure the project contains the TextMesh Pro and Unity UI packages. They should automatically be included in a new Unity project, if not, use the package manager (Window > Package Manager) to import them.
Layer Setup #
We need to set up sorting layers and a layer in the Unity project we’ll use later. Open Unity’s layer settings using the Unity menu: Edit > Project Settings… > Tags and Layers
Add the following sorting layers (in that order):
- Background
- Character
- Foreground
- UI
In case the sorting layer configuration of the prefabs is not imported correctly, all enemies, hero, rocket, bomb, explosion circle use the Character sorting layer, the background, bus, cab and swan use Background sorting layer, the foreground, splash, bomb crate, health crate, explosion particle (renderer) and rocket explosion use Foreground sorting layer.
Change the following layer:
- User Layer 8
Set to Bombs. - User Layer 9
Set to Player. - User Layer 10
Set to Enemies. - User Layer 11
Set to Pickups. - User Layer 12
Set to Ground.
Physics 2D #
We also need to change the 2D physics gravity for this project, as well as layer collisions. Open Unity’s physics 2D settings using the Unity menu: Edit > Project Settings… > Physics 2D
Change the following setting.
- Gravity
Set to X=0, Y=-30.
In the layer collision matrix at the bottom of the settings, disable the following layer collisions:
- Bombs/Enemies
- Bombs/Player
- Enemies/Pickups
- Enemies/Enemies
- Pickups/Pickups
Importing Resources and Makinom #
Next, we’ll import the project resources you’ve downloaded and the latest Makinom 2 version (or any you’ve got lying around).
The order in which you import them doesn’t matter. If you get a warning regarding script updates, confirm it to continue with the import.
The tutorial resources can be found in this folder: Assets/Tutorial Resources/
All our setup will be done in the Level scene (found at Assets/Tutorial Resources/Scenes/), so you can already open it.
Setting up Makinom #
We’ll now set up some basics in the Makinom project. Open the Makinom editor (Window > Makinom) – this will create a new Makinom project at Assets/Gaming Is Love/_Data/Project.asset, in case no project has been created or opened yet.
Input Keys #
First, we’ll set up the input keys to control the game. Navigate to Base/Control > Input Keys. The default controls are already set up for us, but we’ll need another input key for pausing the game, jumping, firing rockets and laying bombs.
4: Pause #
- Name
Set to Pause.
The input settings are defined in the already added Input ID Setting 0.
- Input Origin
Select Key Code. - Positive Key
Select P.
5: Jump #
- Name
Set to Jump.
The input settings are defined in the already added Input ID Setting 0.
- Input Origin
Select Key Code. - Positive Key
Select Space.
6: Fire #
- Name
Set to Fire.
The input settings are defined in the already added Input ID Setting 0.
- Input Origin
Select Key Code. - Positive Key
Select Left Control.
7: Bomb #
- Name
Set to Bomb.
The input settings are defined in the already added Input ID Setting 0.
- Input Origin
Select Key Code. - Positive Key
Select Left Alt.
That’s it for the input keys.
Game Controls #
Now we’ll set up pausing the game. Navigate to Base/Controls > Game Controls and change the following settings.
Base Key Settings #
- Pause Key
Select Pause. - Pause Time
Enable this setting.
This will pause the game time. - Freeze Pause
Enable this setting.
This will set Unity’s time scale to 0, stopping everything in the game (e.g. animations).
Music #
Navigate to Game > Music and change the following settings of the Default Music.
- Name
Set to BGM. - Audio Clip
Select MainTheme.
The clip is located in Assets/Tutorial Resources/Audio/Music/. - Loop Clip
Enable this setting.
UI System #
We’ll use the Unity UI module – it’s best to select the UI system as one of the first things when starting a new project.
Navigate to UI > UI System and change the following setting.
UI System Settings #
- UI System Type
Select Unity UI. - Default Screen Size
Set to X=1280, Y=720.
You should also change the resolution of your Unity project to use the same size.
You can find them in Edit > Project Settings… > Player, they’re available when not using fullscreen mode.
Changing the UI system will show confirmation dialogue, which we’ll accept via the Ok button.
And that’s it – click on Save Settings (and on Confirm in the following screen) to save the changes.
Scene Setup #
Finally, we’ll add Makinom and the background music to the scene. Open the Level scene (found at Assets/Tutorial Resources/Scenes/).
We also need to add the scene to the Unity build manager (File > Build Settings…), otherwise we’ll not be able to reload it later.
Adding a Game Starter #
To add Makinom to the game, we’ll need a game starter. You can learn more in the game starters documentation.
Add the game starter using the scene wizard (Window > Makinom Scene Wizard). Click on Add Game Starter, select the Makinom project if it’s not already selected (found at Assets/Gaming Is Love/_Data/Project.asset) and click on Add Game Starter again. The scene wizard will create a new game object and attach the game starter to it.
Move the new game starter object out of the way, e.g. to X=-30, Y=0, Z=0.
Adding the Music #
Again, we’ll use the scene wizard to add the background music: Create Object > Music Player
Move the new music player object out of the way (e.g. X=-30, Y=2, Z=0) and change the following settings in the inspector of the Music Player component.
- Play Type
Select Play. - Music
Select BGM.
And that’s it for now – save the scene.
The next tutorial will handle the player’s movement controls.