Server Problems and Status Update

Over the past week there have been a couple of completely unrelated server problems but they should be resolved now. First, the subversion server has been down off and on for a couple of weeks due to a combination of hard drive failure and internet connection problems. It should be working at the moment because I've setup a virtual server to handle that stuff until my new replacement arrives (hopefully next week sometime). As long as my internet doesn't fail again that will work for now.

New Menu Look

Some big changes have been made to the look and layout of the menu. First, and probably most importantly, the menu can now be safely reloaded without restarting the entire game, so when you change resolution the GUI isn't the wrong size. It also fixes the problem where all the GUI textures are white (at least for me - the specific symptoms probably vary) on Windows after a resolution change.

Source Released Under the GPL

I've finally gotten around to adding licensing information to the Coldest source code, so I've allowed anonymous access to the Subversion repository. Full information is available on the [url=/site/content/download]Download[/url] page.

It's not necessarily set up for easy building by other people, but if you're interested in doing so and the instructions provided don't work for you, post the problem in the forums and I'll do my best to help get you up and running.

Modelling is Hard, Texturing is Harder

Well, at least for me. Of course, I've been using Blender off and on for a few months, whereas I've been programming for 10 or 15 years so it's not surprising that the latter comes more easily to me at this point. The biggest thing isn't so much using Blender though. It does more cool stuff than I will ever learn to use, but the problem is that modelling is an artistic process and that's something I've always struggled with.

Abnormal Normals

It turns out that my problems UV-unwrapping my simple wall model were caused by the normals of the faces being very, well, abnormal. Once I fixed that (it had something to do with ctrl-a, although I don't remember exactly what the option I used was - just ctrl-n to recalculate the normals didn't do it for some reason) the unwrapping was much more sane. In fact, the biggest problem I had was that I didn't realize my textures were upside-down from what they are in Blender so when I imported the model into the game it looked very wrong.

Back to Blender

Performance is now at a point where I consider it truly acceptable. Despite what I said in my previous post, I went ahead and implemented my cache coherent heap class to try to improve performance, but it had essentially no effect. In retrospect that shouldn't have been surprising because actually the majority of the vertices were covered by my previous change, so even if it did improve the cache coherency it probably wasn't enough to be noticeable. On the plus side I think my vector-based heap class may come in handy for particles, so it wasn't a total loss.

Coherent Cache, Incoherent Blog Entry

Once again the performance problems with Coldest have been held at bay by a significant breakthrough. It boggles my mind how many times I've had to double and then redouble the performance of this engine since I first started working on it, but I've managed to pull off another minor performance miracle. Actually it might be more accurate to say that I've corrected a minor performance debacle that was blowing my cache coherency to kingdom come.

Musings on Optimization

Nothing terribly important, but as I've been spending quite a bit of time getting very familiar with oprofile (again), and Google likes the site better when I post regularly;-) I felt like writing some things down.

Here goes:
[*]No amount of optimization in my collision detection and animation loops is too much. The latter is turning out to be the biggest headache because it needs to touch every dynamic vertex to do its thing and I'm finding very few good areas for optimization.

Bots and Load Testing

Back on the engine front there is good and bad news. The good news is that I've implemented some very simple bots (all they can do right now is connect and spawn) which allows me to do some load testing with more players than I could simulate using actual computers. The bad news is that the engine failed the load test. Not badly, and not in the way I thought it might, but it still failed. I was half expecting the netcode to blow up with 20 players connected, but in fact that held up pretty well.

Non-blocking Reading of Stdin in C++

[i]Updated with Windows version 5/26/2009[/i]


Subscribe to Coldest RSS