NS2 Closed beta status
As all of you know we released a patch on Thursday night on Steam. With this patch we removed the check for the special edition, so anyone that’s pre-ordered the game can now access it.
Now that that’s done, I wanted to give everyone an update on what’s going on with the technical side of the game.
Releasing beta was a huge milestone for us. Some of you are having fun, others are having problems, but to us this represents the stage at which Natural Selection 2 has become a “game”. We’re having fun playtests where we can meaningfully discuss game design and balance. The list of things to do is getting short, and the end (really the beginning!) is in sight.
That said, I’d like to clarify something about the nature of the beta. People may remember the Starcraft 2 or Team Fortress 2 betas and use those to inform their idea of “beta”. Both of those games no doubt were heavily tested internally and for all intents and purposes were finished games. Our beta is neither of those things. Most game companies wouldn’t release an actual beta  to the public, but we’ve decided to embrace the fact that we’re a small studio with limited resources and we need to get all the feedback we and help we can from our community.
It’s definitely disappointing to see that we missed some serious problems with the beta release. I know some of the people in the community are frustrated by these issues, but let me assure you that any issue that’s bothering you is bothering me approximately 20,000 times more. When something is bothering me that much, it’s going to get addressed. However, we only have 3 programmers, so we have to prioritize.
Enough of that, on to what we’re working on:
Servers crashing is obviously a BIG DEAL, so this is at the top of the list. Most reports suggest this was due to the server running out of memory. We found that if the server tried to send too much data to a client, the data rate limiter would end up causing lots of data to get queued up. Since the data was being queued faster than it was being sent, this turned into a positive feedback loop where the data would grow out of control and crash the server. It would also cause the client to stop receiving any updates about the state of the world and would make the game feel super laggy for the client.
We’ve got that fixed and were ready to release a patch on Friday when we hit a different crash on the server. We haven’t figured that one out yet but we’re working on it.
"Couldn’t connect" problems
I’ve fixed some of the problems that cause this but I think there’s still a little more work to be done. This is a complicated problem and it is a big priority for us. Hopefully this will be all sorted out for the next patch.
There’s no way to tell if a server is full from the main menu
This was an oversight which we’ll fix in the next patch. The server browser still needs other adjustments, and just like pretty much everything in the beta, is not final.
The frame rate is low
Our goal is to make the game silky smooth for everyone by the time Natural Selection 2 is released. We’ve made some big strides in the past few patches on both the client and server performance, but we still have a bunch more work to do before that happens. We made some pretty aggressive technology choices (fully dynamic lighting, no pre-computed occlusion, loads of scripting), so sorting everything out takes a good amount of effort (which means time).
The game feels laggy
In general the game will feel "laggy" if the client is not receiving frequent updates about what’s going on in the game. If you type net_stats at the console you can see exactly how many updates you’re receiving per second. The server is configured to send 20 updates per second, but it can drop below that for multiple reasons.
One reason is related to what I wrote about the server crash. If the outgoing bandwidth from the server is being taken up by game messages (sound, particles and other game related things), the server won’t send an update. This is what’s typically called choke. Due to an issue with the rate limiter, this choke situation would become pretty frequent when lots of sounds were being played. That’s fixed now and will be in the next patch.
Another reason the updates to the client could become infrequently is if the server CPU become bogged down. The net_stats command will also show you how frequently the server is "ticking". The server is configured to tick at 30 FPS, but with enough stuff going on this could drop down. This is pretty similar to problems we had with the initial NS1 release. Between the alpha and the beta we really focused on getting this up, but we still have some more work to do there.
Game immediately exits after startup
This is a problem that some people have been reporting for a while. Often I see these people say that since we haven’t fixed the problem we don’t care about. Not true! I wasn’t able to reproduce this problem, so I scratched my head a lot and then guessed that it was due to the graphics card not supporting the 1280×800 resolution that the game starts up in by default. I fixed that in Build 156 (Beta) but I haven’t seen much feedback on whether or not it’s been fixed.
If you are still having this problem in Build 156, please e-mail me at email@example.com.
The game looks incorrect in fullscreen mode but works in windowed mode
This are the types of issues that can be really tough to figure out, especially with a small team like ours. On a mega-million dollar main stream game you would have a big team devoted to just testing compatibility. We have something better, which is our community. If you run into a problem like this, first try updating your graphics drivers. If that doesn’t fix it, run dxdiag.exe, save off the result and post it on Get Satisfaction. That will give me the information I need to figure out which hardware is acting up.
In preparation for the Fade reveal video and the beta release we’ve been working like maniacs. Hopefully this is evident in the quality of the movie and the improvement to the game over the last few patches. This kind of crunch definitely has a cost — I’m on my third illness in the past month and with Thanksgiving coming up we’re going to need to take a few days off to recharge our batteries with friends, family and food.
We’re working on a patch for Monday with the fixes I mentioned, and the rest we’ll be working on when we get back.
 Technically a beta is supposed to be feature complete. We haven’t included everything that’s planned or completed in the current release. Some of this stuff we’ll be adding in future patches, and a few exciting things we’re going to hold back on for the final release of the game.