🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Is stuff getting slower?

Started by
2 comments, last by Qoy 24 years, 5 months ago
I made a Space Invaders game a while ago, and it was running at about 20 fps on my Pentium 120. I was using the WGPFD engine. I know that's a pretty slow engine, and I know a 120 is a slow machine by newer standards, but I was thinking, shouldn't a simple space invaders game be faster? I can remember seeing the Duke Nukem 3d frame rate in the level editor at like 60-80 fps. It seems like if all the old DOS games could go that fast, new Windows games that are much simpler should too. Is DirectX slow? But then, there are games like Quake and Quake 2 that still run fast with DirectX and OpenGL. What's the secret? What are they doing that a lot of us aren't? Edited by - Qoy on 1/23/00 6:51:49 PM
Advertisement
Quake and Quake 2 both use hardware 3D acceleration, which helps a lot... its hard to use that at all under DOS!

You inevitably get some slowdown for working in a multitasking environment, such as Windows. There is also always going to be some overhead in DirectX (etc), simply because of the need for drivers to catch calls and send them off to the card - it can be quick, but it will never be instantaneous. OTOH, you do get the benefit of having hundreds of different graphics cards all working (most of the time) with just one set of code - supporting different chipsets under DOS nearly killed me.

As for the framerate - there are tricks, such as making sure you use hardware blits (from video ram to video ram if possible), or just using 3D hardware for 2D acceleration - but as computers speed up less effort tends to be put into basic optimizations. Since (in the eyes of most developers) almost anyone who plays games has a PII with bucketloads of RAM, you have all this extra room to play with - so basic optimizations tend to be left behind so that developers can concentrate on their particular flavour of gimmic. Its a shame, in some ways, but as computers get faster you can expect people''s work to become gradually less optimized in general - it won''t need to be as amazing!

A good example is the good old BBC Micro. 32k of memory, but you could play some really amazing games on it (Repton, Exile, Elite, etc.) Writing a good game with it pretty much required that you go into assembly for the speed critical parts - often the whole thing. But great games came out. PC versions of Repton exist that are over 100k in size (a 3x increase!) and don''t look any better....
I think the one big difference is that in DOS, there was almost no overhead in the local procedure call stack. Direct manipulation of the video memory was just setting a pointer. In Windows, even with DirectX, there''s a minimum of 2 layers that you must traverse (DirectX libs, Device driver). In GDI I think it''s up to 8 layers.

Also, now we use code libraries, which by their very nature cannot be optimized for whatever application you''re writing. When optimizing even subtle differences in how you structure your linked-lists can make a difference.

On top of all that when you''re running your game, Windows is doing only-Gates-knows-what. It''s one price for having a multi-tasking computer. When you ran a game in DOS, your computer was running the game and keeping track of what time it was, and that was about it.
Well, all of the above sounds quite valid. Also, many of the older games were optimized heavily. The WGPFD engine is a good engine for teaching purposes, but don''t expect a professional game engine to look like that.

Also, a lot of the newer games coming out are doing more in the background, such as AI and physics. This can make them seem slower than they actually are. Of course, speed does cause sloppiness, and many games today are relying too much on the seed of the computers and not enough of good programming techniques.

This topic is closed to new replies.

Advertisement