El desarrollador Lukas Vogel ha adaptado Doom para que funcione íntegramente en una base de datos SQL, donde las consultas de CedarDB gestionan la lógica del juego y el renderizado. El proyecto, llamado SQLDoom, almacena la geometría de los niveles y el estado de la partida en tablas, mientras un sencillo script de Python gestiona los tiempos, las entradas y la salida de imagen.
SQLDoom genera 35 fotogramas por segundo a todo color con una resolución de 640×480 mediante unas 1.300 líneas de SQL repartidas en 89 bloques de consultas. Vogel afirma que alcanza unos 60 fps en un portátil con un Ryzen 7 7840U, aunque en escenas concurridas puede bajar a 35 fps.
Un proyecto anterior, DoomQL, empleaba trazado de rayos y caracteres de texto en escala de grises. Vogel dijo que omitía el recorrido del árbol BSP asociado al método de renderizado de Doom, por lo que desarrolló una segunda versión. Para SQLDoom exigió que tanto el ciclo del juego como el sistema de renderizado funcionaran mediante SQL, con una salida limitada a tablas de colores exactos o mapas de bits.
En una entrada de blog sobre el proyecto, Vogel dijo que renderizar Doom en una base de datos era «obviamente una mala idea». Los suelos y los techos plantearon un reto especial porque el motor original de Doom utiliza visplanes y cambios de estado. Vogel sustituyó ese sistema por una secuencia de paneles ordenados para rellenar las superficies y calificó el método de «bastante chapucero».
El port admite partidas deathmatch y cuenta con servidores públicos en Europa y Estados Unidos. Según TechRadar, quienes probaron las demos en línea las encontraron lentas; un medio sugirió que los servidores, y no el port, podrían ser la causa. El código se puede ejecutar localmente con CedarDB y los datos WAD originales de Doom, o jugar en una partida alojada.
Comentarios
0Aún no hay comentarios. Escribe el primero.