El proyecto firebird-doom permite ejecutar el videojuego DOOM completamente dentro de la base de datos Firebird SQL, utilizando Firebird 6 compilado a WebAssembly. A diferencia de otras implementaciones basadas en SQL, este sistema no solo simula la lógica del juego, sino que renderiza la gráfica en tiempo real en el navegador del usuario. Cada 'tic' del juego se traduce en una llamada a un procedimiento PSQL, y cada fotograma se genera mediante una consulta SELECT que devuelve los datos necesarios para la renderización.
El sistema mapea la estructura de los archivos WAD de DOOM a tablas de Firebird, incluyendo vértices, líneas, sectores y sprites. La lógica de movimiento, colisiones y ataque se implementa mediante funciones recursivas y conjuntos de datos (CTEs) que replican la complejidad del motor original. Para la renderización gráfica, el proyecto ofrece dos algoritmos: uno basado en el algoritmo BSP (Binary Space Partitioning) con optimización de cobertura de muros, y otro basado en fuerza bruta. El método BSP es aproximadamente tres veces más rápido que la fuerza bruta en mapas complejos, aunque ambos garantizan la misma precisión visual.
El proyecto está inspirado en trabajos previos de CedarDB (SQL DOOM, DOOMQL) y DuckDB, pero se distingue por ser una implementación gráfica que juega mapas reales de Freedoom. Incluye herramientas de desarrollo como scripts de prueba para validar la compatibilidad de los renderizadores y generar capturas de pantalla. El código está licenciado bajo MIT y requiere Firebird WASM para funcionar, ofreciendo una demostración técnica de las capacidades de procesamiento de bases de datos relacionales en el navegador.
