Natural Selection

We are excited to announce that we are releasing version 3.2 this Friday. Our good friends over at NSRadio.net are going to throw a release party with many great events planned, including the long awaited reunion of "The Show" and an interview with Charlie and Max. The party kicks off five hours before launch, so be sure to tune in at 11am PST (19:00 GMT) to catch it all!

We have really enjoyed the public beta and are very grateful to the server communities and leagues that took part and made the effort to provide feedback and report bugs. This isn't the end of the line for 3.2 development as we will continue to tune the game in the upcoming 3.2.x patches.

Join us all in #nsradio on release night to share in the collective madness of an nsradio hosted party!

In the past we've always had a great community lead. First there we had the just Nemesis Zero, then we had stoic Marik Steele. Both are still around from time to time but are no longer able to spend as much time on NS as they could in the past. So we've got some fresh blood that we hope will be able to split the work and be around for a long time.

I'd like to take a moment to welcome our two new NS community leads - Mouse and Comprox. Both of these guys have been in the community for a long time and together will be handling community e-mail, policing the forums and any other community stuff that comes up.

Please welcome them!

Hey everyone,

Our team has been talking a lot about what the environments in NS2 are going to look like. Should they be grungy, dark, bright? Exactly like NS? How much dynamic infestation should we have? If we have too much, will it be hard to recognize where you are? How will "props" like pipes, wires and generators work? How many will we need and what style should they be?

To get closer to answers on some of these questions sooner instead of later, we asked the talented Nate Wolcott to help out. Cory is busy working on Lair for the PS3 and is limited in the amount of time he can contribute to NS2 and we've liked Nate's work for quite some time.

First we asked Nate to create a whole bunch of sci-fi environments. We then chose one to create in 3D. Here is the sketch (click for larger version):

...then he colored it in in low-detail to get an idea of the overall mood, lighting and palette:

...then he created some light infestation:

...then he created an alternate version with heavier infestation:

After seeing these images, it's pretty clear to us that we don't want our levels to be TOO infested. That's probably the biggest thing we've learned. Too much infestation is probably going to sicken and disorient players - or if nothing else, detract too much from the work that we spending making the environments beautiful to begin with!

We're also starting to learn about how many textures we need to comprise a "set", how many props we're going to need. We've also adjusted our workflow so the artists can tweak the maps and the mappers can make placeholder art and adjust the art to fit properly.

The next blog entry will show how the props work and how we're building the level in 3D. Until then, enjoy your first look at NS2!

79 Comments

We just updated our developer blog with some concept work from NS2, as well as some explanation about how we're working.

Enjoy!

One of the amazing things we noticed with Natural Selection was how much players modified the game. Sites like modNS have been quite popular and added crazy behavior like lerks that could carry other aliens, fireworks in the ready room, phase gate menus for choosing where you appear, and other enhancements. Many of these changes have become essential fixtures in the game, either due to the number of servers that are running them or because we liked the idea so much that we incorporated the idea into the official game.

This whole idea of blurring the line between producers (game developers) and consumers (players) has been happening increasingly all over the web and coined a new term - prosumers. Of course, this is no new concept to us or you, as you all know we "modified" Half-life to create Natural Selection. It seems only fitting then that we embrace, not fight, the changes NS players make to the game.

...and that's exactly what we're doing for NS2. Not only are we encouraging "hacking" but we want you guys to be able to create all new gameplay with a minimum of work. Instead of using metamod to hack in extra functionality, we're providing a full API for players to access. This really is nothing new, but we're hoping to make this so easy and so powerful that we will see tons of new gameplay appear, with no extra work from us This is especially important to us as we are only two full-time people so we have to be creative about providing extra value.

The other huge advantage is that the faster and easier we can make it for players to modify the game and experiment, the faster and easier it can be for us as well. If we can speed development and experimentation for everyone, not only will our players get more value, but we'll ship the game faster. Here's the way we're doing this with Natural Selection 2.

We've added LUA scripting language support to the Source engine (this is done expertly in Garry's Mod and we've learned a lot by looking at it and talking to him). We are then treating the game more as a library or API, with most of NS-specific code implemented in this scripting language. This includes things like setting up the tech tree (including costs, research times, dependencies), spawning (wave spawn, spawning at structures, etc.), the resource model and even how all the structures work. Here's some example code that shows how armories currently work in NS2:

Let me point out a couple key points here: The Armory class is completely defined by the .fgd and this script file. Translation: you can add new structures to the game after we release it. This also means maps can pre-place structures, allowing for more scenario-type maps. The StartUsing and StopUsing functions get called by the game automatically, which means that +using the armory pops up a menu for that player, allowing them to buy stuff. What can be bought, the prices and the actions of buying stuff are all controlled by the script.

What's especially great about this is we can launch the game, play around with some behavior, then we can edit script code and reload the map and have our changes take effect instantly. We're still working to have the changes applied instantly, but if we (Max) can pull this off, we will literally be able to change the game while we're playtesting. Want to try some wacky new resource model during a playtest? Give me 2 minutes to code it up in LUA, execute the command to reset the game and voila. Want to try a new structure? We could use an existing structure as a placeholder, code it in LUA real quick, modify the tech tree and it's working in minutes. Doing this in C++ would require more code, more risky code (you can easily write code that could crash the server, where as script is "insulated") and then you have to shut down the server and restart it.

The much-touted Web 2.0 marks a new era, one where those that will succeed are able to leverage the vast talent outside their organization instead of just inside it. Maybe the next Big Thing in online strategic shooters will come from you?

2/15/07 clarification: I forgot to qualify a big point here: even though we want to encourage modding of NS2, we will definitely maintain our own "core" gameplay that is the main game. We will draw an obvious distinction between "core" NS2 and "custom" NS2. We'll probably do this by making the server browser default to showing default "NS2" servers, and then having a "custom games" tab or something that shows only modified servers. Hopefully this way we get the best of both worlds.

82 Comments