Enter the bowels of the living room from the comfort of your own Hell. While that sentence might seem a bit backwards, it isn’t to programmer and designer Rich Whitehouse. Whitehouse has created a script which uses data from your Roomba to create a DOOM level from the floorplan of your house, humorously titled DOOMBA. The script works in conjunction with Noesis, “a tool for previewing and converting between hundreds of model, image, and animation formats,” according to his website.
— Rich Whitehouse (@DickWhitehouse) December 24, 2018
The overall gist of the project is that a Roomba connects to Noesis, using a script written by Whitehouse to track the movements of your personal robot vacuum cleaner. Once the Roomba sends your floorplan data to Noesis, a whole lot of customization options open up, including enemy and object placement, surface textures, and much more. “The script itself is written to make it very easy to extend these various object tiers, or even add support for other DOOM-based games, by changing THING ID’s around,” says Whitehouse.
While the overall concept is incredibly cool, Whitehouse does caution the adventurous of the lot to be careful changing more advanced options, as they could cause the game to break. Whitehouse states that he didn’t get into extensive testing of the script, “so when in doubt, don’t mess with the defaults.” The designer says that he ran preliminary testing of the system on a Roomba 980, so there’s also no guarantee the code will work with other Roomba devices. A final word of warning from the creator states that the interface does not account for experimentation outside the realm of capabilities in DOOM, such as Visplane overflow, which causes the game to crash when there are more than 128 different floor/ceiling textures on the screen at the same time.
While the technical details of the mod are just a tad (ok, a lot) out of my realm of understanding, full details on how to turn your house into a DOOM-themed hellscape can be found here, and details and download link for Noesis, the programming needed to incorporate it, can be found here.