In 1972, the Digital Equipment Corporation released the DEC GT40, a vector graphics computer that feels like the kind of retro cruncher you’d stumble across in games like Fallout or Alien: Isolation.
A year later, in 1973, Jack Burness was commissioned to create his own take on the “Lunar Lander” genre. The result was Moonlander.
While not the very first Lunar Lander game, Moonlander broke new ground in several ways. It was the first to be fully graphical—earlier versions had been purely text-based. It may also have been among the first games to show a human character on screen: when players successfully landed, a tiny astronaut would appear on the lunar surface. Finally, the game is often cited as the first to have an easter egg. It was possible to find a McDonald’s restaurant on the Moon, and even order a cheeseburger, or crash on it.
The game became a genre on its own, and after nearly 60 years of Lunar Lander, I made my own version:
Press Enter to start the game. Use your keyboard arrow keys to control the lander.
Game differs from the original version in different ways. First, the graphics style takes more inspiration from 1979 Atari’s Lunar Lander, with its wireframe aspect. I added three main colors though: the typical “old games green”, white for text and an orangey red for the rocket.
The game is endless, with no score system, but each new run will vary the landscape and physical properties of the environment. Also, the game provides many ways to lose, including going out of screen, which is only excused by the fact that I got lazy in handling big terrains.
Compared to the previous game I made Pong, this one is a huge bump and has a lot of “first” for this project. Let alone the fact that the code had twice as many lines of code than Pong’s code (without sound support!), I had to add a bunch of new features in my API:
- Audio and video support for macOS
- New geometry facilities
- Linear math, such as vectors and matrices
- 2D (and 3D) projection
- 2D physics
- Random number generation
I also vastly improved the overall API experience, separating the concept of manipulating a window and drawing to a framebuffer.
Eventually, I spent more time working on the API rather than the game itself, but this was expected considering the few features it provided so far. I have the feeling I’ll start to think about higher level features sooner than expected, such as reading sound files or an actual 3D raster engine.
Now it’s time to choose a game for 1974.