June 6th, 2022—
Back in 1980, the video game Battlezone was released, and it marked a major advancement in the world of computer graphics since it was the first game with a 3D first-person perspective. In it, the player must pilot a tank around a battlefield and fire at targets in an attempt to rack up the highest score possible. So as a way to commemorate the groundbreaking game, Mark Wilson created an approximation that runs on an Arduino Uno.
Wilson has previous experience with vector graphics on embedded targets, as evidenced by his work on ElitePetite, an approximation of the loading screens from Acornsoft’s Elite game. Based on prior effort, he started the project by attempting to reverse engineer the original 6502 assembly and replicate its behavior. This process was a challenge owing to the complexity of the code, but after designing a clever sparse pixel encoding algorithm, the game could be completed, albeit with some minor graphical problems that appear when the game is being displayed on the attached 320×240 LCD shield.
Wilson’s LittleZone project is an impressive feat that showcases how 3D graphics with a first-person perspective can be generated. And although some features have not yet been implemented, it’s still a very well-done tribute to Battlezone.
For more details on how Wilson designed this project, be sure read his Hackaday.io write-up here and watch his demo below!