About 11 years ago, when I first started to write programs, a good friend of mine taught me to write applications in CA-Clipper. CA-Clipper is a programming language which you can use to write database applications. It’s based on dBase 3+ script and databases. Basically it was a compiler for dBase 3+ script and introduced its own libraries with extra functions and you could also write your own stuff in C/C++ and use it in your Clipper application.

Since Clipper was primarily meant for developing database applications, many people said that it was not possible to write games using that language. I like when people tell me things are impossible to do. So I took it as a challenge and I set out to make a game using CA-Clipper.

Clipper was primarily a DOS based environment, which means that the UI it supported was DOS based. So you couldn’t do anything too fancy, just plain ASCII character based interfaces. Because of the limited resources back then, I could not write a graphics engine for Clipper in C/C++. The primary reason was that I didn’t have a C/C++ compiler and tools that I could work with. I just had a simple library for Clipper which I could use to view GIF and PCX files.

At that time I was also experimenting with pseudo graphical interfaces for DOS based applications, which could be done by loading code pages with modified characters so that you could display custom fonts and symbols and give DOS based applications a more graphical look. Norton Utilities applications for DOS used this for their interface.

And so I thought about the options I had, and about what I wanted to make. I was a big fan of the Mortal Kombat series, so I quickly came to the conclusion that I had to try and make a similar game, just to see if I could do it. Since it would have to be a DOS based UI, I would have to find a way to draw the fighters in the game using only ASCII characters. Using the default ASCII characters was not an option because my fighters wouldn’t look very good, so I started experimenting with making EGA/VGA fonts with custom characters, which I could use to build up the fighters in the game. Basically I modified many of the default 256 ASCII characters in my own font, and created the body parts and other objects. This way I could load my own ASCII font into memory when my program started and be able to use different characters and symbols.

I was also not satisfied with the 16 color limitation in DOS, so I found a library for Clipper which could be used to change the default 16 colors to any color I wanted on the fly at runtime. This would give the impression that the game was capable of displaying more than 16 colors. I could load any color I wanted into the 16 default colors based on what I wanted to display.

After I was convinced this would work, I started creating a couple of editors which could be used to draw the fighters, backgrounds and other images in the game. These editors were all DOS based, and loaded the custom font so that the custom characters and symbols could be used to draw the images. It also loaded the custom colors so that different colors could be used to draw images. The editors had a very simple interface and functionality, basically a mouse based point and click system. The editor for the fighters was a bit different since you’d need to be able to draw different frames with different poses and you’d need to animate those.

Once the editors were completed, I decided on the moves and poses each character would have. Then I drew all of those poses for one character, I believe about 30 frames per character. Once this was done, a friend of mine took over and started drawing the other characters based on the example I made. While he was busy drawing the other characters, I was doing the programming for the game itself. There were lots of limitations in Clipper, but I tried to work around most of them. In the end we couldn’t finish the game because our vacation ended, and I had to move to a different location and back to school, but we did manage to get it about 90% completed. So there are bugs and you’ll notice them.

We ended up calling the game “ASCII Kombat” for obvious reasons. We stole the MK logo and modified it a little bit. As you can see from the logo, our dragon has been beaten up severely, a clear indication that the fighters in ASCII Kombat mean business (as you’ll be able to see when you run the game and check the demo fights). You’ll also see influences from Mortal Kombat in the game.

Download
You can download a zip file with the game here.

Notes on running the demo
Once you’ve downloaded the zip file, extract it and run Fight.exe. I’ve noticed that most modern CRT monitors can’t handle the display mode the program uses, so if you can, run it in a VMWare machine. If you try it on a CRT monitor and the screen goes blank just keep pressing Escape until you get back to the desktop.
When you run the program, make sure it is not being run in a window, but full screen. If you run it in a window, the custom ASCII characters and colors are not displayed (see the screenshots of the Fighter selection screen and the Fighter info for Cyruss below for comparisons).
If a screen stays on too long, just press enter to continue. You can press the enter key all the way until the fight demos start. To exit the game just press escape until the game quits.
You can enter “fight.exe endgame” at the command prompt to start the game and just view the endgame stories for every character.
You can press the Pause/Break key on your keyboard during the fights to pause the game and see the different poses of the characters.

Screenshots
If there ever was a game where screenshots alone didn’t do it justice, this is it. You really have to run the game to experience the hilarity.

Click for a larger image

Click for a larger image

Click for a larger image

Click for a larger image

Click for a larger image

Click for a larger image

Click for a larger image

Click for a larger image

Click for a larger image

Click for a larger image

Click for a larger image

Click for a larger image

Click for a larger image

Click for a larger image

Click for a larger image

Click for a larger image

Click for a larger image

Click for a larger image

Click for a larger image

Click for a larger image

Click for a larger image

Click for a larger image

Click for a larger image

Click for a larger image

Click for a larger image