Gamasutra: The Art & Business of Making Gamesspacer
Postmortem: Unknown Worlds Entertainment's Natural Selection 2
arrowPress Releases
October 31, 2014
PR Newswire
View All





If you enjoy reading this site, you might also want to check out these UBM Tech sites:


 
Postmortem: Unknown Worlds Entertainment's Natural Selection 2

February 26, 2013 Article Start Previous Page 4 of 4
 

4. Optimizing Late

Donald Knuth is famously quoted for saying, "preoptimization is the root of all evil". Even as relatively experienced game developers, we have always taken that to mean: optimize after you've implemented most of your game. We've since learned that this couldn't be farther from the truth.

It wasn't until close to release that we realized we had some fundamental engine optimizations to make that we should have caught earlier. So we ended up making some massive technical changes within a week or two of launch. This included making the client prediction multithreaded (!) and making fundamental changes to networking and our server update rate.

After seeing even tiny code changes cause huge problems in playtests, the idea of making these fundamental engine changes right before ship made our stomachs churn. But we knew the game needed these performance boosts, so we kept a clear head and made the changes. Miraculously, they went over beautifully, and we had no horrible problems on launch.

But we now understand the father of algorithmic analysis to mean something closer to: "Don't optimize your system before that system is done and can be properly evaluated." From now on, we will measure and optimize individual systems as they hit functionality milestones, instead of waiting until everything is in.

5. Launch Press

We launched Natural Selection 2 on Halloween of 2012 -- exactly 10 years after the original Natural Selection mod. We didn't plan on hitting this date; it just happened. It was the only open slot on Steam before the deluge of high-end holiday shooters. We were unable to predict this day more than a few weeks in advance, so we didn't have much time to prime the press.

As a result, we didn't get much press coverage or reviews on launch, and it proved difficult to get covered after as well. We wrote approximately 600 members of the games press and dozens of YouTube channel owners. Each received a copy of the game, a press kit and an invitation to play, review, or interview us. After a full month, we finally had about 35 reviews published, but not many that were recognized by Metacritic. Our rabid fan base then went wild over a poor review and a subsequent Metacritic controversy, but that wasn't the kind of attention we were looking for.

With such a long development cycle, it was very difficult to keep the excitement or attention of the press. We are pretty inexperienced in the PR and marketing aspects of game development. Maybe we shouldn't have released our early videos six years in advance, or maybe we should've gotten a PR company to help us. It was so difficult to make a good game on new technology that we didn't have any energy or resources left to promote it properly. By the time the game was done, there was no time left for promotion anyways, as the holidays and big releases were going to blow us away.

We did learn that press people are totally overwhelmed with e-mail and that they appreciate phone calls. It's not enough to e-mail and expect them to cover you: always call. We found 37signals' Highrise to be a good way to keep contact info in one place and our efforts coordinated.

Conclusion

We are now figuring out how best to support Natural Selection 2 with new maps, weapons, etc. while also allowing us to start working on a new game. While the road we traveled was hard, we consider ourselves extremely lucky that we never had to modify our vision for the game to fit a marketing plan, publisher desire, current trend or brand. The game we set out to make is the game our players (eventually) got.

A final anecdotes sums up our experience.

When we were a cash-strapped company trying to figure out how we could show NS2 at PAX East, we couldn't believe how expensive it was to have a professional booth built. Instinctively, we decided to build our own, out of plywood. To make our hastily erected, unpainted plywood planks look intentional, we asked conference-goers and NS community members to doodle on them, permanently inscribing their forum handle on the structure that was literally holding up our game.

By relying on our community and our instincts, we had a great show. It was more work and stress than we had originally anticipated, but everything worked out fine, and no one died or got sued -- just like creating Natural Selection 2.

Development Stats

Developer: Unknown Worlds Entertainment, Inc.

Publisher: None

Release Date: October 31st, 2012

Platforms: PC/Steam

Number of Developers: 7 in-house, 11 contractors

Length of Development: 6 years

Budget: $2.9M ($1.1M pre-orders, $1.8M investment).

Lines of Code: 250,000 C++ (Spark engine), 116,000 Lua (NS2)

Development Tools: Microsoft Visual Studio 2005, Decoda, Adobe Creative Suite, 3D Studio Max, Dropbox, Perforce, Subversion, Balsamiq Mockups, Google Apps/Chat, Campfire, Pivotal Tracker, Notepad++, OpenOffice.


Article Start Previous Page 4 of 4

Related Jobs

Forio
Forio — San Francisco, California, United States
[10.31.14]

Web Application Developer Team Lead
Forio
Forio — San Francisco, California, United States
[10.31.14]

Project Manager / Producer (Games)
Rensselaer Polytechnic Institute
Rensselaer Polytechnic Institute — Troy, New York, United States
[10.31.14]

Assistant Professor in Music and Media
The Workshop
The Workshop — Marina del Rey, California, United States
[10.31.14]

Programmer






Comments


Geoffrey Rowland
profile image
I remember when some of the original NS team came to the biggest Tribes LAN - UVALAN in Chantilly, VA to show off Natural Selection. Even though this game doesn't have vehicles or skiing or flags...it definitely reminds me a bit of Tribes at times (mainly the teamwork aspect)

Charlie Cleveland
profile image
Tribes was a huge inspiration, Geoffrey! It blew my mind.

Jack Nilssen
profile image
Was the press even really all that important, then? Seems to me that the success of this game is riding squarely on the shoulders of a dedicated fanbase that's made sure that others know about good the experience is.

Raymond Ortgiesen
profile image
That was a great read, lots of advice and useful information. I'm so glad you guys pulled out okay on the other end, nice work! My favorite part:

"It was more work and stress than we had originally anticipated, but everything worked out fine, and no one died or got sued"

That's all you can hope for right?

Nick Allen
profile image
"We have a completely unstructured environment, without task lists..."

What about the Pivotal Tracker that was public during development?

Christopher Casey
profile image
Speaking as someone who followed that tracker for a little while, it seems that they experimented with using that but ultimately discarded it.

Hugh Jeremy
profile image
Pivotal served to track specific programming tasks for a time. But broader tasks, and the goals that those specific programming tasks were part of, were not tracked or defined.

Daniel Tarantino
profile image
"Maybe your first business won't be a success, but at least you weren't in school, where there's not even a chance of success."

This is very inspirational to an aspiring entrepreneur like myself.

Chris Clogg
profile image
Great read! Played the original NS a lot haha :)

The last page was really interesting; we ran into a similar problem with our iPad game last month... was very hard to get press (our first game release and no publisher I guess), but even with the blessing of Apple featuring us, our sales have dropped pretty quickly. It's nice to hear you still had solid sales even with the press issues. The app store is a bit of a "wild west" scenario... I think Steam has somewhat better content curation (or maybe just less stuff lol).

By the way was there a reason you didn't end up using the Source engine? Seems like it provides a lot in the form of network code and its UI/system/editor/feel is familiar to most PC gamers.

Charlie Cleveland
profile image
Congrats!

Our sales drop off pretty quickly in general - it's all about the sales and promotions. But even when they drop off, our long tail is still profitable so we're in good shape. I wonder if sales and updates are useful for driving sales on IOS as well?

We actually started development in Source - for one full year. Dynamic infestation was the first thing we added and it caused enough scary changes that we immediately felt like we were fighting the engine.

Chris Clogg
profile image
Ah yeah, interesting. I feel like the Source engine was intended by Valve to be a big juggernaut in terms of a license-able engine, but didn't get very far compared to others like Unreal. Still a lot of great mods though.

For iOS, it certainly helps to have sales and updates, but you're already starting from a low point of a few dollars. This also makes it difficult to advertise because if you convert someone from a click or impression, you're only making $1.99 or w/e. As well, many mobile ad networks aren't so hot on apps that cost money. If you're a free or F2P app though, then you can use the ad networks to buy users and then get up on Apple's charts (but you're going against $100k-$million of others' ad budgets).

Long tail is tough on iOS (or it seems so far) because as soon as you're done being featured, it's up to chart position and word of mouth (or ad budget)... and you're in the fray of 800,000 apps. 2 years ago it wasn't so saturated though haha.

Edit: Ps just bought NS2, going to play it later tonight :) Good thing your blog post reminded me of it haha!

John Trauger
profile image
I loved "Nobody died or got sued"

Patrick Mullen
profile image
It's "premature optimization" not "preoptimization". The real idea is that while a system is in flux, optimization can be very bad. Issue #1 is that that entire system may not even stay in the larger product if the direction changes. Taking time to make sure it performs as well as it can is a wasted effort if the entire section of code ends up being removed. Secondly, and more important, optimized code is harder to read and understand, and if things aren't finalized will slow down your process and may even limit you from seeing what really needs to be done. Sometimes this is in an isolated system, but it can happen in integration as well. For example, a slow pathfinding routine that it turns out the game only has to execute occasionally - making the routine itself faster is not as big of an improvement as making the game call the routine less often. But yeah, waiting until the entire game is done to make sure it runs well is overmature optimization :)

Steven An
profile image
Nobody said programming was easy... :P

Charlie Cleveland
profile image
Regarding task lists or lack thereof: people had their OWN task lists, but we didn't have a schedule or list of things for other people to do. Certainly people kept track of their own tasks their own way.

Gareth Eckley
profile image
Having been one of Charles minions in the past, I'm going to have to point out that his extremely easy going and reasonable approach to everything has been the major factor in the success of the Natural Selection brand. He's a modest guy, but he does draw the best possible work out of those around him.

Brian Ortiz
profile image
What about Zen of Sudoku? Was that time well spent?

Marcus Dublin
profile image
Fantastic postmortem Charlie, and very inspirational. The Art Bully team and I are extremely grateful to have taken part in the games development. I personally can't wait to see what you guys do next.

Cheers!

Nathan Ware
profile image
If you were to expand on what it meant to everyone in the company to have an unstructured management environment, I think there are a lot of developers here who would love to read an article like that.

Virginia Martin
profile image
For a six tough years of development you have only 3 things that went wrong. Not look a bad statistic!


none
 
Comment: