FAST PACED PUZZLE PLATFORMING
A Little Red Ball (ALRB) is a minimalistic 3D puzzle platformer that mixes elements from mobile games like the classic Bounce game for Nokia and modern runners like Chameleon Run by Hyperbolic Magnetism. In ALRB you have to lead a ball through hazardous levels by jumping and dashing. With fast paced gameplay, increasingly difficult levels and a range of possible routes to take, ALRB is a game dependent on skill, precision, and split second decision making!
Genre: Puzzle platformer
Engine: Unreal Engine 4
Development time: On & off from November 2016
ALRB is a small project that I’m creating on the side to practice my development skills. I’m creating all graphical assets and do all of the scripting myself, using Blender 3D for models, Photoshop for particle sprites and Unreal Engine 4 for scripting and materials. It’s planned to be released for PC in November 2017, and I hope to port it to Android after that.
THE DESIGN PROCESS
When I started with ALRB, I had thought of how runners and platformers on mobile seldom uses more than a jump mechanic. I wanted to change that up, and started thinking about incorporating dashes into the runner/platformer standard. At first, I started making the game a 2D platformer, and created a prototype in a few days. However, I felt that 3D was easier to work with and switched to that. I declared early on that what I wanted to achieve was a fast paced, twitchy runner/platformer which was reliant on split second decision making, and so the game has evolved to support and enforce that goal.
MOVEMENT & DASHING
The dashes, and the control of these and how they combine with jumping, are the core mechanic of the game. The ball has an automatic, constant forward movement, that is updated on tick.
CLICK TO VIEW FORWARD MOVEMENT BLUEPRINT
The jumping is a simple double jump, and allows the player to make the first jump in air (e.g. when falling off a platform). The player can then dash 3 times while in air, before needing to land to regain the dashes.
CLICK TO VIEW INPUT BLUEPRINT
The dash functions works differently for the Up dash and the Forward dash. The Up dash uses a basic Launch Character function which overrides velocity, to give a nice flow. But the Forward dash needs to be unaffected by gravity, in order to give the player more control and let them approximate where the dash will take them in a clear way. Therefore, I lerp the Ball actor location through the length of the dash, and use a custom event to stop the lerp in case the player dies. I stop the dash on death in order to prevent glitches and bugs on death.
CLICK HERE TO VIEW DASH FUNCTIONS BLUEPRINT
PICK-UPS & RESPAWNING
In order to create a simple and easy-to-expand pick up system, I created a PickUpSpawner that is the object that is placed in the level. It holds the spawning and respawning logic for the Pick Ups. The different Pick Ups are represented in a Pick Up enumerator that is publicly accessible, so that one can easily change which type of pick up a Pick Up Spawner should spawn. The Pick Ups are separate Blueprint Actors that hold their own functions. At BeginPlay, the PickUpSpawner checks which pick up enum has been entered, and spawns that pick up and then sets it as its current pick up. When the player dies, the player controller searches through all the Pick Up Spawners through a ForEachLoop, and fires the Respawn on Death function in each, which checks if their current pick up is valid (if it has been picked up and destroyed or not) and if it isn’t valid, it spawns a new one.
CLICK TO VIEW SPAWN & RESPAWN PICK UP FUNCTIONS