One of the most important components in the Geometry Wars games is the enemies. The new update for Geometry Wars 3: Dimensions Evolved has a range of new enemies, so I thought it might be interesting to give you an insight on the process on how we implement them into our game.
First up we have to have a reason why we want to bring an enemy into the game. There are a variety of reasons; sometimes they can help us explore a new level concept, other times they can be to provide a new strategy for the player to learn in the battle. In the case of this new enemy, which we’ve nicknamed Battenberg (after the cake), we wanted to create a scenario where the player would have to consider where they are shooting, as it could increase their current level of jeopardy.
Next up is the behavior. Geometry Wars is a very intense shooter, and we can have a lot of enemies on screen at any time. So when we consider enemy behavior, it has to be clearly defined and strong so that the player can anticipate how things will develop in the game once it appears. We devised that this enemy should be two stage as the player will recognize its docile state and will clearly see its active state.
Once we have sketched out a few more details on the enemy we start to prototype it in the game. We have an internal way in which we can quickly implement the basic enemy design. We then test that enemy, or waves of that enemy, on a plain level against the player ship. This gives us a good idea if it is achieving what we want.
Initially we had this enemy working functionally — it would meander around the screen and if you hit it with a bullet it would rapidly charge at your ship. But after a short while we found some exploits in its behavior. Once you shot it, you could keep charging at it and avoid it. Here we needed to decide if it was worth pursuing or just cutting; we all agreed that the overall concept for the enemy was sound, we just needed to refine this implementation.
After more iteration we devised an enemy that would actually split into four sections, two of which would charge towards you, the other two would move in a fixed blocking pattern. This solved the player being able to charge out of the way, and also allowed us to channel the player’s movement as they avoided the other two parts that chased towards the player on different paths.
Things were looking good so we then got our artist to create the aesthetic look for the enemy. They are first modeled in Maya, and then when they come into the game we actually create the unique neon glow look with the game’s internal graphics shaders.
Here you can see the stages from wireframe, then the polygon surfaces and finally the in-game object with the glowing surfaces.
The yellow circle objects are the blockers and the pointy purple objects are the deadly tracking darts that race towards you.
So even at this stage an enemy is not guaranteed to go into the final game. The final step involves us placing the enemy in other levels with a range of enemies. Here we can see if the behavior and look of the enemy stands out and compliments the current cast of bad guys.
After many hours of playing and a few tweaks we were really happy with this new enemy. It has a presence when it appears and it does make you consider where to spray your bullets, but its behavior is clear enough that players can still take it out when they focus on it. I’m sure many of you will enjoy destroying this new foe, and discovering the other new enemies that are lurking in the ultimate adventure mode in Geometry Wars 3: Dimensions Evolved.
And for those waiting on Geometry Wars PS Vita news: yes, it is coming! I don’t have any more info to share right now, but keep an eye on PlayStation.Blog for more updates.