Natural Selection 2

By Max, November 24, 2006

Hi, I'm Max McGuire and I'm the Technical Director for Unknown Worlds Entertainment. Since we're just getting started on this development blog, I'm going write my first post about myself (yay!) and give some background on my involvement with Unknown Worlds and Natural Selection. This is also one of the few topics I'm uniquely qualified to write about, so it seems best to capitalize on that. If you want to read about Natural Selection 2 instead (don't worry, I won't hold it against you), check out this recent interview on the FiringSquad. Charlie (aka Flayra) and I have been friends for years, and my history with Natural Selection stretches back almost as far. I met Charlie in 2001 while I was working as a programmer at the then fledgling Boston-area game company, Iron Lore Entertainment. At Iron Lore we would hold a weekly “game night” where everyone would stay after work, eat pizza and play games until one or two in the morning. Charlie would occasionally show up for these game nights and eventually he decided it would be a great place to play test his new Half-Life mod for the first time.

As such, I privileged to be involved in the first Natural Selection play test, when the command chair was still an oversize Counter Strike grenade and the Onos looked like Nihilanth (which despite looking like a huge baby was still pretty damn scary when it came around the corner.) Although the Natural Selection website's news archive doesn't go back this far, you can read about the original Iron Lore play tests in the magical web archive.

Even though the game was in the early stages at that point (1.0 wouldn't come for another 15 months) the play test was a blast and I was eager to get involved in the development. It took me a long time to convince Charlie that he should work with me -- up to that point he had done all of the programming and design himself -- but he eventually relented.

I joined the NS team as a programmer after the 1.04 release and contributed features and bug fixes for NS 2.0 and 3.0. Some of the bits I worked on during this time were the Skulk model rotation, the minimap (and the fullscreen maximap as we liked to call it), the revised Lerk flight and Fade blink, Steam support, and a custom chat and font system. I also spent a lot of time during these releases hacking the collision detection system and making it do things Half-Life really wasn't designed to do.

The rumors of my demise from carpel tunnel syndrome after the NS 3.0 release are unfounded and not the cause of my subsequent disappearance. In reality, my day job at Iron Lore Entertainment evolved into more of a day and night job when we started full-production on Titan Quest. This unfortunately didn't leave much time for extra-curricular activities.

Although I had to take a break from the project, my interest in working on Natural Selection remained strong. I've always loved playing the game, and the time I spent working with Charlie was some of the best times I've ever had programming. Over the past few years Charlie and I talked off and on about working together again, however circumstances never aligned in such a way that we were both in a position where we could commit the time necessary. A few months ago things started to fall into place as Charlie neared the completion of Zen of Sudoku and I reached the point professionally where it made sense to quit my job and work full-time for Unknown Worlds.

So that brings us up to the current date. Right now I'm working on prototyping some of the more technically interesting features we have planned for Natural Selection 2 to figure out if they're feasible and determine how we're going to pull them off. I promise in future entries I'll discuss those more and myself less.

I use the name Max on the Natural Selection forums and sometimes adopt m4x0r when I need a more unique handle, like on IRC. If you'd like, you can read some additional boring details and see a weird blurry photo of me on on the Unknown Worlds team page.

16 Comments

I don't know how much I have to write about, but I want to get in the habit of being a bit more open about what's going on behind closed doors here so here goes.

There are many joys to having a distributed team. Working half-naked, cooking at home, living in the location of your choice and no commute are all great. The problem comes when you have some multi-disciplinary task that requires a lot of iteration and input from multiple people. We had this problem player animations in NS - they required input from me but they also required working closely with modelers, who had to build the model so that it could be rigged, then riggers, who set the model up to be animated, then animators to do the actual animation THEN programmers to set up the ".qc" file which is a kind of script to match the animations and bones up to the game.

There was also input from the concept artist and playtesters who had their own ideas. When you bugs or problems or were trying to try something we were unsure the system could handle, it ended up taking a very long time to get anything done. The files would be checked in and out of source control or e-mailed around and after adding up the delays and time zone difference, a task that could've been done in 2 hours when three guys standing around a monitor would end up taking weeks. The end result wouldn't be as good either.

We're starting to have a similar problem with one of our first big tasks for NS2 - establishing a visual style.

We want input from Cory, who was the main artist behind NS. We need to make sure we appeal to you guys, our existing fan-base, yet also differentiate ourselves from NS and others in the market so it doesn't seem to be "more of the same" We aren't very familiar with the new technology, so we don't know exactly to what extent we want to use shaders and other bells and whistles in what is going to be a 5+ year leap forward in technology The style very much is influenced by the kinds of levels we can build on limited resources, so we need to account for details in level design as well as how long it takes to build textures, normal maps, bump maps, etc. with each approach There is input from me, the designer, who has his own wack ideas for what he wants, etc.

I'm sure there's more but the point is, it's extremely tricky when you can't work face to face and a lot of times you can't get everyone you need on the line to have a meeting. It's strange when you can work on a big project with many people for years at a time, without having a single meeting with everyone involved. There is just no possibility of getting everyone online at the same time at once. So what's a distributed team to do?

One thing we're trying is a wiki, which I think will help, at least in the way that we can all quickly edit a document without worrying about blowing away other people's changes. Another approach I'd like to try is to try working as if we're in a single room. That is, leaving Skype, Teamspeak, etc. on while you're working, even if you don't have someone you think you need to talk to. I think one barrier to distributed communication is the fact that you have to call someone and "have an issue" in order to communicate at all. The wheels are greased just by casually bumping into someone on the way to coffee so I think this might help.

When trying to establish our visual style, another thing that helps is to find a lot of reference material. We didn't do this so much with NS, but Cory did with Zen and I think it really helped. So in lieu of giving you more detail about what the actual visual style of NS2 is going to be, let me leave you with some images that we're finding inspirational. Colorful, easy to see while "feeling" dark and a smooth interplay between man-made and organic are the main concepts here:

These are from the amazing remake of Solaris.

Battlestar Galactica:

The incredible ukitakumuki:

The ultra-incredible Craig Mullins:

Seen any great reference art you think would fit NS2?

117 Comments

By Flayra, November 1, 2006

We had some big problems with site performance when the site was launched a couple hours ago, but our resident web programmer Zoc managed to pull off some nice out of the box thinking to get around them. Now we have 100 using the site with no problems, let's hope we can keep scaling up!

People have been asking us one thing like crazy: "What engine are we going to use for NS2?". The short answer is - we don't know yet. The longer answer is we're evaluating Source (Half-life II) right now and expect we'll use it unless we have some big problems with it. We're implementing the most tricky technical stuff up front in our own engine (hint: it has to do with "dynamically changing environments") and that's what we're testing in Source now.

Max could bang out his own engine in no time (yes, really!), but we want to stay focused on the game, not the technology.

34 Comments