How I should have prevented game performance problems during development

Posted on:February 19 2008

I recently presented a very early and totally untested version of the client of Darkness Springs,
the game I am currently working on
to some people and noticed that it ran very slowly. Which confused me at first, because I never had discovered slow framerates myself at all.
After shortly thinking a bit more about this, I became aware of the fact that until now, I had used only my high end PC as development machine for it, which is capable of running even Crysis at playable rates with very high settings. Darkness Springs will be a very CPU intensive game (unfortunately necessarily, explanation will follow soon) and because my brand new 64bit CPUs are quite fast I had never noticed that the game is already that CPU intensive. But now that I know, it should be no problem, I think I can still optimize the bottlenecks away pretty easily.
It is always a good idea to develop games (or more general: software) on the type of hardware you expect your average customer to use. In this way you will at least discover performance and other similar nasty problems very early. That's also the reason why I wrote the first few versions of Irrlicht on a Notebook with 266 Mhz and no real 3D hardware. Which again is also the reason why Irrlicht had a software rasterizer since its beginning. :)


I disagree. It's useful to have an average PC for testing, gladly with a development environment installed for profiling and debugging. But using such a machine for development is a sole productivity killer (unless you consider e.g. waiting for a rebuild or for Windows having finished its swapping process while switching from your game into a breakpoint in your IDE a benefit).
2008-02-19 19:41:00

Yeap, agree with matt.I think you should have 2 machines, 1 for development and 1 for testing.
2008-02-19 20:59:00

I also agree with matt. If all companies developed for hardware that consumers would likely have at the time, there wouldn't be a need for level of detail settings. Also who wants to sit around waiting for something to compile on older hardware?
2008-02-19 21:39:00

Good point, but I think as long as all the development tools are running at normal speed and the compile time is short enough (sure, depends on the type of project and programming language), it is a good idea to work like this.
2008-02-20 08:41:00

I'd also argue that you want to get something up and running quickly without worrying about performance to begin with. You can waste a lot of time on premature optimisation, especially in the early stages, where a lot of code ends up being taken out or modified heavily. Yes, games are particularly performance-sensitive, so at some point you have to start optimising.

It's also worth thinking about designing the software with later optimisations in mind to some extent, but the main thing is still to get the functionality working so you can start testing.
Phil Jordan
2008-02-20 09:24:00

Start the engines.. aeehh profiler! ;)
2008-02-20 13:05:00

"Which again is also the reason why Irrlicht had a software rasterizer since its beginning. :)"

And that is one among the many popular reasons why Irrlicht has been and will be so popular in future as well. Another primary reason why developer like us can develop games for our families that will work on old PIs and still bring in lovely gameplay with good graphics. :-)
Rahul Atlury
2008-02-22 16:56:00

I very much agree! Unfortunately today most software is bloated (big and slow), and this is because most developers live in 1st world countries, and use 1st class hardware.

*Developing* on older hardware might be painfull from time to time, but is instructive too! There are a lot things you see, that pass unnoticed otherwise. It's like you are running every build under a profiler, and every slowdown does make a difference.

Anyway, it is reassuring to know that there is someone who cares for performance, and even testing the software on older machines is good. Thanks!
2008-02-29 02:39:00

Add comment:

Posted by:

Enter the missing letter in: "I?ternational"




Possible Codes

Feature Code
Link [url] [/url]
Bold [b]bold text[/b]
Quote [quote]quoted text[/quote]
Code [code]source code[/code]