Skip to content

Millenium Leaper

December 24, 2009

In 1982-3 I wrote an arcade style game for the Apple II called Millenium Leaper and sold it to a disk magazine called Softdisk.  I didn’t think much about it again until in 2007 I was having a conversation with someone about old computer games and it occurred to me to search for references to it on the net.  To my utter surprise I found that it could be downloaded in a bundle with another game from the same period called Beer Run, and I could run it on Windows in an Apple II simulator.  I didn’t do much with it since I was involved with a fun project at work.  It came up in conversation again recently and I decided to write up my experiences developing the game, and to document the game itself.  This effort is mainly for my own satisfaction in recalling old memories, but I hope it will be of some interest to others as well.

In 1982 my dad bought an Apple II+ computer.  I was just out of high-school and had a job washing dishes while I figured out what to do with my life (although I didn’t realize that’s what was going on at the time) so I had time to burn.  My dad showed me how to do a few simple graphics tricks in Applesoft BASIC and before too long I relocated the computer from his room to mine.

Pretty quickly it became obvious that there was no way to do the types of things I was seeing in the video arcades and in some of the more advanced Apple II games of the time with Applesoft BASIC.  I had to use something that would allow me to write directly to the HI-RES video memory and I ended up getting a copy of the LISA assembler by Randy Hyde and teaching myself 6502 assembly language.  (Some time later I contributed code to that assembler  but for the life of me I can’t remember what my code did.  I received some paltry royalties for my contributions…I have to wonder if Randy was just being kind to a young kid since I’m sure he could have easily written the same thing himself.) I’m not sure if there were any C compilers available at the time for the Apple II, but I didn’t know enough to look for them if there were.

I embarked on what turned out to be an almost two-year project to learn 6502 and write a video game.  Many of the details of that process elude me.  I remember learning some basic techniques like a routine to convert hex to decimal, then experimenting endlessly to create some cool sounds on the speaker ($C030).  There was a mode in which you could display hi-res graphics on the top 3/4 of the screen and text on the bottom 1/4, and I used this to manually modify memory and see what happened to the graphic display.  For example I might store #$81 at location $4000 and see the pixel at x=7, y=0 turn green.  I played around with this enough to start writing some graphics routines like drawing lines and circles.  Eventually I wrote a very simple graphics editor with which to create images and save them.

The Game

At the arcade I was heavily into Robotron, Donkey Kong, Defender and Joust, and I basically set off to figure out how to make something similar to Donkey Kong because it seemed the most doable on an Apple II+.  Here’s a description of  Millenium Leaper, approximately in the order the screens appear during play.

All the screen shots can be viewed at full size in Picasaweb.   Presumably the BAUD BANDITS, marked on each text page, are the folks who packaged the game up and put it on the web.  Kudos, whoever you are!

From millenium-leaper

The very first screen you see upon startup is this little beauty.  Apparently it never occurred to me that making the title page appear first might be a good idea.

From millenium-leaper

Should I call the cops?

From millenium-leaper

Instructions.

From millenium-leaper

More instructions.

From millenium-leaper

The title page is animated. The title appears one letter at a time as the aliens run back and forth underneath it making noise.

From millenium-leaper

The game enters a demo mode where it shows each level in action, while it waits for you to remember that you have to hit the ’1′ or ’2′ key to select the number of players.

From millenium-leaper

The game commences. Why is the timer set at 9990 instead of 9999? I have no idea!

From millenium-leaper

Level 1 — You control the little man, who runs around trying to collect the numbers 1..9 and finally 0 (because 0 comes after 9 of course). The green blocks disappear if you run over them, which can be used to isolate the aliens since they can’t cross the holes. But if you isolate an alien and later a number appears in that area it can be hard to get the number.  The hole in the bottom floor moves left to right, which makes it difficult to jump when running left to right.

From millenium-leaper

On completion of a level, the screen scrolls down and an elevator drops down (with attending sound effects) to take you up to the next level.

From millenium-leaper

Level 2 — Run up to get the numbers while jumping the rolling barrels. The barrels may fall off the end of each ramp or decide to come down the ladders.

Level 3 is pretty much the same as level 1 except that the floors “slide” left or right as though they were conveyor belts.  It is probably the hardest level to get past, and the least well designed.  The running of the little man is extremely choppy, so it can be hard to transition to the ladders.  I think I was trying too hard to come up with something a bit different that didn’t require a huge amount of additional coding.

From millenium-leaper

Level 5 — Getting a bit random now, by miking up barrels and ramps and whatnot. I haven’t been able to make it to this level in the emulator yet, but if I recall correctly one of the main difficulties was needing to jump between the left and right sides and having to open the parachute quickly.

From millenium-leaper
From millenium-leaper

High scores.  I don’t think they were saved to disk.

Implementation

I don’t recall a lot of specifics about the implementation except that I didn’t know anything at all about game design or good coding style. Abstract data types? Functional decomposition? Never heard of them. You might have noticed that all the surfaces on which the aliens and the little man run are solid white. That’s because I used that to detect where the floors were rather than encoding any sort of model of the virtual world into data structures. That, plus a few rules such as the maximum height of a jump and bouncing off the edge of the screen were all there was.

Using the Apple2Oasis Emulator

  1. Download the emulator and unzip it.
  2. Download the game from here or here and unzip it.
  3. Run the emulator, apl24win.exe
  4. Press Control-F12 to get a BASIC prompt (dunno why)
  5. Press Control-F4 to load a disk image and specify the .dsk file you downloaded in step 2.
  6. Press Control-F1-F12 all at the same time.
  7. Press ‘R’ to choose Run from the menu
  8. Press ‘C’ to choose Millenium Leaper from the menu.

Epilogue

Sometime in 1983 I managed to sell Millenium Leaper to Softdisk magazine for about $300.  That probably works out to about $0.50 per day or around $0.08 per hour.  In 1984 Softdisk offered me a job as a game programmer and flew me down to Shreveport, LA for a look see.  Despite the fact that I was still working on the loading dock at Symbolics at that point, I turned them down.  I was fascinated by the Lisp machines at ‘bolics and I just couldn’t imagine living in Shreveport at the time, though I often wondered how things might have turned out if I had.


[1] Apple II firmware and memory layout


[2] LISA assembler (near bottom)

About these ads
8 Comments
  1. Larry permalink

    The only question I have is about timing. The computer may have been in your room during your senior year since that’s when you got into trouble with Mr Grandeur(???). You may have been explaining assembler to other kids, but maybe you weren’t quite that advanced by then. The other thing I remember is that grandmother put a copy of your program in her secret drawer to keep it safe from Brattleboro thieves. I now have that little stand but have no need to hide anything. Do I remember right that you had a copy of pac-man then?

    Nice clean easy-to-use site.

    • Dad, all I remember about Mr Grandeur (Grander?) was that he didn’t like me telling other kids in the computer class stuff that wasn’t directly in the lesson. My guess is that he was learning it the week before we did, and was more worried about looking silly than actually teaching us anything. But maybe I was really distracting the other kids…dunno.

      I only remember playing Pac Man in the arcade. Nowadays I play it with Andrew on kids.yahoo.com.

  2. Neil H permalink

    I have to tell you I was about 7 years old and millenium leaper was my all time favorite game! I was young and stupid and put the floppy in the drive on day and wiped the disk out! That was one of if that the sadest day of my life up to that point! I didn’t remember much about the game other than I just absolutely loved it and I desperately tried to get that darn disk to work!

    -Neil

    • Neil, that is so nice to hear, thank you! Too bad about the disk. Sorry, no refunds, but try the emulator version. :-)

  3. Dustin Gardenhire permalink

    i played this game on a computer at my elementary school and remembered it from way back then (i’m 20 now) so i looked for it online and got it. it’s crazy how much stuff can be found online

  4. I played the heck out of this game 20+ years ago. Very fun! One of my favorites.

  5. I Just wanted to say thank you. You helped start my interest in computers/games when I was 3 or 4 years old. I would beg my dad to turn the computer on for me to play it. I’m 30 now and still think back to this game from time to time.

    I remember beating it over and over again on my Apple II with a monochrome monitor. I never knew there was color until now! lol I’m going to give the rom a shot.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: