Single-screen multiplayer games! It seems like they’re the big burgeoning indie zeitgeist right now. It wasn’t that way when we started making Gunsport, but we took too dang long, and now it is. That’s not really a bad thing, necessarily, but it’s getting crowded in here! And there’s a lot of potential for us to screw up – the more games out there that do something semi-similar, the greater the expectation. This is good! It holds us to the standard to which we hold ourselves, but doesn’t make it any easier on us.
Gunsport, old versus new, symmetrical, versus asymmetrical.
Recently, I was asked by Engadget’s Anthony Agnello about the toughest aspect of making a game like this, and I thought I’d expand upon that a bit, here.
Getting the physics right is one thing, and doing the multiplayer is certainly another, but I don’t touch that stuff in my role as producer/designer. So for me personally, the toughest thing about making Gunsport is ensuring that asymmetric gameplay is fair. That is to say, making sure matchups allow for any team to win across equivalent experience levels. In the prototype we’d been showing around at places like PAX South and RTX for the last almost-year, we had two teams with exactly the same weapons and powers – so it was easy to make everything fair. It was fair inherently! In the immortal words of Street Fighter Alpha 3, “it all depends on your skill!”
Nowadays though, things are different. In order to offer greater depth, I wanted to allow each character on the team to have their own weapon, with different bullet strengths, angles of attack, and shot properties. For example, you could have a shotgun, which has a wider spread, or an assault rifle, which has a narrow spread, but is aimable in an arc while firing. This sort of thing, perhaps obviously, dramatically increases the number of matchups between teams, and thus introduces balancing issues.
Pong is a great example of symmetrical gameplay – you’ve got two paddles, and one ball. The paddles are identical to each other, so you can easily manage the player experience, and nothing feels “unfair,” because it is perfectly even. The paddles just move up and down and hit at the exact same rates – it’s all about skill and prediction of vertical movement.
It’s a cliche example, but Pong is an excellent example of symmetrical competitive gameplay.
Then look at a game like Windjammers, which essentially uses the same formula as Pong, but also adds the ability to move forward and backward (at different speeds per character), variable throwing power per character, and character-specific special moves. Now you need to do a lot more balancing to make sure any one character can more-or-less stand up against any other. You want character choice to be a question of preference rather than “this one’s obviously the best.”
Windjammers’ character selection screen.
Now that we’ve moved from symmetrical to asymmetrical competition, there are a lot more factors for us to deal with. We want players to have a preference for a team that has a weapon set and playstyle that resonates with them, but without feeling unfair one way or the other.
For example, our Congo team is all about hitting the ball multiple times per shot, using the aforementioned assault rifle, and a yoyo gun that can hit the ball as long as it’s extended. The Japan team is more about hitting the ball harder and faster, but fewer times, when compared with Congo. The Japan striker’s level 3 charge shot is currently the fastest and most powerful shot in the game, but has a lengthy charge-up time before you can fire it.
The Japan striker (left) hits the ball harder than the Congo players, with even his level 2 shot.
We tried our best to balance this in advance of showing it at conferences, but when the game was on display at the Game Developers Conference, it was pretty clear that the Congo team was much stronger than the Japan team, because it was more versatile in terms of what it could do, and hitting the ball more frequently was a huge advantage. So I had to take some steps to correct this for our PAX East build, and then I made some further adjustments for the final day of PAX, and EGX Rezzed in the UK, where the game showed next.
To explain the balancing we did, you need to know a bit about how Gunsport plays. In brief; you’ve got two teams, both trying to shoot a ball over a net into goals or the floor on the opposing side. There are two positions per team – the keeper, who doesn’t move but has a wider aiming range and gets two shots per volley – and the striker, who can move and jump, but has a narrower aiming range and only one shot per volley. Also important, the ball is worth one additional point every time it crosses the net.
That last point is important, because the first thing I changed during GDC was unrelated to balance, it was related to scoring. Essentially, points are added to the ball with volleys, but volleys weren’t happening as often in our new asymmetrical model, so you’d be getting scores of 3 to 5 points per ball, when we’d rather see 12 to 15, after players shoot the ball back and forth multiple times. It’d just massively more fun when there’s a push and pull of tension between teams.
In Gunsport, the ball’s speed is simply a reaction to bullet speed – it moves as fast as the players’ bullets can push it. Luckily, the lead programmer/lead artist Decinoge has built a bunch of tweakables into Unity for me, so I can change things on the fly without bothering him.
A decent volley – we’ve had volleys worth up to 43 points.
To fix the volley “problem” I reduced the power of every single bullet in the game, but also reduced the gravity. This means the ball moves slower, so is easier for players to hit, but also is more likely to travel straight because it’s less affected by gravity, so it doesn’t feel like it’s moving slowly. This worked great. Though it can still be further refined, the game became much more fun right away.
On the Japan side, I increased the hitbox (and speed) of the striker’s bullets, since people were having an inordinately difficult time gauging whether their shot would hit. Likewise, I increased the speed of the Japan keeper’s shot. After a bunch of tweaking and back and forth, this all worked pretty well. We saw higher volleys, and people were having a lot more fun, without really realizing what we’d done. In Gunsport, tighter matches feel much more fun than blowouts, so this is what we wanted to achieve.
The way forward
Balancing based on decisions you’ve already made is all well and good, but the real problem is I didn’t think hard enough about how each of the weapon sets would interact with each other weapon set from the onset – I did think about it, but clearly not enough. I spent more time considering how each pair of weapons would complement each other on any given team, and didn’t think all the way through how those would interact with each other on other teams. I’m a very reactionary designer, and I like to see something in-game before I really grasp what it should be. But that creates more work, and I might’ve fallen into some better solutions with a lot more thought. Gunsport’s programmer/art director Decinoge is pretty mad about this, as you can imagine!
The Congo striker’s shot is rejected by the more powerful Japan keeper shot.
Nowadays, the game is pretty decently balanced. It’s not perfect, but it’s getting there, for just the two teams. As the person who has played this game the most of anyone in the world, I can pretty consistently make sure my team wins no matter what position I’m in, on either team, against relatively experienced players. But what of the next series of weapon sets? We’re going to have five teams total, so I can’t just balance one against another – it’s a big nest of interacting weapon systems! That’s a post for another day.
From here on out it’ll be a lot more planning, and a lot more playtesting – wish us luck!