Crumble Rush is a casual mobile game that I developed for Android devices on my own free time. The core gameplay is similar to Ketchapp’s ZigZag in that the player must accumulate the highest score possible as they move endlessly along a continuously crumbling level. Working on everything myself, the game in its current state took about 2 weeks to get the game to create.
I primarily made this game because of 3 specific reasons. 1: create a simple game I could play on my phone and modifying according to my own preferences, 2. improve my programming skills and game developer and 3. get familiar with the process of uploading an app to the Google Play store. To form the foundation of the core gameplay loop inScope Studios has a great YouTube series detailing how to get the basic movement and tile initialization started. Where Crumble Rush differs from ZigZag however is in how players accumulate points and how strict the game over conditions are.
One of the most persistent issues throughout development was getting Crumble Rush to run at a consistent frame rate without slowing down whenever the player picks up one of the collectable purple objects. My solution was to use Unity’s Lightweight Render Pipeline to render the game’s graphics since I knew early on that I was going to be on a mobile platform. I’m not exactly an expert at rendering optimization, but the specialized rendering templates that come with LWRP simplified the entire process with it’s single pass rendering and removal of unnecessary global illumination.
The object-pooling design pattern was used to re-use tiles once they have been destroyed.
I originally used a raycast coming form the bottom of the player that would lead to a game over if the ray hit any gameObject not tagged as a tile. This proved to be unfair as the sometimes the player would get a game over even though they were just sliding on the edge of the tiles. Instead, I set the game over condition to be whenever the player is less than a specific Y position value.
Original code that kills player the moment the raycast is not hitting a tile.
New code that kills player when fall below a specific Y position value.
I always intended for this project to a be a learning experience intended to improve my knowledge in mobile development without the pressure of any set expectation. My next step would probably be iterating on the game’s visual elements, possibly experimenting with the some of the new VFX graphs that Unity has added in their most recent updates to the 2019 version of the software.
Gameplay is simple since its only intended for killing time like when you microwave your food or you're on the toliet.