The Best of Space Invaders
In honor of Space Month, we scoured our community to find the best projects related to Space Invaders.
In honor of Space Month here at Hackster, we scoured our community to find the best projects related to one of the most iconic video games of all time: Space Invaders.
Last month was the 44th anniversary of the first North American release of the Space Invaders arcade cabinet. Since then, the game has become something of a mascot of the industry and has seen countless ports, re-releases, sequels, clones, and derivatives. The addicting gameplay and simple graphics lend themselves well to a variety of formats, as proven by these projects from our community.
Space Invaders Game on 8x8 Homemade LED Matrix
The original Space Invaders arcade game had to run on very limited hardware, but that was nothing compared to this project. This build uses an Arduino Nano board with a Microchip ATmega328 microcontroller, which is more powerful (in some regards) than the original arcade hardware. But the original raster CRT graphics ran at a resolution of 224x256, while this version gets away with a mere 8x8.
The “screen” here is just an 8x8 LED matrix with a total of 64 pixels. That isn’t nearly enough to display even the rudimentary original Space Invaders graphics, so Mirko Pavleski had to get creative to keep gameplay intact. Each invading spaceship is a single pixel and a potentiometer acts as a control dial to move the ship. The only other control is a momentary button for firing missiles. A small buzzer provides sound effects and Pavleski constructed the enclosure from PVC sheet.
Space Invaders on RasPi with OLED and Capacitive Touch
This project features a display with a much higher resolution than the last at 128x64, but that’s still much lower than the original arcade. This OLED, which is part of the XinaBox OD01 module, is also a dual-color model. Like many OLED screens of this type, part of the screen (the top 20 percent or so) has yellow pixels and the rest are blue. That’s neat, because it partially mimics the colors of the original game.
The other components include a Raspberry Pi 2 Model B, a XinaBox BR01 interface module, and a XinaBox SH01 capacitive touch button board. That last module gives the player control over the game, with the square and circle buttons providing left/right movement and the X button firing. This build didn’t require any custom wiring, as the XinaBox components simple plug into the Raspberry Pi and each other.
Nano_Vaders
This build combines aspects of the last two projects to create a very playable version of Space Invaders. The brain of the device is an Arduino Nano Every board and the display is a 2.7” 128x64 pixel monochrome OLED. That still doesn’t match the resolution of the original arcade, but it has plenty of real estate and enough pixels to accurately replicate the standard Space Invaders gameplay.
The only other components are a perfboard, three push buttons, and an audio transducer (a little speaker). The Arduino receives power through USB (either from a computer, wall wart, or battery bank) and connects to the display via SPI. One button moves left, the second moves right, and the third fires.
Watch Invaders
M5Stack's M5StickC is a handy little device that combines an ESP32 development board, 0.96” color TFT LCD screen, microphone, IR transmitter, and six-axis IMU all packaged into an enclosure that looks like a thick USB thumb drive. As user Phillow Compiler demonstrates, one can wear the M5StickC as a wristwatch by attaching a strap. The ESP32 and display provide plenty of power and resolution for Space Invaders and the IMU can act as a controller.
Phillow Compiler’s version of Space Invaders utilizes motion control. By tilting their arm down, the player can move right. By tilting their arm up, they can move left. And by giving their arm a little shake, they can fire. Its a fun, wearable version of the classic game that is playable completely hands free!
Just Another ATtiny85 Retro Gaming Console
Early video game development was all about hacks and tricks that made the most of the limited hardware capability available. When a developer only has a single kilobyte of memory to work with, they get creative by using tricks like sharing memory between entities. Arnov Sharma took that idea to the extreme with this retro handheld console based on the low-power Microchip ATtiny85 microcontroller and it can play the classics, including Space Invaders.
The ATtiny85 only has 8KB of memory and six GPIO pins, which is what makes this project so impressive. Even with those limited resources, this little console is able to run Space Invaders at a speedy frame rate on the 0.96” 64x128 pixel OLED screen. It has the same three-button control scheme that we saw in the other projects on this list. The components mount to a custom, handmade PCB that Sharma explains how to make in the tutorial.
Fully Hardwired Space Invaders in BSV
This is the most faithful Space Invaders reproduction on the list, becomes it utilizes an FPGA (field-programmable gate array) to create the exact hardware necessary for the job. An FPGA doesn’t process code like a computer or microcontroller, but rather generates custom ICs (Integrated Circuits) by configuring thousands (or millions) of individual gates as needed. One could, for example, replicate the actual Space Invaders arcade cabinet hardware in an FPGA and it would run exactly like the original—though this project works using Sakurai Atsushi’s own spin.
Atsushi originally developed this game using an Avnet Ultra96-V2 FPGA board, but then later ported it to the Digilent Arty A7, as well. They designed the FPGA’s hardware configuration using BSC (Bluespec SystemVerilog Compiler), which is open source as of 2020. Staying true to the original gameplay, Atsushi even implemented the “rainbow” and “nagoya-uchi” programming glitches that became a well-known part of the game.
Space Invaders Like Game on 1602 LCD Character Display
Many early personal computers were unable to display graphics based on individual pixels and instead had to use bitmaps from their character sets, so a “sprite” might literally be a standard Unicode character like an ampersand. The Mattel Aquarius computer was infamous for this and its Invaders port uses Chinese characters for some of the aliens. This project uses a modern 1602 LCD character display with similar limitations, but gets around them in a clever way.
This display is meant to show two rows of 16 characters each. Normally, it can only show bitmaps from its built-in character set, but it does allow the user to create up to eight custom bitmaps. Only one was needed for the ship, but the ingenious use of the other seven made it possible to enable gameplay on just two rows. One of those is the ship with the missile right above it, two show the missile flying through empty space, two allow for the animated alien, and the final two show the missile just below the two versions of the invader.
An Arduino Uno handles the processing. When the player fires, the ship character immediately switches to the ship character with the missile above. If the missile will hit an invader, thenthat invader’s character swaps out for the corresponding version with the missile below. If it will miss, the space alternates between the two characters with the missile in empty space. This is a great demonstration of the workarounds that early game developers had to utilize.
SpacedOut - IRL Space Invaders with Drones
We wanted to save the final spot on this list for something truly special: a version of Space Invaders that isn’t a video game at all. This is a real life implementation of the game that puts the player on a ridable turret where they can fire at drone invaders flying in the sky. This was built for GeekCon 2016 and it is safe to assume that, like us, you all wish you could have been there to try the game for yourself.
The “invaders” are DJI Phantom 3 drones equipped with RGB LED matrix panels controlled by Arduino Pro Mini boards to display the sprites from the game. The player sits on a car seat mounted on a motorized platform that can move left and right. They aim a bit turret the fires a laser, which works using the same principles as laser tag guns and vests to detect hits. A huge amount of labor (and money) went into this project and it absolutely paid off, making it one of the coolest Space Invaders projects we’ve seen.
Writer for Hackster News. Proud husband and dog dad. Maker and serial hobbyist. Check out my YouTube channel: Serial Hobbyism