Letter Invaders - A typing game

by Larry Moss


There are two versions. The OS X version is new. It takes advantage of Cocoa and the Aqua interface. The second option is source code for the text based version that was written many years ago to run on a dumb terminal or in a terminal window. It should compile with minimal effort on any flavor of unix. It also used to compile under MS-DOS and Amiga DOS.

If you're running Mac OS X, you really want the OS X version. If not, you're on your own compiling the other. I haven't touched it in years. I'm only putting it here because people keep asking me about it. Anyone with any programming knowledge should be fine compiling it, but if you don't know what it means to compile a program, you'll have to stick with the Mac version.

Download for Mac OS X (OS 10.4 or older / .sit)
Download for Mac OS X (OS 10.4 or older / .dmg.zip)
Download for Mac OS X (OS 10.5 or newer)
Download French lproj file for Mac OS X
Download original portable C source code



Letter Invaders, based on the now ancient arcade game Space Invaders, is designed to help improve typing skills (and therefore increase your chances of getting some sort of RSI). The idea is to blast aliens out of the sky as they attempt to land on and "kill" you. Since this is a game to improve typing skills, the aliens are words selected randomly from the dictionary. You blast the aliens out of the sky by typing them correctly.

Playing the game is very straight forward. Type words as they appear on the screen. They will slowly drop until you have either typed them correctly or they reach the status line on the bottom of the screen. If a word makes it to the bottom of the screen you lose one "life".

If at any point you type a letter incorrectly the entire word is reset. The backspace key will not save you if you're a sloppy typist. It is not necessary to type words in the order they appear on the screen. In fact, that is often not the best action to take. The program will attempt to determine the word you are trying to type by matching what you've typed with the first letter(s) of all other words on the screen.

Every time you reach a new level, words will move faster down the screen. In addition, new words will appear more frequently. New levels are reached after every 20 words typed succesfully.

Known bugs, problems, limitations

It's a hack. I was trying to learn Cocoa while writing it, so the code isn't necessarily organized in the neatest fashion or written in the best style. But, hey, I learned from it. The result is that the code isn't optimized and there are probably playability issues that could be greatly enhanced by rewriting it from scratch. For examples, I'd really like to see smoother animation.

many of the menus don't actually do anything right now.

You can't start at a higher level.

You should be able to start a new game without waiting for an existing game to end.

High scores aren't implemented yet.

For som reason, words fall very slowly on my Powerbook G3 (Lombard), so others running on older hardware may also notice speed issues. I'm looking into it.

There are all sorts of things that can be added to make it more useful as a typing tutor. You should be able to select a wordlist other than the system default. The game should be able to generate random strings of letters from given sets (ie, only use home row keys).

Words sometimes overlap on screen so you can't read them.

Things that should be done

Interesting things should happen at higher levels. Now it just keeps getting faster. I've gotten the suggestion of possibly having some words on the screen change randomly to force you to watch the screen more carefully.

Cool graphics should be added. Words typed correctly should actually be shot down. (Lasers, explosions, all the stuff you expect from modern video games.)

Frequently mistyped words should come back later in the game. This would certainly make the game more useful as a typing tutor.

Sound on/off switch

Alternate word lists

localization for other languages

Display report at end of game - frequently missed letters/words to help teach typing.

Copying/Purchasing/Latest Release

Copyright © 2002 by Larry Moss (http://www.fooledya.com).

I did this for fun and to learn a bit about OS X. You are free to distribute this, unmodified, as much as you like as long as the copyright notice stays intact. (If you're a programmer and want to play with the code to improve the stuff I haven't gotten to, please write to me.)

Since I did this for fun, I'm releasing it on the world as-is, for your use, with no fees attached. However, any support I receive for this will encourage me to finish implementing the missing features. Please consider a making a contribution to supporting the efforts on this game. You can send paypal payments to moss@airigami.com.

As I work on this, new versions will be placed online at http://www.fooledya.com.


Long long ago there existed Space Invaders. This was a standard shoot 'em up game from the early days of video games. Aliens fell from above. You shot them from your base below.

From that came another game called Letter Invaders. I first played it on my Apple II. Many versions of it were created on a variety of different platforms.

Back when I started learning UNIX programming, I wrote the same game to be played on a dumb terminal. For some odd reason the game built a following and I still get mail about it every so often, usually in the form of requests for later versions or ports to different platforms. This mail, for a while, was usually answered with, "uh, gee, I have no idea whatever happened to it. I haven't played it in years." I found an old copy of it on some ftp archive somewhere and kept it around for anyone else that asked.

I made a comment one day to a friend that I wanted to play with java but I was looking for some silly project that I could do. I didn't want to take on anything big or useful in a language I didn't know since it seemed doubtful I'd have the time to finish it anyway. He reminded me that I never did port my old Letter Invaders game to the Mac. He still wanted me to do that. Re-writing it in java would, theoretically, give me platform independence. I wouldn't be asked to port it again. Since I couldn't come up with a good reason to say "no," I simply ignored him.

Some time went by and useful projects did come up that I wanted to do in java. One of those was far bigger than I wanted to tackle in a new language. Other smaller things were related to development on Balloon HQ. The problem with doing the balloon stuff was that I mostly wanted to make the pages come alive. I only vaguely had ideas of what I wanted. I decided it was time to do something just to learn the language and to get a better idea of what I could use java for to make a page "come alive." (Now I can get started on that.) Letter Invaders did offer the chance to learn lots about the language and the API.

Time has since passed again, the java version of Letter Invaders has been ignored, and many people have been writing to me asking for me to fix the game. The java version is still long dead and ignored. Rather than pick that up again, I decided to just rewrite it in Objective-C/Cocoa in order to, once again, learn a new platform. Some people write Hello World every time they learn a new system. I write Letter Invaders.