Jetboard Joust DevLog #109 – Making New Enemies pt 1


Check out Jetboard Joust on Steam here. View the full trailer here.

During my recent intensive playtesting sessions playtesting I’ve become a bit concerned that there’s not enough variety in the earlier levels of Jetboard Joust.

Originally I’d paced things so that either a new weapon or a new enemy is introduced at least every other level. This is fine once you’ve made a bit of progress through the game (as it has all the weapons/enemies from the previous levels to draw on for variety) but earlier on it just felt like I was facing the same old enemies too much, even if they were armed with new weapons.

So I’ve decided to bite the bullet and create a new enemy per level for at least every level until you meet the first boss. As these enemies appear early on in the game they don’t need to be too elaborate, but as engagement in the first stages is key I thought it was worth the extra effort.

This means a total of five new enemies, I’ll cover the three simplest ones in this post as the two slightly more complex ones in the next devlog.

The first two are both jetboarding enemies. Jetboarding enemies are the easiest to add as they all work from basically the same AI, I just have to tweak certain values and maybe add a couple of specialist behaviours for variety. I wanted these ones to have a ‘gang’ type behaviour so I designate one enemy from each group as a ‘leader’ and have the others position themselves around the leader until they get within a certain distance of the player (in which case it’s pretty much every man for himself). Both enemies follow this pattern, though one type will abduct/mutate whereas the other attacks more aggressively.

Image

The enemy on the left is supposed to be wearing a kind of gas mask / backpack type arrangement. This was bloody hard to get right in so few pixels and I’m still not convinced to be honest. Someone on r/pixelart said it looked like a racoon and now I can’t unsee that! It looks better in some palettes.

The other enemy I’ve christened the ‘swarmer’. As you can guess from the name, it attacks in large batches! For the attack pattern I generate a virtual circle around the player and set an ideal position for each enemy on a point on that circle. The enemy tracks to this ideal position rather than directly onto the player, as I rotate each ideal position this means that the enemies circle the player when they get close enough.

Image

The swarmer also has a more aggressive ‘ram attack’ where it propels itself towards the player at high velocity. To make sure that not too many swarmers are doing this at once I maintain a virtual ‘baton’ which is passed from one enemy to another, only the enemy that possesses this ‘baton’ can carry out the attack. I can vary the amount of batons per group to increase difficulty.

Whilst testing on large groups of this enemy I found that gameplay tended to get a bit unbalanced, with all enemies lumped on one side of the player. To avoid this I’ve implemented a ‘split’ AI whereby, if things do get too ‘one sided’, a bunch of enemies will split off in the ‘wrong’ direction to wrap round the game world and attack the player from the other side in a pincer movement! You can see this in action in the video. This mechanic seems to work well so I’ve applied it to a few of the other ‘swarm’ type enemies as well.

Image

Dev Time: 4 days
Total Dev Time: approx 320 days

Leave a comment

Log in with itch.io to leave a comment.