[D04] Tech Talk: Wave Editor


CACTUS Devlog


We Are Back!


Happy new year everyone!

For our first devlog of 2023 we wanted to share something we’re quite proud of. A tool used to easily design the type of large-scale battle sequences that are a key characteristic of horde shooter.

Curtains up! Let's have a look at the custom Wave Editor.

CACTUS Enemy Wave

A group of enemies spawned by the editor


About Waves


A key feature of our gameplay are battles against masses of enemies attacking you in waves within arenas. To provide a various different situation to keep the players engaged we wanted to be able to tweak and turn the attack patterns of our enemies with lots of options. Thus, we were looking for an Editor with some complexity to it, but surprisingly we haven’t found any that covered even the basics of what we needed. That’s why we set out to create our own Wave Editor.

This will get a little technical, but we'll go through it one-by-one and explain, how the Editor affects your gameplay experience. 

Let's start with the end result. Check out this video:

Basically, the Wave Editor is an array, through which the code runs, until certain conditions are met.  This lets us influence when, where and how waves get triggered, what contents they have and how transitions between waves are handled. In addition, the wave Editor can also communicate with other objects in the scene, allowing to trigger or toggle them

This sequence was set up using the following wave:

CACTUS Gate Control Room Wave

The full flow of the wave shown in the video

In short, the sequence covers these gameplay beats:

  1. Pressure plate triggers wave: The plate sends an event to the wave Editor, causing the wave to start.
  2. Nearby doors are toggled: The entry door closes, enemy vaults open up.
  3. Wave 1 spawns Collared Lizards: Two groups of lizards come from the vaults - one from the left, the other from the right.
  4. Wave 2 spawns Armadillo Lizards: With a delay of 3s, a group spawns at the far-end of the corridor.
  5. Rewards are granted: After defeating all foes ("Checkpoint" condition), pickups are spawned and the entry door opens up.

Given this set of options, we can create many different types of waves. But let's dig a little deeper.


Triggers


CACTUS Gate Control Room

The gate control room shown in the video

Various events in the game can be set as a trigger to initiate a wave. Such triggers are quite simple. For example, when you walk into an invisible box, it starts a wave, or when you defeat a certain or already when you get detected by one. Of course, the most classic move is included as well – an enemy wave can be triggered by collecting a certain item or award such an item itself.


Spawning


CACTUS Wave Editor
A single spawn and options to configure it

Most of the time a wave is an onslaught of enemies. The Wave Editor allows us to designate multiple locations and arrange a single enemy type to spawn at each one of them, or we can spawn a group of enemies at the same, single spawn point at once.

For example, ten spawn points with one enemy each forces the player to keep track of multiple directions. With ten enemies running toward you from one and the same spawn point, you need to strategically retreat, since ammo limitations and the necessity to reload cost you time and make it difficult to hit every enemy in a cluster. The option to play with spawn locations and number of enemies spawned, already provides lots of different situations to put the player in and force them to apply different strategies.

Besides enemies, however our wave Editor can also spawn pickups in pre-set locations. This may serve as a reward or as balancing the difficulty of the current enemy wave. Pickups that appear between enemy waves make sure the player can recover and get ready for the next challenge.

A reward spawn that also toggles a door

Thanks to the Wave Editor, waves can also interact with other objects in the world. This is important with regards to doors. The closing of some doors and opening of others at specific times in the fight lets us “gate” the player.

Gating means to blocking players until they achieved something. Then a door opens and the space where they may move freely either grows or changes to another location. When used within an arena, this makes battles more cinematic, as they seem to evolve across multiple rooms. Closing doors behind the player prevents unnecessary backtracking, which is common nuisance.

The ability to interact with other objects of the game adds another important layer to the complexity of waves we can build. As is always the case: no combat encounter should be considered isolated from the environment it takes place in.


Transitions


Another important dimension to the battles are the transitions from one wave to the next. The Wave Editor provides three different conditions that can be used to steer wave sequencing. For example, the kill condition, which triggers the next wave when a certain percentage of enemies from the current wave is defeated.

This can be used for a simple enemy ambush. Forcing the player to react is a typical design pattern in pre-Half Life shooters, such as Doom, Quake, etc.

There is also the time condition, which causes the next wave to start after a timer has run down.

The next wave starting without after a certain amount of time puts the player under a steadily increasing pressure. If you’re too slow at killing your enemies, their numbers will eventually overwhelm you.

Lastly, checkpoints can be incorporated in a battle. That means that a wave gets only triggered when all enemies of any former wave are defeated.

Thanks to the checkpoint the player can briefly take a breath and gather their strength, before they continue to kick ass.
CACTUS
A full wave covering in collapsed form

That's it for today. And congratulations for making it through this technical tour. Leave us a comment if you liked and add the game to the your collection to stay in the loop.

Have a great week and till next time!


Free Demo


We will release a free demo in Q1 2023, so stay tuned.


Get In Touch


Find more about us on:

For businessWebsite | E-Mail | LinkedIn

For playersFacebook | Twitter | Instagram | TikTok | YouTube

Leave a comment

Log in with itch.io to leave a comment.