This week we have been focused on making enemy waves more fun. And I came up with an idea to share more details about levels and cover how they are organized in Oddinary Highway.
The result of those improvements - a wave packed with EXPLOSIONS. Grabs attention, doesn't it?
Making a highly replayable game was our goal from the very beginning. And we were inspired by Nuclear Throne by Valmbeer and Steredenn by Pixelnest. So, there are no levels like in particular shoot'em ups. When the player defeats last boss, the game "restarts" with increased difficulty.
There are five different locations in game. Each location is not only look different, but also introduces and uses unique mechanics in enemies design. Here is breakdown of locations:
- Sand introduces enemies with explosive weapons: torpedos, mines, missiles.
- Enemies in the Ocean shoot plasma. In Oddinary Highway each plasma ball can spawn more plasma. And that plasma can spawn more plasma. And so on indefinitely which makes ocean a bit bullet hellish.
- Forest is inhabited by enemies with lasers.
- Junkyard introduces enemies with melee weapons.
- And the final level – City is inhabited by enemies with different types of "summon" mechanics, e.g. teleports or carriers.
Going further, there are several stages in each location, for example Sand already has three stages. At the end of each stage player faces boss, who drops different upgrades to pickup.
Basic brick of the stage is an enemy wave. We manually create enemy waves and store them as prefabs in Unity. All waves have a difficulty level (easy, normal, hard) and a type (enemy, elite, boss). Each wave is usually used only for one stage, but can be reused for many stages if necessary. So, each stage is described by a sequence of waves of varying types and difficulty. When the player proceeds to a new stage, it's dynamically filled with a predefined number of waves. For example, Stage 1 @ Sand has the following structure (e = easy, n = normal, h = hard):
[e enemy] [e enemy] [n enemy] [h elite] [e enemy] [n enemy] [e enemy] [h boss]