Why do demos run fast/slow on different machines?

Can anyone tell me why some demos perform slower or faster on different machines, operating systems and different graphic cards.

Many factors :

Video Card is one. New game can make old card crawl because they don’t have enough memory, enough bandwith, enough fill rate.

Card Drivers : with each new version of a driver, a company usually optimises some functions, fixes some bugs that make can some software run much faster than another.

Ram : More is not Enough!!! With more ram, you minimize hard disk swap wich saves a lot of time.
Also, Enough FREE ram. Some people have a lot of ram but have so many background softwaresthat they fill half their ram and haven’t done anything yet!When the system tray(lower right of your screen) fills 3/4 of your screen, it is not good.

CPU : Obviously.

And there could other things that I’ve forgot.

operating systems play a part. Win98 can be a tad poor at times, when compared to NT, irix or unix.

OK, but right off the bat with enough ram, a good video card, etc. what would be your first impression or opinion if the demo ran too fast?

If demo ran too fast that means your computer is fast. To make your demo runs at a decent speed you need to use timers to make sure the demo runs at the intended speed.

One way to do that is to calculate movement using the time it took to render the last frame.

So let’s say you have something on your screen that your want moving 5 units in 1 seconds, then if it took 0.1 seconds to draw the last frame the movement for the next frame is 0.1 * 5 = 0.5 units.

You can use simple window timer, but they doesn’t return at fixed intervals. It depends how fill is your message queue.

For better precision, you can use the performance Counter. It is a very precise hardware cpu. You need to use two win32 calls to work with it.

QueryPerformanceFrequency
QueryPerformanceCounter

Not sure if they are both written correctly.

Look at http://msdn.microsoft.com/default.asp to learn more about these functions