Un grupo de desarrolladores ha logrado traer a la vida el mítico videojuego DOOM, ejecutándolo completamente dentro de la base de datos Firebird SQL y presentándolo a través del navegador, gracias a su compilación a WebAssembly. Esta innovadora apuesta combina la nostalgia de los videojuegos retro con la tecnología moderna para ofrecer una experiencia única.
El proyecto, que simula el juego original, convierte cada acción del juego en una llamada a un procedimiento PSQL y cada frame en una consulta SQL. Esto significa que la lógica del juego se gestiona internamente en la base de datos, mientras que JavaScript se encarga de interactuar con el teclado y renderizar los gráficos devueltos por Firebird.
Detrás de la Tecnología
La implementación de DOOM en Firebird sigue el camino marcado por proyectos previos como SQL DOOM y DOOMQL. A diferencia de estos, esta versión gráfica permite jugar mapas reales de DOOM y se ejecuta directamente en el navegador, aprovechando las capacidades de Firebird. Esto no solo resalta la versatilidad de SQL, sino también su potencial en el desarrollo de aplicaciones interactivas.
En el aspecto técnico, se han implementado dos generadores de renderizado: uno basado en el algoritmo BSP (Binary Space Partitioning) y otro que utiliza un enfoque de fuerza bruta. La elección del renderizador se puede ajustar en la configuración de la página, lo que ofrece flexibilidad en el rendimiento y la visualización.
El desafío no solo ha sido adaptarse a las limitaciones de SQL, sino optimizar el rendimiento. Por ejemplo, algunos problemas de rendimiento fueron resueltos al modificar el orden de las uniones de las tablas y evitando referenciar columnas calculadas de una manera que impactara negativamente en el tiempo de ejecución de las consultas.
Un Enfoque Interactivo
Los jugadores pueden interactuar con el juego mediante comandos de teclado, utilizando las teclas W, A, S y D para moverse, mientras que otros comandos permiten seleccionar armas o pausar el juego. Adicionalmente, hay una consola SQL integrada que permite a los usuarios realizar consultas en vivo sobre la base de datos del juego, lo que añade una capa de interactividad que no se había visto en versiones anteriores.
El proyecto no solo se limita a la experiencia de juego; incluye una serie de herramientas para desarrolladores, como la posibilidad de ejecutar pruebas automáticas para verificar el rendimiento de las distintas consultas SQL o comparar la eficiencia de los diferentes algoritmos de renderización.
Sin embargo, la implementación tiene sus limitaciones. Aunque se ha realizado un gran esfuerzo por replicar la experiencia original de DOOM, algunas características, como efectos de sonido y ciertos tipos de armas, están ausentes. No obstante, el enfoque de bajo detalle reduce el coste de renderizado, permitiendo que en mapas grandes el juego mantenga un rendimiento aceptable.
Este proyecto representa un emocionante cruce entre la nostalgia del pasado y la innovación tecnológica, demostrando cómo las herramientas modernas pueden reinventar experiencias clásicas. Con el código liberado bajo una licencia MIT, no solo otorga acceso a los desarrolladores para experimentar, sino que también subraya el potencial de las bases de datos en el desarrollo de videojuegos.
