RATillery: An artillery game for PC



Introduction

CGA Title screen RATillery is a simple artillery game inspired by gorillas, but written to run even on early PCs. In RATillery, two fireball-throwing rats fight atop stacks of crates in a warehouse.

Features:
System requirements:

goto top Up


Play online

You can try the game right here on this website, without creating floppies or installing anything. But it is far from efficient since the game runs in a version of DOSBox compiled for a virtual machine written in Javascript... Ironically quite a powerful PC is required to play this simple game...



Start the CGA version

(Opens in a new window or tab)

Start the Tandy version

(Opens in a new window or tab)

If the sound is strange (like a record player turning at irregular speed) your PC is too slow for the online version. Downloading the game would be better...

goto top Up


Download

The game can be downloaded here. Two formats are available:

goto top Up


Game features

If a picture is worth a thousand words, how many words is the adjacent animated GIF worth?

The players, in turn, must enter the angle (0 to 90 degrees) and velocity (0 to 255) for their shot, aiming to destroy their opponent. If the shot exits the screen sides, nothing happens. The fireball is of course blocked by the crates, but these can be destroyed. The location of the rats and crate disposition are random and change each time a player is hit.

The winner is the first player to hit his opponent a given number of turns, configurable from 1 to 99.

Besides the basic elements exposed above, the game offers a few extra features to increase replay value:

Air resistance
Three air resistance settings are available: Vacuum (no resistance), normal and high. There is enough difference between those choice to confuse a player used to playing at a different setting. A good way to restore the balance between players of different experience.


Suspended crate
If enabled, a suspended crate will appear in a random location within the game screen, more often than not blocking your perfect shot trajectory! The hook and chain cannot be destroyed, but the chain does not always stop the fireball. You'll have to be lucky, use a high altitude shot or slowly burn your way through the crates.


Following shots above the screen
Shots commonly go off-screen when they take altitude. When this happens, an indicator will appear to let you follow the horizontal movement of the fireball. Much better than learning that your shot fell out of the screen after several seconds of motionless silence...

Hiding the input values
Your shot barely misses your opponent, then what does he do next? He uses the same angle he saw you input but slightly adjusts the velocity and gets you. To avoid helping your enemy, the input values can be concealed, password style. If you're playing against the computer, this actually keeps you from looking at your opponent's values. For the computer, it does not make any difference (it never cheats).

End of game statistics
All shots and results are taken into account and when the game ends, simple stats are shown. Remember: Aim for the top by aiming at your opponent.

The computer against itself
The game lets you play the computer against itself. I used this to test that the pseudo-AI would always, eventually, find a winning shot. This was necessary since the AI does not compute a perfect one-shot win. Instead, it tries to find it by trial and error.

goto top Up


Screenshots (CGA version)

Here are screenshots of the CGA version, which is also compatible with EGA and VGA cards. I chose to use the Green-Red-Brown-Black palette since it works well to display wooden crates. For the rats however, let's just say the their green color is a side effect of their fireball throwing ability?

Title screen

Title screen

Options

Options

Story

Story

Credits

Credits

In game

In game


goto top Up


Screenshots (Tandy version)

And now here is the 16 color Tandy version. There are a few extra crate types (supposed to be containers) and I tried giving a camouflage theme to the font.

Unfortunately this version will not work on CGA, EGA and VGA cards. You will need a real Tandy (or PCjr?) computer if you want to play this slightly more colorful version of the game. Under DOSBox, use the machine=tandy configuration option.
Title screen

Title screen

Options

Options

L'histoire

L'histoire

Credits

Credits

In game

In game


goto top Up


In action on real hardware

Here are a few pictures of the game running on a Tandy 1000 EX and on an IBM 5160 (XT) clone with CGA card.

Tandy 1000 EX

Tandy 1000 EX

XT clone credits

XT clone credits

XT clone in game

XT clone in game


Send me your pictures!
I would be very happy to receive pictures of the game running on other old PCs to add them here. Especially, I would like to know if the game works on PCjr and on an IBM 5150, the first IBM PC!

goto top Up


Mini « making of »

What!, Really?

What!, Really?

In January 2016, after creating a solution for easily transferring files to my Tandy 1000 EX, I sent qbasic and gorillas.bas to the Tandy hoping to make a tournament with my brother in the near future. But this did not happen. Somehow, the 256 kilobytes of memory built into this computer were amazingly not enough to run this simple game...

"Utterly unacceptable" I thought. And as at the time I had recently developed basic 8086/8088 assembler skills due to the aforementioned file transfer project, I made the evident and natural decision (who wouldn't right?) of writing a similar game from scratch, carefully written in assembler and designed to work on my 7.16 MHz Tandy 1000 as well as slower systems...

A few weeks later, the game was working. From then, for several months on and off, I made tweaks and improvements such as adding a second language, adding support for the 16 color Tandy-specific video mode (for my Tandy 1000 EX!), creating a bootloader for the PC booter release... Until August 2016 when I deemed the result acceptable.

Development:
Development was made under Linux. The game is coded entirely in assembler (using nasm), and the related tools (image conversion, music compression, etc) are all coded in C. During development, I used DOSBox to test (which I even ran directly from my Makefile).

Graphics:

I drew the game artwork using a mix of GrafX2 and GIMP. The title screen illustration, drawn by Sion, was sketched on paper first, then photographed and finally cleaned up in GIMP. All images are pre-processed by a in-house tool which reorders lines in a way that is more convenient for CGA, which means simpler and faster display code. (In CGA video, even and odd lines are in distinct memory areas). A similar complexity exists for Tandy modes as well (but then, there are four memory areas)...

Music:
I composed the music using MONOTONE. I use the Disk Writer function which saves the values one must write to the registers controlling the PC speaker to reproduce the music. This is very repetitive data which wastes space, so I compress the data using a simple RLE algorithm before embedding it in the game executable.

Testing:
Besides DOSBox, I used the Tandy 1000 EX that sparked the project, and IBM XT clone with a CGA card, a generic Pentium 133 and VMware.

goto top Up


Trademarks used in this site are the property of their respectives owners.
Copyright © 2002-2017, Raphaël Assénat
Website coded withWebsite coded with vimLast update: September 15, 2016 (Thursday)