Ejecutar la lógica completa de un videojuego dentro de una base de datos relacional dejó de ser un ejercicio teórico. Un proyecto experimental denominado SQLDoom logró renderizar el clásico juego Doom utilizando exclusivamente consultas SQL, generando 35 framebuffers de mapa de bits por segundo a una resolución de 640x480 píxeles en color completo.

La arquitectura del sistema distribuye responsabilidades de forma precisa: un cliente en Python gestiona la entrada del usuario, controla el tiempo y presenta cada cuadro en pantalla, mientras que las tablas de la base de datos rastrean la geometría del entorno y el estado del juego en tiempo real. La lógica central —colisiones, visibilidad, movimiento— está implementada en 1,300 líneas de SQL organizadas en 89 expresiones de tabla comunes (CTEs), una estructura que permite encadenar operaciones complejas sin salir del motor relacional.

De archivos WAD a esquemas relacionales

La conversión del formato nativo de Doom al modelo relacional resultó más directa de lo esperado. La arquitectura original del juego descompone sus niveles en vértices, líneas y sectores, una estructura que se mapea con relativa naturalidad a tablas relacionales. Incluso los árboles de partición de espacio binario (BSP), mecanismo central del motor gráfico de Doom para determinar el orden de renderizado, fueron replicados en SQL mediante una clave de ordenación precalculada por posición. Una instrucción ORDER BY es suficiente para determinar qué segmentos de pared deben mostrarse en cada cuadro.

Este enfoque contrasta con el proyecto anterior del mismo autor, DoomQL, que producía gráficos en escala de grises con representación ASCII. SQLDoom representa un salto cualitativo en fidelidad visual y complejidad computacional dentro del mismo paradigma.

Implicaciones para arquitecturas de software no convencionales

Más allá del valor experimental, este tipo de proyectos expone los límites reales —y los márgenes no explorados— de los motores de bases de datos relacionales. Para equipos de ingeniería que trabajan con sistemas de alta complejidad lógica, la demostración plantea preguntas relevantes: ¿qué operaciones que hoy se delegan a capas de aplicación podrían ejecutarse directamente en el motor de datos con menor latencia y mayor consistencia transaccional?

La respuesta no es trivial, pero el caso documenta que SQL, con el diseño adecuado, puede sostener lógica de estado en tiempo real a tasas de actualización que antes se consideraban fuera de su alcance. Para organizaciones que evalúan dónde colocar lógica de negocio compleja en sus arquitecturas, este experimento aporta evidencia técnica concreta sobre las capacidades subutilizadas de los sistemas relacionales modernos.