Voltar
O clássico Doom foi portado para rodar quase totalmente em SQL

Doom em SQL: CedarDB Porta Clássico Jogo para Banco de Dados Relacional

Aprofundamento CEVIU

Aprofundamento

A CedarDB fez algo que muitos achavam impossível: portar a lógica e o renderizador do clássico Doom para SQL. Isso vai além de uma curiosidade. É uma demonstração técnica poderosa sobre a capacidade dos bancos de dados relacionais. A façanha desafia a noção de que SQL serve apenas para gerenciar dados, mostrando que ele pode, sim, rodar lógicas complexas e de tempo real, aproveitando recursos como transações e estado compartilhado, o que é crucial para uma experiência multiplayer.

A implementação explora o modelo baseado em conjuntos do SQL de forma inovadora. O código-fonte original do Doom, escrito em C, tem cerca de 9000 linhas; a versão SQLDoom consegue o mesmo com 5900 linhas de SQL para a lógica do jogo. Isso inclui um sistema de componentes de entidade (ECS), onde cada componente vira uma tabela e cada sistema (como a IA dos monstros) é um UPDATE ou INSERT com junções. Para a renderização, a CedarDB usou árvores BSP para ordenação de profundidade e funções de janela para simular a lógica de preenchimento imperativo das visplanes (chão e teto), algo que em C seria um loop mutável. Isso não só roda o jogo no loop de 35 Hz original, mas também permite renderizar a 60 FPS, interpolando as posições da câmera.

O que mudou

A CedarDB já havia explorado a ideia de Doom em SQL no ano passado com o DOOMQL. Aquela versão era mais um experimento de "raycasting" em ASCII art, que lembrava mais o Wolfenstein 3D. O que vemos agora com o SQLDoom é uma evolução gigantesca.

A equipe entregou a "verdadeira" experiência de Doom, com seus algoritmos de BSP trees para renderização e toda a complexidade gráfica e de jogabilidade que o clássico exige, tudo executado dentro do banco de dados. O que antes era uma prova de conceito mais simples, virou uma engenharia robusta que replica a fidelidade do jogo original.

Por que isso importa

Esta realização com o SQLDoom é um marco para a engenharia de dados. Ela reforça a discussão levantada pelo CEVIU News em abril de 2026, no artigo "O Que Game Engines Sabem Sobre Dados Que Bancos de Dados Esqueceram". O experimento da CedarDB mostra que bancos de dados podem ir muito além do armazenamento e consulta, entregando performance e lógica complexa que antes eram domínio exclusivo das game engines ou de outras linguagens de programação.

Isso abre caminho para repensar arquiteturas de sistemas que precisam de alta consistência transacional e processamento de eventos em tempo real, como em sistemas de simulação ou aplicações financeiras que operam com regras de negócio intrincadas diretamente no banco.

Linha do tempo

  1. CedarDB porta clássico Doom para SQL, demonstrando capacidade de execução de lógica complexa em bancos de dados.

Perguntas frequentes

O que é SQLDoom?

É uma versão do clássico jogo Doom de 1993, portada quase inteiramente para SQL e executada dentro de um banco de dados. A CedarDB demonstrou que tanto a lógica do jogo quanto seu renderizador podem operar usando as capacidades nativas do SQL, mantendo a performance e a fidelidade do jogo original.

Como a lógica do jogo Doom foi implementada em SQL?

A equipe da CedarDB adaptou o padrão Entity Component System (ECS). Cada componente do jogo (como posição ou status) é uma tabela, e as "sistemas" (como a IA dos monstros) são consultas UPDATE ou INSERT que unem essas tabelas. Isso permite que a lógica seja processada em paralelo pelo banco de dados.

Quais foram os principais desafios técnicos da renderização em SQL?

A renderização, que usa cerca de 1300 linhas de SQL com 89 Common Table Expressions (CTEs), precisou de soluções criativas. Para a ordenação de profundidade, usaram árvores BSP pré-computadas. Para simular a lógica de preenchimento de chão e teto (visplanes), que no original é imperativa, usaram funções de janela para processamento baseado em conjuntos.

Qual o impacto do SQLDoom na área de engenharia de dados?

O SQLDoom prova que bancos de dados relacionais podem ir muito além do esperado, executando lógica complexa e de tempo real. Isso pode influenciar o desenvolvimento de aplicações que exigem tanto alta performance quanto consistência transacional, abrindo novas perspectivas para o uso de SQL em domínios como simulações, processamento de eventos e até mesmo lógicas de negócio críticas.

Fontes

Avalie este artigo:
Categoria
CEVIU Dados
Publicado
24 de setembro de 2026
Editoria
CEVIU Dados

Quer receber mais sobre CEVIU Dados?

Conteúdo curado diariamente, direto no seu e-mail.

Conteúdo curado diariamenteDiversas categoriasCancele quando quiser