Back in 2002 my friend Dave invited a few folks round for a meet up at his place to watch the group stages of the World Cup. Between games Dave went up to his attic and brought down his old Amstrad CPC (retro even back in 2002). After playing a few games I picked up a dusty manual for the Amstrad BASIC programming language. I started playing around with some of the graphics commands and soon ended up drawing a few squares on the screen, as faithfully recreated below.

Basic shapes drawn in Amstrad Basic (recreation)

The squares kind of reminded me of a map so I wondered if I could turn my graphics into some sort of game. I was a bit short of time so I looked through the BASIC manual for a quick way to add a player to my game. To my good fortune I came across a character set table which conveniently contained a character of a man.

J

The Amstrad BASIC charset that inspired MapMan (man character appears in bottom row)

A few minutes later I had added my man to my map, things were looking pretty good (or at the very least not bad for an Amstrad BASIC newbie)!

First Pass version of iPhone MapMan

G

Recreation of original MapMan written in Amstrad Basic

I then wanted to add some controls and tried to code it so that the arrow keys moved the man between tiles. At this point I had a moment of great serendipity, I accidentally got the code the wrong way round such the right arrow key moved the man left, the up key moved him down and vice versa. This was pretty confusing, but also strangely fun, so instead of correctly it as a bug I realised it would make a great feature! To add a bit of tension I made it so if the man stepped off the map you went back to the beginning (blue tile). I then made the red tile the exit and timed how long it took to complete the map. To negotiate the map you had to remember that the controls were reversed, which was easy to forget when trying to go quickly, especially when going round the corners. To finish off the game I added a high score table and even managed to push my Amstrad BASIC skills to saving the best scores to disk. The game was ready so I released it to my friends at Daves. We happily played until the next World Cup game started and returned at half time to try and beat the best score.

Basic to 2017 I started trying to re-code MapMan in Pythonista. I found an old sprite map from a game call JetPack to use as place-holding graphics and pretty soon got a basic game up and running.

I wanted to recreate the reversed controls feature of the original game, but in order make it a bit move dynamic I added a special tile which would flip the controls. To give the user some feedback that the controls were reversed I changed the background colour. Finally, taking some inspiration from the Pythonista examples I added a high score table.

So I had a basic game, but things were a long way off looking professional! I needed some better graphics and I had a lot of coding to do. Fortunately for me one of the people at Dave’s house on that day back in 2002 was my friend Fred who just happens to be a gifted game artist! I reached out to Fred and his fond memories of MapMan meant he was happy to join my project, more on this next time!