Kevin (erf_) wrote,

space opera in string and duct tape

My time in Cupertino is nearing its end! I am going to write a whole bunch of shorter entries rather than one long one. Easier for me, easier for you!

So. General stuff first. What have I been doing out here? Well, there's this turn-based play-by-email 4X game, Star Conquest, that Cormac came up with when he was around my age. You start with one planet and some planetary industry, and a bunch of jump points to planets you can't see. Each turn, you can use the industry to build some starships, which you can then send through the jump points to find new planets. You then use the new planets to build new ships, which you then use to discover new planets and new jump points, which you keep doing until you bump into other players who are doing the same thing. And then you make bigger and bigger ships and have epic space battles with your neighbors until they are dead. :]

So, board gamers, it's kind of like Risk with more unit types and less chance, and, computer gamers, it's like Civilization with drastically simplified economics.

Cormac and his then-housemates--work buddies from now-defunct New Jersey studio CyberWarrior--ran this game between themselves for a while, and talked for ages about converting it to a web game (this was long before Facebook games, or even Flash), but life got in the way. Folks found full-time jobs, moved away, got married. Some code got done for a web version, titled Stellar Expanse, but the project never saw fruition. There was a period of maybe ten years when nothing got done at all, and the code lay lonely and neglected in a friend's webserver, just one more project in the trail of vaporware that any game designer inevitably leaves behind over the course of his or her career.

A couple months ago, Cormac dug up the code and got all nostalgic. He contacted his old buddies--a bunch who had moved near him since--and basically said, where doing this man, where MAKING IT HAPEN.

And, well, he just happened to be reading my LJ and saw that I was unemployed, had a big chunk of time to devote to the game, and in dire need of some game industry work experience. So he made me an unusual offer: If I agreed to come out here and work on the game full-time for three weeks, hacking away at it while he was at work, he'd fly me out here, let me live in his house and eat his food for the duration, and take me out frequently to meet his friends. (Game industry folk in their native habitat, at home, as opposed to all brushed up and impersonal in the workplace. The real people behind the titles and polo shirts.) At best it would be somewhere between an internship and a residency; at worst I'd basically be his pet coder. I thought, why the hell not? So here I am.

The development process for Stellar has been...unique. There's no budget for this game, nor any company backing it--it's what in entrepreneurial terms would be called "speculative work," a project a bunch of individuals undertake to see if forming a company would be feasible. So there's no office, no work machines--everyone works from home, and we store our code on Steph's personal webspace. Aside from me, everyone working on the project is employed somewhere else; a few of them aren't even game developers. So most of the development gets done after hours, in fits and starts, with most of us not together in the same room, communicating frequently over the course of the day over AIM and email. I think I'm the only person able to work on the code continuously over the course of the entire day; as the person who understands the code least, this extra time is generally spent just figuring out how everything works.

Every Sunday Cormac invites a whole bunch of game industry friends--anywhere from five to thirty--to come to his house for playtesting and barbecue. Everyone sits on the floor of his living room with their laptops and iPads out, playing the game and drinking fancy soda and eating carrot sticks and hummus and slices of grilled London broil. Instead of waiting a day for the next turn to roll over, as players will do in the finished game, we pass a large styrofoam cylinder around the room to indicate we are done moving our ships; every time it gets to me I manually run the script that begins the next turn. In this sense it feels a little bit like a LAN party--or the closest contemporary equivalent, with folks accessing the game via wireless Internet on a variety of gadgets instead of an armful of towercases and a bajillion ethernet cables.

What makes the weekly playtests unlike a LAN party, however, is that we are creating the game as we are playing it. Most of the participants are current or former game designers and developers, so they'll frequently suggest improvements to the user interface--clickable planets, quantity textboxes so you can build a lot of stuff at once, planetary resource production overlaid on the map--and Steph and Wolf will get on it immediately, and the new feature, if simple enough, will be implemented by the beginning of the next turn. It is amazing watching the gameplay experience improve dramatically between turn 1 and turn 25. Game system changes, like the addition of new abilities for scout ships or alterations to the damage stat of orbital weapons platforms, are passed on to Cormac to ponder over and balance the course of the week (he is constantly reworking the numbers on a spreadsheet on his iPad), and broader changes to the underlying game are generally left to Steph to chew on, as he knows the codebase best out of all of us. (Me? I am tasked with removing the enormous wads of string and duct tape that accumulate over our code, making it simpler to run and manage the game. I mean, virtually all of it is written in Perl. Early 2000s web game, remember, with features rolled out within minutes instead of carefully planned over weeks...) But the most visible changes happen instantly. It feels a lot like the virtual world in Neal Stephenson's Snow Crash, in which Hiro, annoyed by how walking around cyberspace is a bit of a pain, nonchalantly codes himself a motorcycle in-game and zooms off on it. This is sort of kind of maybe the coolest thing ever.

The concept of work hours is ephemeral. We are never not working on the game. At meals we talk about web frameworks, algorithms, languages, libraries, all sorts of implementation details; at night we talk about unit balance and the ratios of attack/defense stats to resource cost. At dinner parties we discuss build strategies, alliance politics, and decision-making from the last playtest, and whether we want to encourage or discourage those experiences in gameplay. At the gym we discuss monetization schemes and potential deployment platforms (Facebook is looking rather good at the moment). Rarely do we ever meet someone from the last playtest--and this is often, as Cormac has a healthy social life--without him or her suggesting a new play mechanic, a new unit type, an increase or decrease in the overall effectiveness of carrier-borne missiles or stationary defenses. Even when the topic of conversation switches to something other than Stellar (as it will, for even game designers like to talk about things that aren't games sometimes) you can almost see the numbers crunching in Cormac's head, and in idle moments, indeed, he is never without his iPad, fiddling with the spreadsheet just one more time. It is like taking a typical adult social life, with all its socializing and exercise and awkward sexual things, and replacing 70% of the dialogue with discussion from a particularly civil gameplay balance thread on an MMORPG forum. Holy shit do I want to be doing this for a living. :D

There is a staggering number of people associated with the game via the playtests. Some of Cormac's friends, true post-Oberlin types despite not being Oberlin alumni, are bizarre and fascinating enough to deserve entries of their own, and the impact of meeting these people on who I want to be and what I want to do with my life is something I will likely continue to write and talk about for ages. But, as this entry is already far too long, I will introduce but two. These are the programmers I've been working with:

Steph, our lead programmer, is one of the original designers of the game, back in the late '90s when he and Cormac were housemates. He works at a current-gen game console manufacturer (but not in the entertainment division), and talks and looks like Nicholas Cage. He has many amusing stories about rivalry and identity issues among his company's many divisions--it is, in some ways, almost like a small government, with various agencies perpetually at odds over their overlapping responsibilities, and working feverishly to protect themselves from each other. He is an exceptionally good coder (I've never seen Perl code this readable!) but is the busiest of all of us, so when he's around we try to make the most of it.

Wolf, our interface programmer, works for an adult dating site. He describes his coding style as "the Roomba method," in which he repeatedly tries stuff, bumps into a wall, and then takes the code in another direction. (Roombas, of course, also go around and around in circles, treading the same ground over and over...) This is extremely alarming, but I suspect Wolf is merely being humble when he says that, as his code is far better than I'd expect from someone who proudly espouses that coding philosophy. His code is quick and dirty, but it's generally at least somewhat sensible, and it works. With his significant Perl experience he at least knows what he's doing when he breaks the rules--far more than I do. Apparently being able to implement functionality and put out fires quickly is a huge asset at his job, and it is a huge win over here.

More to come, but Steph and Wolf just got here, and we've got lots more tweaking and debugging to get done before my last playtest tomorrow. Woo!
Tags: computers, cupertino saga, games
  • Post a new comment


    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded