Cogs Postmortem: Tips for the Aspiring Game Developer
I don't claim to have the secret formula for bootstrapping a video game startup. I don't claim to have figured out the best practices or know all the right answers. But I have managed to start a company with my own modest savings and bring a new PC game to market. In its first few months, Cogs has managed to sell well enough to keep my little company afloat. Along the way, I've picked up a lot of valuable lessons. To help out the next aspiring indie developer, I've compiled a list of what I've learned, what went right and what went wrong – presented here in no particular order.
Be prepared to wear a lot of hats
If you're interested in starting your own indie studio, chances are that you're either a digital artist or a software engineer. And with the skills you have, you can probably put together a pretty solid game prototype. A lot of us in the indie circle can honestly say that we make games because we enjoy the process – it's a form of expression. But if we want to keep making games, we ultimately need a self-sustaining business. To make that happen, you need to be more than just an engineer or an artist. You need to be a CEO that pursues business development opportunities such as online and retail distribution channels. You need to be a marking guru who gets the word out about your cool new game. You need to be a publicist to manage active press releases, blog posts, Facebook updates and Twitter feeds. And if you aren't prepared to juggle all those tasks, you should consider bringing someone on board who can help out.
The hats that you wear from day to day will depend a lot on where you are in the production pipeline. Early on, focus your efforts on gameplay development. But as you approach completion, you'll need to spend more and more time reaching out to your target audience and talking to distribution partners.
Aside from artists and software developers, there is a third category of entrepreneurs who I've seen show interest in starting a game company – the business guy who's in it for the money. You know the guy I'm talking about – the guy who has a passion for profit more than for games and wants to strike it rich with his big new blue ocean idea. If this is you, stop right now. You're going to be competing against hundreds of other developers from around the world who are willing to put in long hours and work in lousy conditions with low wages because they love what they do. You'd better be pretty freakin' brilliant if you want to compete with that.
It's all about the gameplay
In a former life, I spent a couple summers interning at Pixar. One of the lessons that I picked up along the way is that Pixar's success has very little to do with their pioneering work in digitally animated feature films; rather, they understand that the key to a good movie is the story. If the story isn't compelling, the technology won't fix it. This same rule applies to game development, but in place of the story, it's the gameplay that serves as the foundation.
A lot of new developers make the mistake of thinking that if they put together a game with a new technology or an incredibly polished appearance, then they'll have a guaranteed winner on their hands. If the gameplay can't stand by itself, the tech may make the it a good novelty but it won't win over a large audience.
Make your game playable from the very beginning
Sometimes, a game concept that seems like a good idea on paper doesn't turn out to be particularly fun when it's all put together. To make sure you've got a game that's worth playing, focus first on gameplay and build a functional prototype as soon as possible.
There are three good reasons to focus on function over form when designing your prototype. First, you need to make sure the game is enjoyable before you get too deep in its development. If a game isn't fun in its prototype form, it's unlikely that all the artistic polish in the world will make it better.
Secondly, by having a game that's playable early in the development cycle, you leave yourself with plenty of time to improve what's really important – the gameplay. If gameplay testing and iteration come too late, then you'll likely be reluctant to make major changes.
Finally, having a playable prototype makes it possible to bring in early beta testers to provide feedback. When the final, polished artwork is in place, beta testers may consider a game to be largely completed, in which case they may be hesitant to suggest major changes. If art assets are clearly temporary, then beta testers will naturally focus on the gameplay rather than the appearance.
Maximizing awesomeness per capita
Embrace synergy. Yes, I know how much that sounds like upper-level management hype, but bear with me on this one. Part of the reason I enjoy the small teams in indie game development is that everyone has a substantial contribution to the final project. I have, in my head, a mental graph of awesomeness per capita. One person can, given enough time, design a pretty decent game. If you pair up two people who work well together, then they may make a game that's more than twice as awesome as what one person can do. Three contributors may be able to more than triple the fun. This is what annoying business gurus call synergy.
But this synergy breaks down quickly – 50 developers, artists and managers can't make a game that is anywhere near 50 times as cool as what one person can do. If you look at the graph of awesomeness per capita, it peaks somewhere between 2 and 5. And I'm happy to stay right there. I have no desire for Lazy 8 Studios to be the next EA.
Team up with people who really believe in the game
To maximize the awesomenes per capita ratio, you'll naturally end up with a small team where everyone will have a major impact on the game. That means that just one team member who isn't totally on board with the project can really drag it down. In this type of scenario, commitment is just as important as talent. Team up with people who believe in the project. You need someone who shares your enthusiasm – someone you can bounce ideas off of – not just a contract worker who's in it for the payoff.
It will take longer than you expect
To quote Hofstadter's Law, “It always takes longer than you expect, even when you take into account Hofstadter's Law.” Game development is no exception. Detailed planning is important, but if you've set up a budget that will last exactly three months, you had better have a contingency plan in mind.
Asymptotically approaching completion
No matter how much time you spend on a game, there's always room for improvement. Come to terms with the fact that a game is a work in progress and at some point it's good enough. If you want to achieve perfection, you'll asymptotically approach the finish line and never be done. Eventually you have to pull that finish line down to meet your progress curve.
With online distribution, it's easier than ever to patch your game after it's released. And while I don't endorse the practice of leaving out major features to race a game to market, it's ok to save some enhancements for after the initial release.
Even on release day, you're not really done
The game is out. Time to sit back, relax, and let the money pour in – right? If that's what you expect, be prepared for a big surprise. On release day, you trade in your developer hat for stack of others, including support, marketing, publicist, and business development. Even if you miraculously managed to ship a bug-free PC game that works on every possible combination of hardware out there, plan to spend a lot of time immediately after the release fielding emails, sending free keys to reviewers, expanding your distribution network and generally building up hype. If you're the purist who's in it for the art of the game and have no interest whatsoever in marketing, you'll still need to spend some time acting like a CEO if you want to earn enough to carry you through to your next game project.
Don't shun a big studio job
You're fresh out of high school or college and ready to start work on that Big Idea that's been brewing in the back of your brain for a while. Before you leap into an independent development project, I highly recommend spending some time at an established game studio to learn the ropes. While your academic background will serve you well, many of the skills that you'll need simply aren't taught in school.
I got my start at Demiurge Studios in Boston, a small company that introduced me to a lot of important tools and practices that I hadn't learned, even after ten and a half years of higher education. Here are just a few of the skills I picked up on the job:
- Using version management tools to coordinate development and minimize coding mistakes
- Designing a code framework that can target multiple platforms
- How to create and manage art assets from different tools
- How to negotiate a fair and mutually beneficial contract
- Working with and debugging massive third-party game engines
- Accurately estimating production schedules
Being your own boss: The dream vs. the reality
So you've spent some time at a big studio and you feel like the time is right to strike off on your own. There are some things you should know about being your own boss. You may think that when you're running the show, you can set your own hours, take vacation whenever you want and work from home in your bathrobe. And to some degree, all of this is true. But when every hour spent away from your computer puts you one hour further from your next paycheck, most of us find that we spend more time than we anticipated at work. Others have the opposite problem – with a whole Web of distractions just a click away, it can sometimes be hard to get any work done at all.
Some people just aren't cut out to be their own boss. You need to be comfortable shouldering a lot of risk – not just for yourself, but potentially for others who are tied in to the same project.
Funding your indie: bootstrapping vs. venture capital
When it comes to funding your startup, you're not going to get any consistent answers on the best route to take. If you use angel investors or venture capital, you can start with a much smaller personal investment and potentially limit your financial risk – but you owe your investors a big chunk of your company. If you want to bootstrap your company, you'll need at least some modest savings to start with, but you'll have full ownership over anything that you produce.
I bootstrapped Lazy 8 Studios with about $30,000 of my own savings, and I feel like it was a good route for me. Keep in mind that in order to earn those savings, I had to live modestly, even when my income level rose while I was working at Demiurge Studios. For the vast majority of us, our lifestyle quickly rises to meet our income, so it will take some discipline to earn the savings you need to start a studio.
Be your own hype machine
One of the mistakes that I made in developing Cogs was that I took too long to start cultivating an audience for the game. Even early in the game development, if you have a cool new feature that you've implemented, blog it, Twitter it, post a YouTube video, and link it to your Facebook fan page. You may think of yourself as an artist or a developer, but you need to be the marketing department too. You'll be surprised at how quickly you can build up a fan base, even when you're months away from finishing a game. And those fans will be important later on.
Respect your fans
I've been truly awestruck by the generosity of the Cogs fan base. Cogs hasn't yet reached a large audience, but there are more than a few players who are crazy about it. When we put up a wiki for community-based translation and casually mentioned it on an obscure forum post, I was shocked to come in three days later to find a full Spanish translation contributed by a fan. (Brendan and I have spent a lot of time creating the localized art assets, which should be available soon.)
Learning a new language
Whether you're a software engineer, an artist or an audio designer, chances are you use a lot of specialized jargon to describe what you do. When it comes to communicating with another team member or an external contractor, you'll either need to learn enough of their jargon to convey your ideas, or you may need to settle on a language that you both understand. When you're having trouble communicating priorities, remember that time and money are universally understood. When an artist requests several features, it's usually most useful for me to give a time estimate for each one so that the artist has a basis to evaluate which ideas are worth the effort and which can be skipped.
Make it easy for players to give feedback
Before we released Cogs, we put a discussion forum in place so that beta testers and players could give us feedback about problems with the game or new features they'd like to see. But in many cases, players didn't know what details were important to report to me so that I could help resolve their problem. For instance, many computer users have a hard time figuring out their graphics hardware specifications – a convoluted task that depends on the version of Windows that you're using.
One of the features that I patched in to the second version of Cogs was a logging system that writes a text file to the player's computer. It records the graphics hardware and settings, as well as any errors that are encountered while playing the game. That way, if something goes wrong, the player can just send me the file and I have everything I need to know.
You're not alone
You're not the only indie game developer out there, and the indie community is remarkably generous at providing advice and assistance. In my experience, indie studios don't feel like they're in competition with each other; rather, we all want to see great games and we'll do what we can to help you make your project a reality.
If you live in a big game development city like San Francisco, Boston, LA, Seattle or NYC, there's a good chance that there's already an established social group where independent game developers can share advice, swap ideas and form partnerships. Boston has a monthly postmortem and San Francisco has at least two monthly events – A postmortem and a meetup. If you're not in a major game development hub, consider going to an event like the Game Developers Conference. If you can't afford a pass, look into options for earning one by volunteering.
Finally, a lot of indie developers are happy to offer advice by email. You can reach me at . If I take a while to reply, send another message, as I'm occasionally overwhelmed by my inbox.