- Создан открытый порт классической игры Doom с использованием возможностей САПР KiCad.
- Игровой процесс визуализируется через размещение дорожек и электронных компонентов на печатной плате.
- Исходный код проекта KiDoom написан на Python и доступен под лицензией MIT на GitHub.
Недавно разработчики представили оригинальный и технически сложный порт игры Doom, реализованный с помощью системы автоматизированного проектирования (САПР) KiCad. Проект получил название KiDoom и представляет собой уникальную комбинацию геймдева и инженерного ПО. В основе решения лежит генерация игрового поля внутри редактора печатных плат, где стены и объекты формируются дорожками и электронными компонентами, а затем происходит симуляция их взаимодействия и отрисовка векторной графики.
Так, игровые стены создаются дорожками на плате, мелкие предметы представлены транзисторами типа SOT-23, декорации — микросхемами формата SOIC-8, а персонажи и враги — более крупными микросхемами QFP-64. Всего в проекте сопоставлено более 150 игровых сущностей с конкретными элементами печатной платы, что демонстрирует масштаб работы и сложность архитектуры визуализации.
Для отображения процесса создатели модифицировали исходный движок Doom таким образом, чтобы он передавал сформированные векторы через Unix-сокет в плагин, интегрированный в KiCad. Этот плагин, разработанный на Python, отвечает за размещение дорожек и электронных компонентов в редакторе, а также периодически обновляет изображение с помощью функции pcbnew.Refresh(). Несмотря на то, что именно эта функция является узким местом в производительности, игра способна демонстрировать от 10 до 25 кадров в секунду, что для такого необычного формата достаточно.
Стоит отметить, что KiDoom — не единственный творческий порт Doom. В последние годы появилось множество необычных версий игры: запуск Doom в текстовом редакторе российского офисного пакета «Р7 Офис», запуск Doom на спутнике Европейского космического агентства OPS-SAT, реализация игры внутри документа Microsoft Word (без звука), порт Doom в PDF-документе, а также сложный проект с запуском игры в системе типизации TypeScript. Эти проекты демонстрируют устойчивый интерес лабораторий и энтузиастов к созданию нестандартных интерпретаций классики геймдева с применением самых разнообразных технологий.
KiDoom же выделяется своей технической оригинальностью — использование инструментов САПР и электронных компонентов как средств визуализации игрового пространства расширяет границы традиционных подходов к портированию. Исходный код проекта опубликован на GitHub под лицензией MIT, что позволяет специалистам и энтузиастам изучать его, совершенствовать и создавать собственные модификации.
