Right here we go once more! One other day, one other bizarre technique to play Doom . This time it’s not an obscure IoT system or retro pc that’s working everybody’s favourite demon-blasting FPS recreation. Michael Ayles has executed one thing far stranger and fewer sensible than that by combining KiCad and Doom into one bundle. In the event you want a break from working in your PCB design, now you gained’t even have to shut KiCad to perform a little gaming.
Ayles’ creation, referred to as KiDoom, technically doesn’t run Doom — that’s dealt with by the same old recreation engine through the doomgeneric supply code port. Nonetheless, KiCad’s PCB Editor is used because the frontend, displaying the graphics one of the best ways it is aware of how. What it is aware of, after all, is PCBs. As such, copper traces had been drawn to signify partitions, whereas element footprints served as enemies, well being packs, and different recreation objects. Be careful for these QFP-64 chips! These are the dangerous guys.
As an alternative of trying to render Doom pixel-by-pixel — which preliminary exams confirmed would crawl alongside at roughly 0.15 FPS — Ayles realized that the unique engine already builds geometry as vectors. PCB traces, in spite of everything, are simply vectors in copper. By extracting wall and sprite information straight from the sport’s drawsegs[] and vissprites[] constructions, KiCad solely has to replace 100–300 line segments per body as an alternative of pushing tens of 1000’s of pixels. That effectivity is what makes this weird experiment playable, clocking in at round 10–25 frames per second, relying on the {hardware}.
It’s laborious to name KiDoom helpful, however that’s probably not the purpose. Doom has been run on the whole lot from printers to oscilloscopes, and this undertaking raises the bar in its personal distinctive manner. And if you happen to’ve obtained nothing higher to do that weekend, you may strive it out for your self .Enjoying Doom in KiCad (📷: Michael Ayles)