Space game
JS w/ Canvas for the client, Go for the server, websockets for comm.
First game for State Transition Games - actually no. I'm putting this on hold. I really like the idea, but it will be a much better game once I reach an active user base of a few hundred (if I reach...).
Primary Design
One giant, constant capture the flag game. There's a crystal in the center, the blue team defends the crystal and the red team is trying to destroy it. The challenge is to see how long the blue team can defend it. When it's destroyed, teams are re-rolled. When a new game starts, blue is in the center surrounding the crystal, red is at the perimeter. When a player is killed, they respawn at the perimeter.
Player stats are tracked (kills, accuracy, crystal hits, crystals destroyed) and posted. This data is also used to keep the teams evenly matched.
Ships produce a constant supply of energy. That energy can be used to turn, accelerate, fire and charge the shield and the battery. Turning uses a small amount of energy, accelerating and firing uses a lot of energy. The battery holds enough energy to accelerate for 1 second or fire 4 shots. After the 3 rapid shots, holding down fire would shoot once every 3/4 second. So it takes 3 seconds to fully charge the battery, if you're doing nothing else. The shield can absorb 2 shots - this will effectively mean 3 hits to kill because the shield will recharge a little between hits.
Acceleration is proportional not linear. So there is a maximum speed of M and one second of acceleration will take you 50% of the way from your current speed to M.
Secondary Considerations
Gameplay
Some balancing may be needed after the game is created.
If games are too short:
- give the defenders a boost when they are near the crystal
- respawn defenders closer to the crystal
- add more shields to the crystal
- crystal can fire at attackers
If games are too long:
- crystal damage is permanent
I suspect too short is going to be a bigger problem than too long.
I'll also need to add some decent AI players to pad when numbers are low.
Performance
I'll need to dig into the AWS API. I'll put the webserver on the ST server. The game server will be stand-alone. I'll need to find what the maximum number of players a server can support without performance degradation is. Have a process on the webserver so that when we get above that number, spawn a new server and at the next game reset, redirect half the players there.
Updates
I'd like to add two more ships at some point. Classic light/heavy split. Light is small and fast, but low shields and low firepower. Heavy is big and slow, very slow. But dual-cannons that can maintain a rate of 2 shots/second each.
I'd also like to add some sort of designation to high rank players. I'm thinking of one particle effect on anyone ranked in the top 5% and another on any attacker in the top 5% of crystal shots.