INSIDE GAMES, PART IV: PREACHING AND FAREWELL GOO

by Dave Taylor

Work has become too gruesome, so this is my last article. The theory is that it's on something useful, but as we all know, last articles are mostly preaching.

A sales pitch for UNIX:

First of all, dump real mode. Not only will real mode cause more headaches than it's worth, you're holding up an important technological advancement if you support it and encourage others to use it. Protected mode is like upgrading to a more reasonable, modern CPU for free.

I used to dream of developing games for UNIX and selling them for enough to eat off of. This was probably unrealistic, although I still hope the market grows. However, since working at id, I've learned the real power of UNIX right now is in cross-development of games so that you don't have to work under nastier, smaller operating systems. With this change, I expect the demand for competant programmers who have a better understanding of algorithms, math, and physics to increase over the need for operating-system specific hackers and assembly fanatics. This is a Good Thing (tm).

Developing your DOS game in UNIX may sound rash, but it has plenty going for it. UNIX is an operating system designed specficially with programmers in mind. All processes are protected from one another so that bugs in your code are bugs in your code, not in another program's. Most UNIXes are so stable, that it will be a rare thing to be able to point your finger at it. In addition, it will force you to write your code in such a way that the majority of it is portable. Portable code will open your game to many new markets immediately or in the future. If you already have too much on your plate, subcontracting the porting work out will involve a smaller effort on your part.

For cost-effectiveness, I recommend starting with Linux or FreeBSD on a nicely decked-out 486. They are both excellent, more than stable-enough operating systems to develop a game under, and they are both free.

id Software develops games under NEXTSTEP, another UNIX (albeit very unusual). NEXTSTEP provides an object-oriented operating system based on the Mach kernel. Its GUI is so closely supported that writing easy-to-use GUI'd tools can be a dream. But NEXTSTEP isn't cheap. You need a funky graphics card and the OS & development kit is pretty pricey. There's also a fairly steep learning curve.

You can get a UNIX that runs on different hardware such as a SPARCStation, HP Snakes, etc, but you'll find this VERY expensive, on the order of $10-$30k. The benefits you get from the extra horsepower will be questionable for many games.

You should learn enough about the graphics system that you're using to slam stuff to a window or to a bit of the screen. Most UNIX platforms use the X Window System. X code can be a little gross, but it's stable, and the functionality you need from it should be minimal. A major bonus to using a windowed graphics system is the ability to have other windows open while running your game. However, if X is a little too disturbing, there are simpler graphics interfaces depending on the UNIX you're using. Linux and FreeBSD have something called "svgalib" which gives you a portable SVGA library. Very nice.

I hope current coders and the next generation of game coders give UNIX a good look. Don't normally like blowing my own horn unless I can do it deviously, but I'd like to use the encouraging example of DOOM for hard proof of while you should give this thought. DOOM was developed under NEXTSTEP and ported to DOS. In fact, it came out first for NEXTSTEP. The internal level design tool "DoomEd" is NEXTSTEP-only and was made extremely straightforward by the GUI support from the OS. Except for the sound code, DOOM was ported from NEXTSTEP to Linux/X in two days. I expect our next game to be ported in a few hours.

Goo:

I wish Ross Erickson and his many contributors much success and eagerly await any news of a Game Bytes CD-ROM.

Ross let me become involved with Game Bytes in a way that made me feel like I was partly responsible for its success. I believe all his repeat contributors have received Ross' great feedback letters, and I believe it is a big reason why the magazine has thrived as it has. He's a great guy and deserves a big hand for the effort he's put into Game Bytes.

I should mention that I owe my job at id Software in part to Game Bytes. I did a few interviews of famous game developer types: Garriott, Roberts, and the id crew. It took an e-mail chat with id's lead programmer, John Carmack, for another article for me to screw up the courage to whine about how hard it seemed to break into the game industry. He mentioned an opening, and the rest is paychecks. Ross' tolerance of my fringe article ideas made that conversation possible, leading to my dream job. For that I will always be thankful.

A small testament to the Internet is also appropriate here. For the idunnohowmany articles I did, I never once met or spoke to Ross. I only wrote via e-mail. I still have no clue what he looks like and only heard his voice recently, and this last article is once again on its way thanks to the Internet....

idpentium> mail ross < this_puppy &

This article is Copyright (C) 1993 by Dave Taylor for Game Bytes Magazine. All rights reserved.