Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I'm wondering how people used to write DOS games (like Doom), I can't find much on this, but would love to learn more about the earlier days of game development.

What language was used predominantly?

I presume it was C. Or C++ already?

What IDEs (or editors/compilers) were popular?

Microsoft Visual C/C++ (or Microsoft C/C++ as I believe it used to be called) didn't exist back then AFAIK. So what did people use? edit and a command-line compiler from Intel or something?

What APIs where used?

What was common for 2D games? What about 3D games like Doom and Tomb Raider?

Anything else that's different from today?

I'd be happy to hear any other differences, like what image/audio formats were used.

share|improve this question
    
I'm fairly sure your intended to do some research for this class assignment. Perhaps gdcvault.com/play/1014627/Classic-Game-Postmortem can give you a start. –  Daniel Carlsson Aug 12 '12 at 7:58
    
It's not an assignment, I'm way out of school/college. I did google around for a while but couldn't find much. –  futlib Aug 12 '12 at 8:01
    
I recall reading a note from one of the ID guys about Watcom C++. Borland was always pretty popular because their compilers were freaking FAST. (I used to rebuild three or four times in a row because I wasn't convinced that anything had actually happened.) –  David Lively Aug 14 '12 at 23:40

2 Answers 2

up vote 18 down vote accepted

Language: C was predominant, but C++ was around and used.

Dev tools: Development environments included those from Borland and Watcom (almost unheard of today) among others. Both Borland and Watcom had their own compilers and their own IDEs. Borland was by far the most popular in general, though Watcom had a reputation for producing faster compiled programs, iirc.

APIs: Few APIs existed or were used. Video programming often consisted of directly writing pixels to the VGA framebuffer. Even 3D game were software rasterized. The Miles sound API was used for audio, which included drivers internally as the OS didn't have it's own audio framework or drivers. Keyboard and mouse input were generally read straight from the system. There were a couple popular memory extenders for 32-bit mode which were very popular and necessary towards the end of DOS's reign. The hardware was simple, thankfully, but it was definitely a pain in the butt writing games that worked on a variety of hardware. Libraries to deal with all the simple low-level stuff (like SDL, SFML, GLFW, etc.) did not exist, and porting was a huge amount of the work in releasing a game due to all the different platforms and hardware popular at the time (though its getting equally bad these days, what with all the consoles, handhelds, and mobile devices, plus Windows and the fringe desktop OSes like OSX and Linux).

On a side note to the previous point, Doom was not 3D the way we know it today. That is, it imposed huge limitations on 3D environments due to its highly specialized software rasterization algorithm, and characters and items were all jut sprites.

File Formats: Asset formats were just as proprietary to the engine then as they are now. I vaguely recall Bink being around back then for video (which was very rare, generally only in opening and closing sequences), and I think Creative had some specialized sound formats. I'm unsure what source or intermediary formats were popular for sound or video back then, but TGA was pretty popular for images.

share|improve this answer
1  
The ubiquitous middleware that many licensed for audio was Miles, which provided driver abstraction for many devices. If you didn't use Miles, you probably just supported Adlib or SoundBlaster compatibles. For enabling VESA support on legacy cards, some games used UniVBE. –  Lars Viklund Aug 12 '12 at 8:45
    
That's right! Good memory! :) –  Sean Middleditch Aug 12 '12 at 9:25
    
I may be wrong, but I believe the reference you're trying to make was for Watcom, not Watson. They made an excellent C compiler and a lightweight SQL server called Watcom SQL, a predecessor of SQLite, that I liked very much. –  Bob Mc Aug 12 '12 at 13:29
    
Indeed, you are correct. My memory is definitely getting more jumbled in my old age. –  Sean Middleditch Aug 12 '12 at 16:37
    
ASM was likely more common than now. You needed to squeeze extra performance and the compiler optimizers weren't as good as they are now. That is, majority still in C but the engines likely had ASM pieces. –  edA-qa mort-ora-y Aug 12 '12 at 20:43

As a completion to Sean's post, since you mentioned Doom: there is a nice blog by Fabien Sanglard, who made a review on the part of code used for making Doom (the one from 1993). The review is here: http://fabiensanglard.net/doomIphone/doomClassicRenderer.php

PS: The blog has a lot of Doom/Quake-related code reviews, and it's a nice read for a game developer to see how others designed a game from ground up

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.