University student builds simple raycaster maze demo with transparency support in Microsoft Excel

A functioning raycaster and texture mapper demonstrated with a mildly-interactive maze game made fully within Microsoft Excel.
A functioning raycaster and texture mapper demonstrated with a mildly-interactive maze game made fully within Microsoft Excel. (Image credit: awesomegraczgie21 on Reddit)

In the ongoing quest to do strange, and seemingly impossible things with Microsoft Excel, Redditor u/awesomegraczgie21 posted a demonstration of a functioning, playable raycaster in the form of a first-person maze game running entirely through Microsoft Excel using its Visual Basic for Applications (VBA) programming language.

Specifically, this maze tech demo is seen utilizing raycasting to support transparency and per-column texture mapping. Transparency is noted as being done from the player's view outward (close-to-far rendering), and a simple collision system is used to keep the game functioning within the constraints of its walled maze. The maze is, of course, explored entirely in first-person, navigated pretty much one frame at a time via the included 4 movement and 2 strafe buttons.

Compared to past attempts at rendering graphics in Microsoft Excel, like the "Fallout for Excel" game, this is far more ambitious, though similarly limited in scope and playability. While there is sped-up video footage (10 FPS!) of navigation through the maze being spread online from the original posting, the actual gameplay is more like a "interactive slideshow" . With its creator stating that the FPS ranges between "2FPS up to 5 SPF (0.2 FPS). Rendering multiple overlapping transparent walls kills the performance, but it's worth it." The entire demo is coded in just 400 lines of VBA.

Excel - the best game engine. A simple raycaster with support for transparency and per column texture mapping. More info in the comments. from r/GraphicsProgramming

Back in January, another Excel hobbyist went and proved that it was possible to build an entire functioning 16-bit CPU complete with 128 KB of RAM, a 128x128 pixel display, and a custom assembly language (dubbed Excel-ASM16) within the constraints of Microsoft Excel. Like with Excel-ASM16 and "Fallout for Excel", it's likely that this playable Excel raycaster demo simply won't work outside of Microsoft Excel, i.e. in alternatives such as OpenOffice or LibreOffice.

Like most of these Excel projects, then, it would seem that this project was done almost purely for fun and/or amusement, though it's also noted by the creator that it was made as a project for a "Programming in VBA" university course, "because why not". The creator had wanted to build a raycaster from scratch since they were 16, but lacked the knowledge to make it happen. Now in their second year of university, AwesomeGraczGie21 has done it, but will they stop there? As far as university assignments go, breaking the assumed boundaries of Microsoft Excel with just "~400 lines of code" is something that one would hope would facilitate a passing grade.

Christopher Harper
Contributing Writer

Christopher Harper has been a successful freelance tech writer specializing in PC hardware and gaming since 2015, and ghostwrote for various B2B clients in High School before that. Outside of work, Christopher is best known to friends and rivals as an active competitive player in various eSports (particularly fighting games and arena shooters) and a purveyor of music ranging from Jimi Hendrix to Killer Mike to the Sonic Adventure 2 soundtrack.