Now that the game is further along, I'm looking for more detailed ways to manipulate weapons that can improve one or more game modes. One idea that has been prototyped but has not reached testers yet is a “lightning rod” behavior. This allows you to shoot your lightning weapon at a teammate. Instead of damaging that ship, the lightning energy is redirected out of the front of it. This allows an injured player to stay farther from the action but still contribute firepower. From the enemy's point of view, one ship is using two weapons at the same time. Alternatively, if a player is holding down the shield button, his shields will be recharged by the received lightning energy.
Another example of an improvement for multiple game modes is Retrobooster's lack of fuel containers. The central challenge of many a cave-flyer has been to collect containers fast enough that you do not run out of fuel and die. This challenge has been re-created so many times that it probably never needs to be done again. The fast, nimble ship you fly in Retrobooster opens up possibilities for so many more interesting challenges that I was perfectly happy to leave fuel containers out of the game. Every ship just has unlimited fuel. This turned out to actually be a bigger bonus for co-op games than for single player games because it's a resource that tends to inspires competition.
There is a straightforward token system in Retrobooster. When you destroy an enemy, a token may be spawned that disappears after a few seconds. You collect these tokens to gain power-ups and ammunition for your various weapons. The token system has been maturing right along with the rest of the game, and one of the finer points I have been trying to tune lately is how to encourage co-op play with the token system.
An important change made recently is an increase in enemy weapons fire and the addition of mini health and shield tokens to balance it out. On the surface, this creates a steadier tug-of-war for health and shields while in battle, and it greatly increases the number of tokens you need to collect which adds to the baseline flying challenge. As for co-op, more frequent tokens means it's good to stay near your teammates. If one of their kills spawns a token they don't need, they can let you grab it instead.
When I first programmed co-op mode, each player started with three ships. It was immediately obvious this would not work because one player would often lose all his ships while the other was still working on his first. The next attempt was a shared pool of ships. Testers hated this even more because they were using up one another's ships. It felt very competitive. Testers all said, “I want a button that lets me give a ship to the other player.” I like the idea of giving ships but resisted the new button for a long time because the interface already already had plenty of buttons. Having one more button that was used very infrequently was inviting confusion, and the interface would need to be complicated even more to let a player decide which teammate would receive a ship.
It is a little sad that it took so long to come up with this idea, but it was the token system to the rescue. Now when a player runs out of ships in a coop game, the remaining players who have extra ships will occasionally see a Give Ship token spawned. Collecting the token donates one of their ships. A Give Ship token can be one of four colors representing any player that is dead, so if multiple players have died you will know exactly which player will be revived by a particular token. There is no fancy new interface for players to learn when giving ships; it drops right out of the game's existing interface. And testers genuinely enjoy giving ships because they are deciding to share instead of being forced to share.
This was also a good opportunity to add some fun voice effects to the game. Some games have voice effects such as “Brutal kill!” and “Head shot!” Retrobooster has “Generosity!” and “Magnanimity!”