19.1 Commercial games

Once you start working on writing even a simple computer game, you get a new appreciation for what goes into commercial arcade games. Even the crudest, oldest games can have an incredible playability factor. It's not about animated texture-mapped three-dimensional characters, it's about game design. While your game is in the early design stages, spend some time playing a similar arcade game ? and look at some arcade games again when you do your final tweaks.

It's not necessarily convenient to go out to a game arcade, and there aren't all that many of them left anymore, but many classic arcade games can be played at home.


An emulator is a shareware software package that allows your computer to emulate old arcade video games. One of the best-known emulators is MAME, which stands for Multiple Arcade Machine Emulator. It's available for free download at www.mame.net.

In and of itself, MAME doesn't show video games, in order for it to show a specific game, you need to provide it with the code for the game. These code packages are called ROMs, and many arcade game ROMs can be found online.

A word of explanation about the name 'ROM.' Rather than having hard drives which contain their programs, arcade games have their program code on read-only memory chips, or ROMs. Although it looks like a piece of hardware, a ROM is really software. The code for a given video game is gotten by extracting the code from its ROM to get what's called a 'ROM image' or simply (by extending the meaning of the word) a ROM.

Although emulators such as MAME are legal, ROMs are illegal unless either you own the game program in question, or the ROM has been made public domain. The ROMs for most arcade games are copyrighted software still belonging to video game companies such as Williams, Midway, Bally, and CapCom. This means that most ROMs you can find on the web are in fact illegal, pirated code. So be careful only to download legal, public domain ROMs and, above all, don't get involved in redistributing illegal ROMs.

This said, all of the classic arcade computer games do exist as illegal ROMs. Having seen some of these ROMs running on the machines of less scrupulous individuals, the author can say that they're quite inspiring fodder for a game developer.

To run an arcade game emulation by using MAME follow these steps.

  • Download the MAME emulator in zipped form from a site like www.mame.net.

  • Unzip the emulator into a directory like c:\mame.

  • Download some ROMs in zipped form, being sure only to get legal, public domain ROMs.

  • Don't unzip the ROMs; simply copy them into the roms subdirectory which the MAME unzip will have put into its mame directory.

  • Get a DOS prompt in the c:\mame directory. To load a ROM game, run a command of the form mame [ROMname], for instance mame somepublicdomaingamename.

  • The game will run in a DOS full-screen mode.

  • Usually the arrow keys move the player and the Ctrl and Alt keys act as the game buttons for actions like firing. You can get additional info about the controls by pressing Tab.

  • Esc will exit a MAME game.

Game consoles

If you own a game console, take some time to closely study how your games work. Think about dimensionality, about viewpoint, about the listeners, and about the forces and the artificial intelligence that controls the game critters. Think about the graphics: about the background and foreground, about the resolution, and about the lighting. Now that you know a bit about programming games, you may well see things in a new light.

An inexpensive way to get to look at some reasonably low-level games is to get hold of one of the various Nintendo GameBoy machines with a cartridge of the classic arcade games.

Online games

A third way to look at arcade games is to search the web for online games, some of which are written in Java and some using alternate tools such as Shockwave. You might think these games wouldn't run fast enough, but many of them are quite good. Keep in mind that the actual computation is being done client-side on your machine by the downloaded Java applet or Shockwave code. The URLs of online games change so rapidly that it's not a good idea to try and list them here. As usual, using a search engine is the way to go.

    Part I: Software Engineering and Computer Games
    Part II: Software Engineering and Computer Games Reference