Playtest feedback
I've had a ton of incredibly useful playtest feedback the past two weeks. Here are some of the gameplay changes and additions I've made in response to feedback:
Team bases are now surrounded with indestructible force fields to prevent spawn camping.
My friend Zac Fierce gave some great feedback about abilities. Previously, you could carry three abilities, which were permanent. Abilities got mapped to X, Y, and B in the order they were purchased. You could "toggle" them on and off by pressing X/Y/B to select the ability, and then right trigger "fired" the ability. The ability automatically toggled itself off after firing.
One of the problems with this system was that it changed the behavior of the right trigger without telling you. If you switched to the shotgun and attemped to fire, you'd expect it to fire and then toggle back to the normal movement/jump ability. But if the shotgun wasn't ready to fire, you none of that would happen, which might leave you confused as to which mode you're in.
Zac suggested putting the movement ability on a separate button, but I didn't want to add complexity to the controls. There was also the problem that the reticle gives tons of feedback about where you can and can't jump, and of course if you have a weapon equipped, you can fire it anywhere you want. So I would need two reticle indicators, one to show whether you can jump, and one to show whether you can fire. I might still do this, but it will take some thought to pull it off without complicating things too much.
Here's what I ended up doing. Rather than toggling abilities on and off, I made it so that when you press Y, it switches to the Y ability and stays there until you select a different ability. I also cut the number of abilities down to two, so that I could map the movement/jump ability to X. I also now allow abilities to be replaced, so while you can only carry two at a time, you can buy as many of them as you can afford.
The upgrade menu also now lets you choose which slot you want the ability to go in, which solves another issue. When someone always buys the shotgun first, they build up muscle memory that says "Y is shotgun". If they change the order of buying, the old system would change their control bindings so that Y is something else. The new system lets the player choose their control bindings regardless of purchase order.
Here it is in action:
Another feature request I heard a lot was for a "capture the flag" game mode. So that's in now:
Another common complaint dealt with the camera. I've explained previously how I use a cone to nudge the camera away from whatever surface the player lands on, so that they're more likely to be aiming in a direction they can shoot toward next.
Unfortunately I've always kept this cone active, even after the player has landed on the surface. This prevented the player from looking directly back at the surface they were attached to. They would have to swing the camera around the cone. This was an easy fix. After landing on a surface, there's a half second where the cone does its thing, and then I disable it. Now you can swing the camera around any way you like without regard for level geometry.
Spotting was another requested feature. I already have text emotes in the game that allow players to shout out specific turrets or batteries, but it's much more intuitive to just aim at something, hit a button, and have everyone see it.
Assault needed a bit of balancing. It was weighted pretty heavily in favor of the defenders. I'm balancing this by giving the attackers a pretty hefty chunk of energy to start with, and also by adding time to the clock and giving the attackers extra lives for every turret they destroy.
Also, players on the attacker team used to have an individual pool of lives, which meant one player could run out of lives and get stuck spectating. I switched to a ticket system so that lives are shared across all players.
That takes care of gameplay changes for the most part. Of course I've been tweaking cooldowns, damage values, and other numbers like crazy. But that's not very interesting.
One thing everyone agrees is very interesting is authentication! I asked itch.io to add third-party OAuth support, and they did it! Now you can log in to the game using your web browser even if you don't have the itch app installed.
I also integrated the Steam SDK, which will also log you in automatically.
Some players were having issues initiating and maintaining a connection, so I made another pass at the netcode and added some redundancy and improved latency handling. Now I'm sending every message at least twice as a pre-emptive measure. Also, when packets arrive delayed or out of order, the game does a better job of fast-forwarding to catch up with the server.
Another common feature request was mouse support in the menus. This is mostly done now.
Tons of other minor improvements have also been made. Players can edit server settings in-game. The game now gives more feedback when you kill another player. There's now an FOV slider. The input system now respects your operating system's keyboard layout. The crash reporter system has allowed me to fix a number of crash bugs.
I'm also putting together some assets for the upcoming Kickstarter. Progress continues!