VOGONS


First post, by keen

User metadata
Rank Newbie
Rank
Newbie

I made a thread like 4 years ago asking about game development for DOS. I've been putting that on the backburner for a long time, thought I resume doing that. Now, I'm very undecided on what architecture to target out of the 3. I know quake was built against the pentium, but how much firepower graphics intensity wise would I get out of the earlier 486? Part of the reason, I'm not right now satisfied with a dev environment which I'm still working out. I thought about as a challenge going full throttle on the 486 through borland turbo C++, but would I get more bang for my buck (such as for 3D graphics) so to speak, utilizing the pentium processor? I know 3D games have been made for the 486, but I have no idea right now about the differences performance wise between the two.

So I'm just asking asking to see if someone far more knowledgeable than me could offer some pointers.

Reply 1 of 5, by leileilol

User metadata
Rank l33t++
Rank
l33t++

686 implies MMX, and MMX for graphics have always been a sham (it's better for audio mixing). so you'll probably want to avoid that -

Unless you're targeting Cyrix 6x86 which is like both the 486 and a Pentium Pro in some ways. 😉 Or if you want to write slow bilinear filtering routines like you're chasing for sweet 1997 intel money

While Quake targeted the Pentium, it did take an assembly genius (Michael Abrash) to get to that point. I hope you got the Dr. Dobbs books ready.

apsosig.png
long live PCem

Reply 2 of 5, by Shponglefan

User metadata
Rank l33t
Rank
l33t

How much experience do you have both programming for legacy systems (e.g. DOS) and programming in general?

I feel like this is one of those questions that is best answered via practical experience.

Pentium 4 Multi-OS Build
486 DX4-100 with 6 sound cards
486 DX-33 with 5 sound cards

Reply 3 of 5, by jheronimus

User metadata
Rank Oldbie
Rank
Oldbie

IIRC Quake just utilised Pentium's FPU REALLY well. You can get it to a pretty playable state on a well tuned late 486 (like overclocked to 160 MHz), but you're gonna hate explosion effects a lot 🤣. Ogre's rocket launcher in timedemo is a big reason why the benchmark is gonna show you ~16FPS on a fast 486 while the actual gameplay is gonna be 25ish most of the time.

Other 3D games of the era would be mostly playable — things like Duke Nukem 3D, Descent, Terminator: Future Shock.

For a more classic 486DX2 I think a good showcase (apart from Doom or Dark Forces) could be Ultima Underworld.

Then there are a lot of 3D simulators (planes, space, tanks, cars) that have been made for DOS pretty much since the first day of IBM PC. Talking about 1982 Microsoft Flight Simulator.

MR BIOS catalog
Unicore catalog

Reply 4 of 5, by keen

User metadata
Rank Newbie
Rank
Newbie
Shponglefan wrote on 2024-11-11, 20:02:

How much experience do you have both programming for legacy systems (e.g. DOS) and programming in general?

I feel like this is one of those questions that is best answered via practical experience.

I'm at a weird limbo where I know enough how to get around and read some C or even some assembly. When it comes to being self confident enough to write it from scratch? Oh boy, I got to work on that. Anyways, I'm very eager to learn a new trick and have some fun while doing it.

Reply 5 of 5, by Shponglefan

User metadata
Rank l33t
Rank
l33t
keen wrote on 2024-11-11, 20:28:

I'm at a weird limbo where I know enough how to get around and read some C or even some assembly. When it comes to being self confident enough to write it from scratch? Oh boy, I got to work on that. Anyways, I'm very eager to learn a new trick and have some fun while doing it.

It sounds like you're mainly starting from scratch then. Which means it's also too premature to worry about what platform to target, especially if you're thinking of eventually doing 3D graphics and the like.

You'll want to start simply, even with basic "Hello world" type of programming and gradually work your way up. This means doing a lot of simple programs, prototypes, etc. Since you're doing this under DOS, you may also need to write your own libraries for things like graphics and sound, or see if something happens to be available. I remember doing this myself back in the 90s when I dabbled in both amateur games and demoscene stuff.

For getting into games programming specifically, you'll want to start with something simple. Once you've got the basics of doing graphics, sound, etc., then recreating simple arcade games (e.g. Pong, Asteroids, etc.) is a good way to start, since that will teach you a lot about game logic, program structure, etc.

I'll also caution that video game programming/development is one of those things that seems fun on paper, but it's a helluva lot of work. Asset creation is especially time consuming. And moreso doing this back in the DOS days, when you didn't the benefit of preexisting game engines or asset libraries. This also means writing a lot of basic tools from scratch (map editors, sprite editors, etc.).

Good luck!

Pentium 4 Multi-OS Build
486 DX4-100 with 6 sound cards
486 DX-33 with 5 sound cards