DOS Games

A few years back, when the last light of DOS still flickered, I experimented with programming games in C. Although these games were not technically impressive, they gave me practice in organizing, writing and debugging non-trivial code, as well as making design decisions. The graphics and I/O code were ported from Andre Lamothe's DOS books to whichever compiler I happened to be using at the time (Borland or DJGPP).

Really Insane Super Combat (RISC)

RISC is a clone of Parker Brother's RISK, which is one of my favorite board games. It allows 2-6 players to play against each other. Although game mechanics such as dice rolling are hidden from the user, they are identical to the original game. The method of country assignment, the fortification rules, and the use of cards can all be configured in the options menu. I remember being proud of coming up with a pixel-perfect method for mapping mouse clicks to countries as well as the interrupt-driven animation of the water.



Download RISC game with source code
View RISC code sample

Battle Tank (BTANK)

Battle Tank is a two-player split-screen game in the spirit of the Atari classic 'Combat'. Each player selects their tank's weaponry, size, and color; then the two players proceed to demolish eachother. I also added an anime-style introduction sequence to show off some of my artistic skills.

Unfortunatly, the only timing built into the game was a vertical refresh wait, which on my old 486 meant about 20 fps. Although the introductory sequence still runs fine, the game itself will run at least 3 times as fast (depending on your monitor's refresh rate in VGA mode). On the positive side, I built quite a robust tiling engine to handle rendering tiles onto arbitrary screen windows.



Download BTANK game with source code
View BTANK code sample

Mad Sphereoid Killer (MSK)

For me, Mad Spheroid Killer is an experiment in game design. It is meant to be a game that is simple yet fun to play. The pace and difficulty of the gameplay increases over time. Power-ups appear randomly and make the player weigh the risk of pursuing the power-ups versus the benefit of obtaining them. The control interface is simple, yet challenges the player to think of movement and attack in different directions. The score allows the player to guage his performance, and entices him to best it.

The most interesting aspect of Mad Sphereoid Killer from a programming standpoint is that I chose to port Andre Lamothe's 16-bit DOS and x86 Assembly code to 32-bit DPMI and AT&T syntax x86 assembly using DJGPP.



Download MSK game with source code
View MSK code sample