tech & talk
Ciência05 de out. de 2026, 09:42

Desenvolvedor roda Doom inteiro dentro de um banco de dados SQL

Projeto batizado de SQLDoom usa 1.300 linhas de SQL para renderizar o clássico de 1993 a 35 quadros por segundo. Código está publicado no GitHub.

Por Marcos Silva · Repórter de plantão

Compartilhar

Um banco de dados agora roda Doom. Sem motor gráfico, sem engine separada, só consultas SQL.

O que aconteceu

Lukas Vogel, cofundador da empresa de banco de dados CedarDB, portou o Doom original de 1993 inteiramente para SQL. O projeto se chama SQLDoom.

A renderização do jogo usa cerca de 1.300 linhas de SQL, organizadas em 89 common table expressions (CTEs), um recurso usado para quebrar consultas complexas em blocos menores. O projeto completo soma cerca de 4 mil linhas de SQL, mais um script em Python para capturar teclado, controlar o tempo e exibir a imagem gerada na tela.

Como funciona

Os dados do jogo original, os arquivos WAD com mapas, texturas e sprites, foram importados para tabelas do banco. Um carregador escrito em Python faz essa importação em cerca de 18 segundos.

A partir daí, é o próprio SQL que processa a árvore BSP (binary space partition) do Doom, estrutura que organiza os cenários em setores para definir o que a câmera do jogador enxerga a cada instante. O resultado de cada consulta é um frame completo, em bitmap, na resolução 320x200 ou 640x480, dependendo da configuração.

O banco usado é o próprio CedarDB, companhia fundada por Vogel, pensada para suportar carga pesada de consultas repetidas em alta frequência.

Desempenho

O Doom original rodava com clock fixo de 35 Hz, um frame por tic, com orçamento de 28,6 milissegundos por quadro. O SQLDoom reproduz essa mesma cadência: 35 quadros por segundo no laço de jogo, com o renderizador chegando a gerar o frame buffer completo a até 60 Hz em um notebook comum. Segundo o projeto, um tic típico com seis monstros ativos na tela consome cerca de 2,15 milissegundos em média, perto de 8% do orçamento de tempo disponível.

Onde encontrar

O código está publicado no GitHub, no repositório cedardb/sqldoom, aberto para quem quiser rodar ou examinar as consultas. Vogel já havia testado a ideia antes em um projeto anterior, o DOOMQL, uma versão multiplayer mais simples, com cerca de 150 linhas de código e desempenho próximo de 30 FPS.

A façanha foi registrada originalmente pela Ars Technica, site americano de tecnologia conhecido por cobertura técnica aprofundada sobre ciência, games e hardware.

sqldoomcedardbprogramaçãogames retrô
Compartilhar