Editorial | 1/19/2012 at 10:39 AM

Indie-Ana Co-Op and The Dev Stories - You're All In This Together

Final Form Games Shares Their Story of How Co-Op Came to Be in Jamestown

TEAMS OF RIVALS: CO-OP LESSONS FROM JAMESTOWN

In a pressurized cabin about 40,000 feet above the Rocky mountains hurtling towards San Francisco at over 500 mph, on a laptop that was well past its prime, at absolute end of a brutalizing two-month crunch, our lead programmer Tim added 4-player co-op to Jamestown just in time for the Game Developers’ Conference, and then promptly passed out in his complimentary airplane peanuts.

The Jamestown in question became an indie pixel art shoot-em-up with 4-player local co-op, for the PC, Mac, and Linux. It took us about two years to make, with three full-time developers (2 programmers, 1 artist), and the help of various super-talented freelancers and friends. Co-op was an area of special interest for us, so we decided to treat it as a first-class feature with every bit of importance as the single-player game. This was a huge undertaking, and forced us to contend with countless problems we never could have anticipated.

Solving those problems stands as one of the proudest accomplishments of our lives.

But when people ask us how Jamestown’s cooperative experience came to fruition, we often tell the story above; mostly because it’s fun and short, and because it alludes to our never-say-die, seat-of-the-pants, oh-my-god-we’re-all-going-to-die indie life choices. Also, it alludes to Tim’s considerable moxie. And it is a true story.


Behold! Our pre-alpha UI in all its glory!

However, it omits rather a lot of useful information that, presumably, the folks who ask us that question are interested in hearing. It also glosses over the year-plus of additional work that went into actually finishing the core co-op game systems that Jamestown features today, which is a problematic message, because there ain’t nothin’ easy about adding good co-op to a single-player game.

That dismissive tomfoolery ends today; we’re here to share some of the hard-learned lessons from our two-year stay at The Co-Op Problems Hotel.

A NOTE ON CIVILIZATION PLAYTESTING

Playtesting is the method we used to evaluate every one of our assumptions and ideas. Everything we’re about to describe was empirically verified by dozens and dozens of playtests. We believe this is the safest way to navigate the treacherous waters of game design, and we’re (in)famous for our tendency to expound on the virtues of that process at the drop of a hat.


Pictured: an experiment in progress. A serious, serious experiment.

So if you take nothing else from this article, please take this: playtests are the experiments you do to verify the unsubstantiated hypotheses you refer to as “your design.” If you want to make something truly fun, try to subject it to constant, deliberate scrutiny, and keep integrating what you learn into the next version. The journey may be hard, but it will take you to good places.

Alright, finally: let’s get into it.


Not, like, super-cooperative?

SIMULTANEOUS DOES NOT EQUAL COOPERATIVE

We played a goodly number of shoot-em-ups in our preparations for Jamestown, and as lovers of co-op, we made sure to play every one of them with as many players as it would allow (almost always 2). It’s no exaggeration to say that we conducted a comprehensive survey of the genre’s entire history. Hell, we even made our friends play them while we watched. And what we learned (besides respect for our elders) was that almost none of those games had been designed with cooperative play in mind.

When it comes to invoking a sense of camaraderie and teamwork, the disparity between those games and, say, Left 4 Dead, was too large to even use the same word when discussing them. Left 4 Dead is cooperative. Rock Band is cooperative. Those games were consciously designed to create cooperative moments that would resonate with their players, moments that would show up in the gaming war-stories they told days or even years later.

But sadly, the most accurate term to describe our venerable shoot-em-ups’ 2-player modes is simultaneous.

And that’s cool! I mean, sure, there’s Tim flying around as Player 2. We can shoot stuff together, sometimes the same stuff; all very cool. But it’s a far cry from the kind of co-op that gets us out of bed in the morning. We wanted players to hoot and holler at each other as the game intensity increased, make risky plans and back each other’s play no matter the cost; Han Solo their friends out of bad situations at the last possible second, and celebrate each other’s heroism whether or not they had even survived the battle. Win or lose, we wanted them to do it together.

That’s hard to manage in a game where Player 2 can just gobble up all the shared lives, die for the last time, and sit around waiting for Player 1 to finish having fun alone. And even if they both survive for a while, their individual high score counters are right there on the HUD, silently reporting their relative levels of alien-eradication skill for the entire session. Making sure they know who’s winning.

We have a word for that sort of gameplay: competitive.

To find other games that achieved our goals, we had to zoom out so far that we weren’t even looking at shoot-em-ups anymore. Games like L4D and Rock Band do a brilliant job of keeping all the players engaged for the vast majority of the game session, and of encouraging them to behave like a team. We looked hard at what those developers (and many others) were doing to create the sort of experience we were shooting for. After much discussion and playtesting, here are the solutions we arrived at for our game:

No Dueling Digits

Electing to focus on 4-player co-op in a PC game without online multiplayer was probably the boldest decision we made during Jamestown’s development. Believe it or not, going with a single high score value in co-op could well be the second-boldest.

Serious shooter players are seemingly hard-coded to optimize their high scores, and the culture of leaderboards and multiplayer gaming in general all reinforces the assumption of One Player: One Score. Jamestown actually had 4 individual high scores on-screen in the early days, and our playtesters clearly enjoyed competing for numerical dominance.


Jamestown's misspent youth

But the fact was they weren’t having the kind of fun we were chasing after; for every elated winner, there were always between one and three deflated losers.

By pouring every player’s score contributions into the same bucket, we created a philosophical keystone and stuck it right there on the HUD for every player to see: you’re all in this together. There was nothing left to compete for, besides actually grabbing the “vaunt” gold pieces that drop out of enemies. And because the careful distribution of that gold across the whole team is critical to keeping everyone alive, gold-grubbing behavior tends not to last long. Besides, getting to the very high scores that leaderboard play demands requires extremely careful choices about who grabs how much gold, and when, which further harnesses the serious player’s min-maxing instinct to the cooperation wagon.


What now?

As shipped, Jamestown’s co-op mode has literally no differentiating player-evaluation stats at all, with the possible exception of the end-of-level “heraldry” labels like “Field Surgeon” and “Most Deadly.” And it’s no accident that that even those are all non-numerical and entirely positive: we found that negative heraldry (along the lines of “Bullet Sponge” or even “Least Deadly”) provoked shame, discouragement, and sometimes even anger in the playtesters who received them. In a competitive game like GoldenEye (the inspiration for that particular feature), that sort of thing can be a fun way to stoke the fire for round 2. Sadly, in a cooperative game, even something that innocuous turned out to be a real tonal discontinuity.


Pictured: Tim's dad and uncle demonstrating the target experience as Hal swoons in the background.

All Ages

Besides jockeying for score & in-game resources, another anti-pattern that we saw a lot in older co-op games was the way mixed-skill play was implicitly discouraged by the game’s mechanics. In a game where everyone’s drawing from the same pool of lives and resources, a weaker player who dies frequently is entirely capable of torpedoing their entire team’s chances at fun and success. Plus, inexperienced players spend too much of their session in “downtime,” waiting around for another round to start so that they can have another shot at enjoying the game. As a result, resentment and un-fun is the flavor that people remember from the experience.

We wanted Jamestown to be a game where any group of players, with any mix of age, gender, and genre fluency, could have a great time playing together. To achieve that, we made it a mantra of ours that the strongest player on a team should never feel compelled to shame the weakest.

Easy (and kinda inspirational!) to say, but very difficult to accomplish in a genre where life and death are only ever separated by a single player error. Indeed, minimal error-tolerance is essential to what makes this sort of game fun and thrilling. However, because of the concerted effort required from the players who are motivated to truly succeed, it also fosters a large skill gap between new players and seasoned old-timers. That emphasis on perfect play (clearly represented by the lack of a health-bar that allows for multiple hits) is one of those design decisions that sits at the heart of almost every other “authentic” aspect of the genre. To ignore it is, in many ways, to make a non-shmup.

Which presented us with a problem: without breaking that cardinal rule of shoot-em-ups, how could we keep death punishing enough for players to work hard at avoiding it, while at the same time softening the penalty for failure sufficient to keep new players interested? And how could we ensure that no single player was ever a target for blame from the others?


The key elements

After trying several wrong answers, here are the ones we decided were right:

Implement a respawn timer that gets longer with every player-death. This way you have a good soft incentive not to die constantly, but even when you’re dead, you still have something to look forward to. It also dramatically reduces overall downtime, which is great for player engagement.
  Do away with lives and use a credits-based system, whereby only the simultaneous death of the entire team can result in the loss of a credit. This way, you only truly penalize the team when each member of that team has failed, instead of singling out individuals. This also creates a system that can accommodate a LOT of individual player deaths without depleting a super-valuable resource.
  Add a power-up item called a “Revive Token” that can bring some or all of your dead teammates back to life instantly. This means that anyone can grab this item and save the day for their entire team, regardless of overall shmupping skill.

Those three changes resulted in a night-and-day transformation of the player dynamic in co-op. Suddenly players were hollering encouragement to each other, announcing their deaths, counting down the seconds until their respawns, and most importantly, sharing their successes and failures equally. New players, especially, loved the feeling of plucking the whole team’s victory from the jaws of defeat (an unusual feeling if you’re used to being the weakest player in the room!), and the experts in the room were always quick with their praise for those rescue missions.

When making tweaks to the formula of such an established genre, we did our best to increase the accessibility of the fun in Jamestown without sacrificing the things that are important and enjoyable to serious shoot-em-up fans. We considered the hard-core to be just as valuable as our other customers, and while nothing’s perfect, we’re very proud of the way our game performs that balancing act.


The problem, in a nutshell. These guys are not aware of each other. Like, at all.

Facilitate Interaction

Interaction is the life-blood of cooperation, by which I mean that cooperating without interacting is literally impossible. However, encouraging interaction between players can be a challenge, especially in a genre where each player’s attention is so selfishly monopolized by the task of navigating their own little ship through a sea of bullets.

After implementing the player-reviving and credit systems mentioned in the previous section, along with other core gameplay mechanics like the Vaunt shield, we identified five major interactions that tended to happen between playtesters:
 

Players use Vaunt shields to protect each other from certain death. Players inform other players that they have just died, in the hopes that their resurrection will be prioritized by those who still live (and to make sure they know that they’ve lost a gun). Players encourage the last player left alive to stay that way, usually by jumping up and down on the couch while bellowing something along the lines of STAY ALIVE, STAY ALIVE YOU CRAZY SON OF A- FOUR MORE SECONDS FOR GOD’S SAKE JUST HOOOOOOOLD OOOOOOOOONNNNNNNN and so forth. Players bring their dead teammates back into the action by grabbing Revive Tokens. Players say thank you when a teammate just did them a solid (i.e. shielded them, revived them, or just helped kill a big scary monster that was giving them trouble).

We came to realize that these interactions were happening because we had empowered the players in a specific way. We had not only enabled them to make a conscious decision to help a teammate, but also to deliver that help in a way that was both visible and unmistakably critical to said teammate’s success. By encouraging the closure of the feedback loop between players, we were able to ensure that the events listed above were true interactions, and that everyone was aware of what their teammates were doing on their behalf. After all, even if your teammates don’t say thanks, they still remember, and in a co-op game that makes all the difference.

----------------------------------------------

As he dozed on that airplane to California, Tim had only just begun the journey towards understanding what co-op was really going to cost as a feature. Believe it or not, this article is the same way. Conceiving of asymmetrical (and synergistic!) ship designs and playstyles, striving for symmetry and scalability between the designs of single- and multiplayer gameplay systems, and the all-important meta-balancing of a the entire game across five difficulties and all possible player-counts/ship-combinations in a robust and sane way... these problems and solutions would take even longer to communicate.

Perhaps the Internet is better for it? Or perhaps there will be a Part 2!

For now (at least until Co-Optimus lets us anywhere near the Publish button again) this will have to do. Thanks for reading, and please know that we encourage any developers among you to consider working co-op into your own projects. It’s not easy, but almost nothing in game development is. It also may not make sense for your budget and goals, and you must always respect those constraints.

However: if you decide to make the attempt, and if you somehow succeed, then the realization that your game has helped a group of strangers to transform into a cohesive team is a thrill that, at least for us, is unlikely to ever truly fade.


[Ed. Note: Doilies are also key]

Are you an indie developer with a co-op game and would like to share your own development story? Let us know by dropping a line to indie@co-optimus.com!