Since the last update two weeks ago, the following improvements have been made.
- Obnoxious sound volume differentials for different sound effects normalized, and an inobtrusive bleep added when the grenades come back online.
- Arcade mode difficulty ramp up greatly improved.
- Every enemy got proper (still placeholder) minimap graphics, making the map far more readable.
- There is now a pause menu with instructions as to how to use it.
- Melee got a few small tweaks, and now stuns the enemies for longer than firing, which should lead to another small strategic layer. Gun fire rate accelerator also ramped up.
- Fixed bug where a few different enemies didn’t get stunned or take damage for mysterious reasons. Turns out they could get shields from the shielder – more on him later – and that wasn’t being displayed properly.
- Fixed a bug where Body Positive Bertha’s worms stopped dealing damage.
- Mostly fixed enemy projectiles getting immediately eaten by the level geometry. (Still have weird edge cases).
THE BESTIARY
For the first time in a long while, I added a new enemy, as I felt that there wasn’t an enemy that really captured the spirit of the enemy. For example, there is a “globalist” enemy that casts a six pointed star on the ground at your feet, which turns into projectiles that fire upon you. It’s kind of funny, and serves a very valid gameplay function of keeping the player from standing in one spot, but I felt that something was missing.
In response, I created Noam. He’s physically weak, and only partly makes up for this by having shields made from crushed foreskin powder. Noam, has no direct attack, and prefers to spend his time providing shields to all the other enemies you’ll be facing. Without Noam, these golems would be just a headcold. With him, even the cannon fodder types are a real challenge. Make sure to kill Noam as soon as possible when you see him.
You can see a description I wrote for Noam, along with a catchphrase, in the Bestiary section. In fact, you can see a catchphrase and description for all the basic enemies in the game. Even better, when you click on them, you are given the option to practice against them in a one vs one arena, where you are invulnerable, so you can really learn their attack patterns. This actually makes little to no sense for Noam, since he is the only enemy that doesn’t really do anything by himself, but it works for the rest of them.
MORE PATHFINDING BUG FIXES
The regular map is quite large, but the practice arena needed to be small, for practical purposes. I also needed to start experimenting with smaller arenas for the boss battles anyway, so I got to work on that. This introduced more than one pathfinding bug, although it also helped me solve one that I didn’t know that I had, due to the geometry of the other arenas.
In the above picture, the blue lines represent connections between pathfinding nodes, for the system detailed in the last entry. Since every node that can see another node should have a connection, the system is obviously malfunctioning. It took me a long time to figure out what the issue was. Experiments with the layout of the arena made me realize that the connections weren’t being formed when there was a wall behind the direct line of sight to the other pathfinding node. The bug existed due to a simple one line raycasting error.
RaycastHit2D hit = Physics2D.Raycast(ourPos, vDir, Mathf.Infinity, mask);
->
RaycastHit2D hit = Physics2D.Raycast(ourPos, vDir, dis, mask);
The result was corrected, and it’s lucky that I caught this bug, since I had an identical bug that would have been much more difficult to diagnose in the pathfinding code that I managed to catch at the same time.
I’ll be predominantly focusing on getting the first boss battle up and running in this next two week stretch.