To DOS or not to DOS, 
that is a question!

It seems that every time I log onto a game programming newsgroup on the Internet, someone is having a flame war over whether or not games should be done in Windows.  The purpose of this article is to clear up some misconceptions on the subject. 

It should be pointed out that for the last 5 years I’ve made all of my money off being a Windows programmer, starting with 3.0, on up to 95.  Until Windows 95 came along I wouldn’t have considered writing fast action games for it.  Even with Windows 95 it was questionable until DirectX came along.  This article is intended to be factual and unbiased, however, I’m not above being a little biased. 

There are many operating systems available to users, the primary ones being UNIX, DOS, OS/2, MacOS and Windows.  In addition to that, each one of those have various different versions that are subtlety different, the kind of subtlety that one often finds in bricks.  For UNIX we have Linux, BSD, HP, IBM, Solaris, and countless others.  Linux is probably the most common for the home user market.  For DOS, we have Microsoft’s MS-DOS (version 1.0 through 6.22), IBM’s PC-DOS, Dr. DOS, and a handful of other compatible clones.  Under Windows we have versions 1.0-3.1 for 286 & 386+ computers, NT 3.1-4.0 and 5.0 beta, Windows 95 and Windows 98 beta.  Without showing my lack of knowledge about OS/2 and Macintoshes we’ll just say they have a bunch of versions too. 

But what the entire debate boils down to is who your customer is going to be.  If you’re going to write a game for your own personal use, by all means use any operating system you already know and like.  If you don’t already know how to program an operating system, UNIX is a very stable environment that most programmers really enjoy. 

If you plan on distributing your game once it’s done, you will need to determine who your going to distribute it to.  If it’s just your closest friends so you can play together, fine, find out what operating systems they use and write the game for that. 

However most people really would like to write the next million unit seller, and if that’s what your goal is as well, then you better start taking a real look at DOS, Windows, and Macintosh.  Because among those three, they control about 95% of the home personal computer market, probably more.  And of those the Macintosh is probably only 20% or less.  I don’t actually know a real statistic, I’ve read the statistics in both Macintosh magazines and in Windows magazines, as you can probably guess, they’re about as opposite from each other as possible and still total 100%.  But in all of my friends all but two of them have DOS/Windows machines, and the two that have Macintoshes have Windows 95 machines as well. 

This is why most game companies make either DOS/Windows games, or both DOS/Windows and Mac games.  They’re in the business to make money, and that’s where the money is.  If the number of Macintoshes suddenly outnumbered the number of IBM Clones, you bet the game companies would change there strategy the very next day. 

So if you target audience if for mass market, the game should be DOS or Windows.  But which is a huge debate.  And if you choose Windows, which version of Windows will it be. 

There are really good arguments for writing a DOS game.  After all DOS games usually run under Windows 3.1 and 95 pretty well.  They don’t work under NT all that well if they use any graphics or sound.  And DOS is faster than Windows because in true DOS you don’t have any task switching going on and your program has 100% of the CPU’s clock cycles.  But if you decide to write a DOS game you have to either buy or write all of your graphics and sound drivers, because they aren’t supplied with DOS.  Some compilers come with graphics libraries, but these are usually optimized for business graphics and aren’t really very high speed.  You can also find free sound and graphics libraries off of the Internet.  But generally speaking these aren’t of very high quality.  There are some exceptions, but they tend to be specialized for a specific thing, and generally can’t hold a candle to the stuff professional companies use.  It could easily take a year to write all of your own graphics and sound drivers, and by then there would be new video and sound cards that your drivers didn’t support. 

If you decide to write the game under Windows 3.1, your graphics needs are mostly taken care of by using either the built in Graphics Device Interface (GDI) or using the Game Developers Kit (GDK).  The GDI isn’t very fast, and doesn’t have much flexibility, but it does have all of the drawing and text output functions already written, and you can use all of those cool TrueType fonts.  The GDK has the advantage of speed, but it can be difficult to use.  Both GDI and GDK have the ability to play sounds, but the GDI can only play one sound at a time, where the GDK has the ability to mix sounds together and play them simultaneously. 

If you decide to write under Windows 95 (Win95) you have several advantages immediately.  You can still use the GDI or GDK, matter of fact most of the GDK functions are built into Win95.  But Win95 has all of the additional advantages of 32 bit programming.  Including really good virtual memory management, memory protection, and better multithreaded support.  Microsoft has also given out DirectX which is both a bane and a boon.  It has all of the base functionality any game programmer could want, but it has so much functionality that all of it is difficult at best to use.  But it has direct support of practically all video and sound cards on the market, and has the largest support of 3D video cards available.  It also has network support.  Under Win95 you can also decide to go with OpenGL like Id Software did.  OpenGL is a really good 3D library, but it doesn’t have hardware acceleration on every 3D card yet.  OpenGL is only a 3D library and doesn’t give you any other features such as sound or network play.  But you can use OpenGL in combination with DirectX features such as DirectSound and DirectPlay. 

Windows NT (NT) has most of the features that Windows 95 has.  But it only has DirectX 3 as of v4.0.  DirectX 3 didn’t have as much 3D support as DirectX 5 (the current version for Win95) does.  But NT has the added bonus that OpenGL is built in, and most 3D Accelerator cards have OpenGL drivers for NT.  It also has the added feature of outstanding memory management and true multitasking.  But NT is still very rare in home computers.  And has the same problem as most of the other operating systems, small customer base. 

So what this all boils down to is if you want a large customer base, go with either DOS, Windows 3.1, or Windows 95.  DOS being the most difficult due to lack of drivers.  With Windows 95 having the best hardware support available.  However, Windows 95 is still very difficult to program in simply because of how immense it is.  But once you learn Win95 programming it becomes easier.  This is why most new games coming out are for Windows 95 specifically using DirectX or OpenGL and DirectX. 

It may seem like game companies are selling out to Microsoft, but they are trying to make money, and they do know what most people buy.  Microsoft is generally hated by everyone, but they actually do a good job at getting there products in peoples homes.  And therefore it is wise to go ahead and use the marketing that Microsoft has already done to your advantage. 



Home | Game Companies | Computer Related Links | Fun Things | Articles

Write me!  Pyaray
Last revised:  January 17, 1998