FEATURE

All Around The World

Harvey Smith's picture

By Harvey Smith

April 14, 2009

See also:

Related Articles:

Harvey Smith's first game since his departure from Midway is far from the hard sci fi and simulation heavy world building for which he's known. KarmaStar, published by Majesco, is a strategic card game with a cutesy visual style for iPhone. Players have eight turns to live a gaming lifetime, competing with two opponents over wi-fi or against AI, by judiciously planning character traits.

Here, he explains how he and his team produced the game, which was a side project from the one he's developing with Arkane Studios. He describes the jump in culture he experienced from directing large scale console games with tens of developers in a single office to a much smaller team that's distributed around the world, outlining some of the lessons he learned dealing with time zones and video conferencing, face-time and companionship.

Working with Majesco Entertainment and a small team, we just finished an iPhone game called KarmaStar. It's a light, tactical card game that works as a solitaire or wi-fi multiplayer experience. It's meant to be super cute on the surface, with aggressive game mechanics underneath. It's themed as a 'life' game, but played out over just 8 turns. It was my first strategy game, and overall I'm happy with the way the game turned out. Even after months of playtest, I still play it whenever I have 10 minutes to spare. I travelled a lot during its alpha and beta phases, and amused myself by noting whenever I hit a new first: first to play KarmaStar in a taxi, first to play KarmaStar on a ferry, first to play KarmaStar on the Golden Gate Bridge, first to play KarmaStar in a bar bathroom with vomit on the floor...
I do most of my gaming via console and PC, but I love iPhone because it's always with me and it has so many different uses. I can barely believe all the ways it's seeped into my life. I use it constantly, not just for phone, camera, email, MP3s and gaming, but as a recipe guide when cooking, a stock update device, a weather guide, an e-book reader, a daily newspaper (via BBC), Twitter (of course), to track the current insane allergy pollen counts in Austin, and a GPS device when driving (because my sense of direction is legendarily bad; I finally have an automap in the real world, yay). One of my big hopes is that the iPhone really takes off for strategy, card and board games. In many ways, I feel like it's an ideal platform for these turn-based games.

Like most game projects, working on KarmaStar was educational. For me, it represented a new genre, a new platform and a new team. In ways, it was humbling. The smaller the game, the more you have got to get the mechanics right because there are fewer obfuscating elements. My respect for mobile developers and strategy game designers is very high, post KarmaStar.

I'm working on a proper post mortem, but in the interim I wanted to write up some thoughts on distributed teams, based on what I learned during the project. Increasingly, we'll likely all be using video conferencing and working remotely. The best thing about that, from my point of view, is that it means you can work with friends who have moved to other development hubs or even places lacking a game development infrastructure. Geography ceases to be a constraint on team chemistry.

For KarmaStar, members of the team were located in Austin, Dallas, Lyon, London, Boston, New Jersey and Monterrey. Needless to say, we used a lot of video conferencing, email, IM, and phone communication. What follows is a list of things we learned about working with remote team members.

Use vidconf as a virtual window, not just for meetings
This is important and it's easy to miss. Most people see video conferencing as a tool for meetings - a crowd of people on both sides, sitting around tables, taking notes and talking in turn. It's fine for that, but a better use is to simply leave it up and running during the day. If you've got a dedicated cart or a second machine running something like Skype, try it. Leave it up throughout the work day and you'll be surprised at how easy it becomes to just chat with another team member as if your desks were near one another. In the end, this enhances camaraderie, above and beyond whatever camaraderie is created by formal meeting time, and it also allows for such impromptu information exchange as "Why did we decide to put this rule into place?" Or, "Where is that file again?"



Meet face-to-face before the project

Ideally, you'd already be friends before starting. That's not always possible, but, put bluntly, it makes the remote relationship much easier. If you don't know your new distributed team well, schedule in some time (and budget some travel) to get together. For KarmaStar, I flew to Lyon and lead engineer Matthew Rosenfeld came in by train from London, so we could meet with Pierre Braconni, our art director, for a few days. The back and forth between the three of us was crucial for later problem-solving. It helped Matthew and I re-connect and coast during email exchanges. It really helped Matthew and Pierre get to know one another, smoothing their later wrangling over animations and memory. Similarly, prior to production, I met in Austin with DSonic, our audio guys. We just chatted for a couple of hours over coffee, but it was the first time I'd seen them in a year or more and it made later interactions much easier. Face-to-face time serves as a social bridge. It reconnected me with Simon and Kemal Amarasingham; after that, even in toneless emails, I think we always assumed the best, giving each other the benefit of the doubt. So maximise the face-to-face time together, since you might not being able to meet up again during the project, stay out late and go into mini-crunch when you're close to one another.

Work with good communicators
This is probably one of your core values as a developer anyway. Working with people who are good at their jobs is great; hopefully on top of that your teammates are very social, very effective communicators, people who by nature love to discuss things, share information and plan together. If you and another developer don't have these habits, you might think twice about trying to work together, miles apart.

Work around the time zone difference
This might sound obvious, but if some of your remote teammates are in another time zone, it's worth resetting your schedule, getting up a couple of hours earlier than normal, so that you overlap with them. Getting in at 8am instead of 10am, might be a stretch for some of us, but if it gives you two more hours with your French or British colleagues, it's valuable.

Use the time zone difference
Sometimes the difference in time zones is painful, but it can actually be used to your advantage. Obviously, during hours when you overlap with team mates, you want to spend time collaborating with them. But if they're heading off to bed around lunch time, it gives you the rest of the day to work, review their materials from their day, or prep content for their arrival the next morning. By scheduling your work respectively around the times you're with them or alone, and around what they need from you the following day, you can sometimes effectively time warp; by the time they return to work, you're ready to hand off half a day's work or playtest notes.

Team bulletin boards help
CGBOT handled some of the artwork for us. Not only does CEO/art director Sergio Rosas make effective use of Skype with clients, he's also got a great bulletin board system set up that allows him and his artists to post assets (in thumbnail), ask for feedback, make small update reports, and generally interact with clients. The CGBOT guys made a private account for the KarmaStar team that allowed us - mostly Pierre -to correspond quickly, communicating back and forth via rough contact sheets, feedback notes and sketches.

Meet with other local game developers for a communal/coffeeshop day
I did this a few times during KarmaStar and I know some other Austin developers who do it regularly. If you're working from home, after a while you're likely to miss sitting near co-workers. Meeting one day a week, even with people working on other projects or from other companies, can really give you a sense of social satisfaction. There's something about sitting near other humans, sharing the same type of work, something encoded in our brains from eons past. Communicate with friends, even those working in an office, surrounded by dedicated team members, and set up a day each week or every other week to descend on a coffee shop. Places near campuses tend to be best. You'd be surprised at how motivating it is to work quietly in a room filled with a mix of strangers, friends and developer acquaintances; it's a great break from the office grind and I found it energising.

Special thanks to Raphael Colantonio for his contributions.