Enemy Design
By Matthew Brodbeck
A crucial aspect of Esquelito that was important to get right was the game’s enemy design. We wanted each enemy to have unique gameplay mechanics that match its look and feel, while also ensuring that the attacks do not feel misleading or unfair. If done well, this design goes largely unnoticed, but if done poorly, it becomes very noticeable, to the game’s detriment. Developing well-balanced, unique enemies was an integral part of the game’s design and required a lot of iterating over ideas to get them right and ensure an engaging and fun gameplay loop for our players.
The first step of designing these enemies was coming up with basic attack patterns. This included an enemy that walks towards the player and deals damage upon touching them, an enemy that shoots a projectile at the player, and an enemy that rises above and slams down onto the player. Next, we assigned a thematic visual design to each enemy type, such as “dancer,” “cook,” and “luchador.” After creating these basic enemies, we iterated on each one to make them feel a bit more unique and fun to face. For example, the cook’s projectile creates “melancholy” for a few seconds that the player needs to avoid and moves away from the player if they are too close to better aim their shot. Other examples include the dancer bouncing back after hitting the player and the luchador charging towards the player before jumping up to slam, and also needing two dashes to cure them. These little tweaks helped make the enemies feel less generic and more in line with the game’s world and aesthetics.
Luchador attacking and being cured by the player
Cook attacking and being cured by the player
While playtesting these basic enemies, we found some issues that needed to be dealt with, which led to further iteration. Many players got stuck colliding with the enemy or were unable to cure them because they were slightly too far away when they began their dash. We solved these issues by increasing the area through which the player can dash to cure the enemy, and allowing the player to pass through every enemy except the dancer so that they won’t get stuck on each other. Players also mentioned that, once the luchador began its slam, it would chase down the player until it hits them, even if the player moves, which made it impossible to dodge and counter. We solved this issue by keeping track of the player’s location when the luchador rises and using that location as the target for the slam, rather than the player’s current location at the time of the slam. This improves our gameplay as now players can easily move out of the way of the slam if they are careful enough and pay attention.
Once these issues were solved, the final step to fully integrate the enemies into our world was to hook up some of their mechanics to the rhythm. In Esquelito, many elements of the game are tied to the rhythm of the level, and the enemies are no different. To do this, we connected the “rhythm notifier” Godot add-on, which notifies elements of the game when certain beats go off, and used it to make the enemy perform certain actions on certain beats. This can be seen when the cook tosses his projectile at the player on every fourth beat, or when the luchador starts to slam down on the player, once again, on every fourth beat.
Designing fun and balanced enemies is an important process to get right. Enemy design may start out simple, but each additional little detail and mechanic creates additional complexity. As the game gets closer to release, we are very excited to continue to work on refining our current enemies, and even add some new ones. In the meantime, “Spread Joy!”