One of the best ways that increases player immersion in the game is a Camera Shake.

Camera shakes are especially useful for explosions, when player takes damage, or for collectibles.

If you are not using Cinemachine, here is a simple way to do it.

Start by creating a C# script call it CameraShake (or whatever you want) and attach it to your main camera.

Today I start a new project in the GameDevHQ program, creating a 2D Action/Platformer mobile game set in the middle ages time.

The objective of this program is to start grasp the mechanics of creating a mobile ready game.

Skills to be honed and mastered:


2D tilemaps are very important, in this project I will have a better understanding on how to create tiles, grids, pallets and much more.

2D Sprite Animations

Sprite animation is the heart of many successful games, and learning more about it is always amazing.

Saving is a very essential part of any game and saving systems can get pretty complicated. From simply saving some player stats to saving skills and inventory and allowing player to overwrite and delete save files.

But what if you are making a small mobile game and you want to save only some stats after each level, for example player current level or score.

Unity has a very handy scripting API called “PlayerPrefs”.

Objectives: Understanding and Using PlayerPrefs

Simply put, PlayerPrefs is a class in Unity that allows you to save preferences between game levels or sessions. So PlayerPrefs is very useful for handling simple…

Timers can be quite useful in your projects especially when you want to make a Time-Trail level or for example limiting a quest or an even to a timer.

Yet displaying them in the UI is not that straight forward.

Objective: Displaying a timer in the UI

Say that you want to use a timer of 5 minutes which would amount to 300 seconds.

The easiest way to display it in your UI would be to simply decrement your seconds by Time.deltatime and you would get something like this…

The animation system in Unity is a very powerful one. Allowing you to animate almost any element in any way you like. Yet, there is one feature in this system that is not used as often which the Animation Events.

Animation events are basically allows you to call a function or method directly from the animation clip at a specific frame/time that you specify. This is a very powerful tool that allows to play for example a particle effect at anytime you need during an animation, or even play a sound effect.

What makes them more powerful is that these…

One of the cooler feature that you can in your platformer is a ledge grab system. Yet it is not always a straight forward method, as you have to do some logic to know the position of the grab and location of the player after he climbs from the ledge. But today I will show you an easy and somewhat modular way to do so.

Objective: Create a modular (to an extent) ledge grab system

A. First off create two animations, one for Hanging Idle form ledge, and another is climbing up from Ledge animation.

If you have noticed, then…

I have finally finished the 2.5D training program from GameDevHQ. (You can read the previous progression report here). Here are the final features implemented.

Player Animations

My playable character is a female named Lea. The character model was downloaded from the GameDevHQ Filebase.

As for the animations, I used adobe’s free animations from They have a lot of free animations and almost for every action you need.

This is what my animator for the player finally looked like. From running, to jumping, to ledge grabbing to ladder climbing, to even blowing a kiss and dancing.

Following on my last progression report (check it out here), now it is time to upgrade the project to the Universal Render Pipeline in Unity and download some new assets from the GameDevHQ filebase.

The purple trap of URP


The Universal Render Pipeline or URP is Unity’s way of bringing your game truly to life and give your game a graphical boost that cannot be achieved by simply using the basic graphical environment that comes with Unity. The URP is optimized for mobile use so that you can graphically upgrade your project but still sustain a very good performance.

Here is how you upgrade your project to URP.

  1. Open the Package Manager, Windows…

A very interesting feature that increases player mobility in-game and can add a wow factor to your game is actually wall-jumping.
Just having the ability to wall jump can open a lot of new level design options that weren’t accessible before.

Here it is done using Character Controller.

“If you have not setup a character controller before, read our previous article on how to setup one. Read HERE”.

A very useful method in the Character Controller is the OnControllerColliderHit which detects collisions with the player.

So, the logic here is that while the player is jumping, if the player hits…

Elevators for 2D platformers are a very fun feature to add. They can be used to allow the player to traverse levels in buildings, and in our case we will use it as a puzzle element where the player has to collect a certain number of coins or whatever you want before being able to call the elevator and move to a higher location.

Let’s go

Objective: Elevator System

The elevator system will be made of two parts, a switch panel and the elevator itself.

The elevator

Mohamed Hijazi

A knowledge seeking biologist who is following his passion into a full time career in Unity / Game Development.

Get the Medium app
