top of page

Phoenix: Die to ReBurn

Google Play Page

Project Info: 

  • Platform: Android

  • Genre: Arcade Runner

  • Time: June 2022 - August 2022 

  • Role: Developer

Description:

Die to ReBurn is a stylish and fast-paced runner in which you play as a mighty Phoenix, flying through desolate battlefields and defeating all the enemies standing on its way. Sometimes the enemies overwhelm you - but death is just the beginning! Upgrade your Phoenix to get stronger and fly further!

This game was fully developed by me initially for GameDe.tv game jam, then reworked and improved to be published on Google Play.

Screenshot_7inch.jpg

Highlights:

This project was initially a submission for GameDev.tv jam. The jam lasted 10 days, and I was able to implement most of the features I planned within that time. The reward for succesfully submitting a game for the game jam was a free course from GameDev.tv's library, and I picked a Mobile Games Development course. After finishing the course I continued the development of the game fo eventual Android release.

  • Main gameplay built from scratch within 10 days

  • Published on Google Play

  • Random level generation system built to be flexible for adding new chunks, types of enemies, pick-ups and obstacles, as well as supportfing difficulty increase.

  • Upgrades system to create a sense of progress, built to be easily tweakable and balance-able.

  • Lots of attention to polish and game feel, such as making coins collection feel satisfying.

Level Generation

Level Generation System was one of the biggest and most crucial features of the game. I wanted to make sure that the system is flexible and easy to expand on.

The idea was to create an infinite level out of level chunks that spawn randomly one after another. In addition, the level should start scrolling faster and faster as player flies further, and the enemies should gain more an more health. 

I have a Level Manager game object which has a list of all the level chunk prefabs and "spawns" chunks one after another. In actuality, all of the chunks are pre-instantiated as soon as the game starts, and chunks activate and deactivate as soon as they reach thershold distances. 

 

Level Manager itself keeps track of time and increases difficulty every given period. It communicates to the chunk instances to increase their scrolling speed by a set multiplier. In addition, it also communicates to the enemies connected to that chunk to increase their health too by a multiplier. Both multiplier and interval can be tweaked in settings. Later I have also implemented a system with which i can assign individual difficulty for chunks, and the level manager will only spawn chunks under or equal too current difficulty tier. the difficulty tier also increases every given interval. 

Finally, level objects such as enemies and pick ups are spawned through an Object Pooling system. Instead of placing them manually in each chunk I place "spawn" points, which take and place specific enemies and pick ups at their position. That way even if I have a lot of level chunks, I can keep number of enemies and pick-ups low.

Upgrade System

As the game is heavily inspired by the legend of the Phoenix, I wanted to express the theme of rising from the ashes not only through the visuals, but also through gameplay. This is where the Upgrade System comes in. 

Information about each upgrade type is contained in individual Upgrade scriptable objects, such as upgrade's price, visual, level, price and stat multiplier. These scriptable objects are used by upgrade UI to display information correctly. Initially I was handling the logic of purchasing an upgrade inside of a scriptable object class itself. However I have later learnt that a much better practice would be to use scriptable objects strictly as data containers and instead use a Shop Manager to handle the purchasing logic. 

Additional Links
bottom of page