HeadlinesBriefing HeadlinesBriefing.com

Lukas Vogel renderiza Doom em SQL

Ars Technica •
×

Lukas Vogel escreve em uma longa postagem de blog explicando como conseguiu renderizar Doom usando um banco de dados SQL. O projeto SQLDoom usa um pequeno cliente Python para lidar com entrada e saída, controlar o tempo do jogo e exibir cada quadro. Por trás disso, uma série de tabelas Cedar DB rastreia a geometria e o estado do jogo, enquanto cerca de 1300 linhas de consultas SQL em 89 expressões de tabela comuns implementam a lógica do jogo e geram 35 buffers de quadro bitmap por segundo.

SQLDoom é uma grande melhoria em relação ao projeto anterior de Vogel, Doom QL, que construiu "um jogo de tiro multijogador semelhante a Doom inteiramente em SQL" mas acabou com gráficos ASCII em escala de cinza. O novo SQLDoom gera quadros coloridos completos de 640×480 semelhantes ao executável original de Doom.

Converter os arquivos WAD clássicos de Doom para um banco de dados relacional foi simples, diz Vogel, porque o jogo dividia os níveis em vértices, linhas e setores. As árvores de partição de espaço binário de Doom podem ser decompostas em SQL usando uma sort_key pré-calculada para cada posição. Com isso, uma simples declaração "ORDER BY" determina quais partes das paredes exibir em cada quadro.

Entidades-chave: Empresas: Ars Technica | Pessoas: Lukas Vogel

Fonte: Ars Technica · Resumido por HeadlinesBriefing