The winning condition for the scenarios is that the player must kill all the regular enemies that spawn. That’s a standard task in games, that comes with a common drawback, The Mop Up Problem. Underwhelming, anticlimactic endings are the norm, as the player has effectively won long before they’ve mopped up the last of the resistance. 

The main way I combat this is to spawn enemies in successive, overlapping waves. If tuned properly, this does a good job keeping the overall enemy count relatively stable and threatening. Even with this, the final wave would still suffer from the The Mop Up Problem, were it not for the feds who start spawning in with an exponentially increasing rate once that final wave has spawned.

However, the previous iteration of this was poorly tuned, for two reasons. First, the feds spawned way too quickly, and often overwhelmed the player. We don’t want the last part of the mission to be too easy, but we definitely don’t want the hardest part of the level to come at the very end. This is frustrating to the player, as they need to fight their way through the entire scenario again, just to die over and over again at the last part. It also makes each scenario feel less unique, as it all boils down to beating a bunch of overpowered feds.  

Second, the previous design of the FBI gave them no tools for flushing the player out of cover. Normally an enemy should be good at either forcing the player out of cover or pinning them down in cover, but the feds need to be an exception, as I can’t control what kind of enemies they’ll spawn among. When they spawn in a level where the remaining enemies are all good at pinning the player behind cover, it leads to boring, unfair gameplay where the player is hopelessly pinned down. If anything they should be better at driving the player out of cover, and weak at dealing with them out in the open, as each level is supposed to end with a thrilling dash to the portal/elevator, but mostly they need to be a balanced enemy, threatening in all situations.

To that end I gave them a grenade that they’ll throw – actually the antifa’s piss bottle – combined with a rudimentary system coordinating their throws to ensure they don’t all throw them at the same time. When throwing they massively telegraph the windup, have an exaggerated recovery, and are effectively helpless if the player just steps out of cover and shoots them. Again, the point is to dynamically balance the player hiding behind cover with stepping out into the fray, as the pendulum had swung too far in the “just hide behind cover” direction.

I wanted to make this pass through the enemies brief, as I am working on the campaign, and the enemies are broadly speaking in a good place right now. The Fitness Influencers had some annoying bugs fixed, the snipers got better logic when moving to their initial snipe spot, the militarized police got a slight delay after seeing the player before firing, which is more fair, and I experimented with giving them a little shield.

I also experimented with having the sniper’s build themselves a little nest that soaked up shots, also made from little shields, but it didn’t seem that great.

The point of the shield was to ask tactical questions of the player. If they sniped them, or hit them with a grenade, they get stunned and the shield gets bypassed. If not, they have to waste a few shots burning through it. In principle I liked the idea and will probably revisit it, the issue is that Unity’s collision detection is a complete pain. Since I’m eventually porting the project, I didn’t see the reason to suffer through too much of that nonsense. 

You may also like

Leave a reply

Your email address will not be published. Required fields are marked *

More in GDev