VOGONS

Common searches


First post, by Muz

User metadata
Rank Member
Rank
Member

I wonder why every game needs different CPU speed? Is it because of the designer of the game that designed it in the particular CPU?

Reply 1 of 5, by Scali

User metadata
Rank l33t
Rank
l33t

It's evolution.
As newer CPUs became available, game developers pushed the technology further, to generate better graphics and sound, and create a more immersive experience.
It's still going on today, except the focus is more on the GPUs, since they have taken over a lot of tasks from the CPU.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 2 of 5, by Zup

User metadata
Rank Oldbie
Rank
Oldbie

What kind of games?

In early DOS days developers used fixed loops to sync the game (i.e.: to play at a fine speed, I must do 300 times this loop in a 8086@4.77 Mhz), so games had a "CPU selector" in setup or at the start of the game. Later, games synced with other events (i.e.: vertical retrace of VGA cards) so player did not have to choose their CPU.

In other cases, games need some some CPU features (i.e.: 386 protected mode, FPU or MMX instructions) that were not available on all processors.

And, of course, gaming needs raw CPU power. So other games lists minimum requirements (i.e.: a 2Ghz CPU). Below that speed, they will work but won't be very enjoyable.

I have traveled across the universe and through the years to find Her.
Sometimes going all the way is just a start...

I'm selling some stuff!

Reply 4 of 5, by Scali

User metadata
Rank l33t
Rank
l33t
Muz wrote:

DOS games in particular, I mean most DOS games won't run in nowadays machines.

That's just buggy code.
When those games were written, the developers had no way of knowing that CPUs would get that much faster. So their timing routines are not robust enough to run on very fast CPUs.
A common problem is software developed with Turbo Pascal, for example. The people who wrote the Turbo Pascal runtime library didn't expect that their timing routine would run so fast that they measured '0'. They just divide by the result of the measurement, which results in a division by zero on fast machines, which results in an exception and crashes the application.

Some games just aren't designed to try and limit the speed. For example, Test Drive 3 was designed to have a few different detail levels, which was good enough for the various machines on the market at the time. But as machines became faster, they could even run the highest detail level at unplayable speeds.

Once this problem became obvious, newer games and development tools were designed to be more robust, and the problem disappeared.
There are also some very early games that never had the problem. It just depends.

I suppose in general it just shows the culture of gaming at the time: Games were seen as 'disposable software'. You'd buy a game, play it for a few months, and move on.
Another thing that may be a factor is that PC was the only platform that had any kind of backward compatibility. Most platforms were fixed, such as a Commodore 64, Amiga, NES, etc. You'd write the game for a specific machine at a specific speed, and it would always run the same, even 30 years later.
PCs were unique in that new PCs could still run old software. People weren't used to developing games for that.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 5 of 5, by chinny22

User metadata
Rank l33t++
Rank
l33t++
Muz wrote:

DOS games in particular, I mean most DOS games won't run in nowadays machines.

Dos (and Win9x) games also don't work on currant PC's due to Windows.
In massively oversimplified terms, Win9x and below are 16 bit OS's, NT4, 2000, XP are 32 bit, Windows 7 and above is 64bit.
Drivers for each are almost always incompatible so the game is designed to work with say 16 bit sound card driver, its not going to recognise your sound card as its using a 32-64 bit driver.

But if you created a dos boot CD with dos sound card drivers and doom and used it on your currant PC it would run fine as its dealing with an OS it understands