Coding Horror

programming and human factors

Wind, Angle, and Power

One of the oldest computer games is Artillery. It's all about going mano a mano with nothing but wind, angle, and power on your side:

The origins of artillery games are unclear, but the first such games were probably played on mainframe computers in the 60s. The programmers of this era often saw no commercial potential in their games and distributed them freely and anonymously with other mainframe operators, who often added features of their own. Gameplay consisted of players taking turns entering angles and power parameters via punch cards, then checking the printer output to see if they overshot or undershot. It was a more sophisticated version of Milton Bradley's Battleship board game. Keep in mind that these were the days when games like Hunt the Wumpus were considered groundbreaking.

Because they were simple, fun, and used some real physics calculations, artillery games were often used as programming samples. Every copy of MS-DOS 5.0 and higher bundled a QBasic sample game, gorilla.bas. It's artillery with.. explosive banana-chucking gorillas. Naturally.

QBasic Gorilla program

However, Scorched Earth was the pinnacle of the artillery genre under DOS.

Scorched Earth for DOS

I remember playing the hell out of Scorched Earth in college. There's nothing quite as satisfying as nailing your opponent with the laughably ineffective "Funky Bomb". Between this, Civilization, and Lemmings, it's a wonder we got anything done at all!

There's a great interview with Wendell T. Hicken, the author of Scorched Earth, that illustrates just how deeply games and programming are intertwined for many developers:

While other kids were dumping quarters into arcades, I would visit the arcades with a notepad, and try to figure out what the games were doing -- then I'd go home and implement them myself. We had a home-built computer, and you could write directly to the screen memory to do simple character-based animations. I had a really cool version of Defender, a not so cool version of Pac Man, and lots of other simple arcade clones. I even wrote a few on my own, including my favorite RoTMA (Revenge of the Mutated Androids), which involved breaking into an alien base, with simple shooting combat, and some weapons-based puzzles (throwing grenades into rooms).

As for advice, the key is to start and keep learning. Try something simple, and build from there. If you have a really simple program that at least does something, then this can keep you motivated to keep making it better.

You can still download and run Scorched Earth just fine under Windows XP, but it's a pure DOS game at heart. Of course, there are a slew of SE clones available for every platform and programming language imaginable. One of the more notable clones is Scorched 3D, up to version 39.1 at last count.

The best modern, commercial representation of the artillery genre is Team 17's long-running Worms series:

Worms 2 screenshot

Worms turns everything up to 11, with a heaping dose of Monty Python-esque humor. Where else can you attack with weapons like sheep, miniguns, bazookas, poison arrows, and banana bombs? There are even melee attacks including a dragon punch and baseball bat. Worms isn't exactly cornering the gaming market, but it's still a viable brand, with Worms 4: Mayhem set for release sometime this year.

It's amazing how far a simple gameplay mechanic like wind, angle, and power can take you.

Written by Jeff Atwood

Indoor enthusiast. Co-founder of Stack Overflow and Discourse. Disclaimer: I have no idea what I'm talking about. Find me here: https://infosec.exchange/@codinghorror