DOOMQL: O Jogo que Nasceu Dentro de um Banco de Dados
O que é um banco de dados, senão uma memória coletiva, um universo de informações esperando para ser consultado? Uma pergunta que costumava ter respostas diretas, ligadas a tabelas, registros e consultas. Contudo, o cientista da computação Lukas Vogel, cofundador da CedarDB, nos força a repensar essa definição. Ele não apenas consultou um banco de dados; ele o transformou em um campo de batalha digital. Nasce o DOOMQL, um jogo multiplayer inspirado no clássico DOOM, renderizado e executado quase inteiramente dentro da lógica fria e estruturada do SQL.
A façanha, desenvolvida ao longo de um mês, desafia a máxima de “será que roda DOOM?” e a eleva a um patamar filosófico. Se um sistema projetado para organizar dados pode simular uma realidade tridimensional em tempo real, onde reside a fronteira entre o código e a experiência? O projeto de Vogel não é apenas um feito técnico; é um poema escrito em Structured Query Language.
A Arquitetura de um Sonho em SQL
Diferente de outras tentativas que utilizam tecnologias web como JavaScript para a renderização, o DOOMQL é uma criatura purista. Segundo os detalhes do projeto, disponível no GitHub, todo o estado do jogo — o labirinto de corredores, a posição dos jogadores, a ameaça iminente dos inimigos, os comandos de cada participante — vive dentro de tabelas SQL. O mapa, os sprites, as configurações, tudo é um registro a ser consultado e manipulado.
O cérebro por trás dessa operação consiste em aproximadamente 150 linhas de código SQL. É um testemunho da elegância e do poder de uma linguagem muitas vezes subestimada. A base de tudo é o próprio CedarDB, o banco de dados da empresa de Vogel, que serve de tela e processador para esta obra. A simplicidade do código esconde uma complexidade imensa, onde cada `SELECT` e `JOIN` contribui para tecer a ilusão de movimento e interação.
O Fantasma na Máquina de Dados
Como, então, a informação estática das tabelas ganha vida? A magia acontece através de uma pilha de views SQL que implementa uma técnica de renderização conhecida como raycasting. Essencialmente, o banco de dados projeta raios a partir da perspectiva do jogador para calcular e construir o que ele vê, quadro a quadro. O resultado é um mundo 3D com resolução de 128x64 pixels, pulsando a estáveis 30 quadros por segundo (FPS).
Para manter esse coração digital batendo, um pequeno script em shell atua como o mestre de cerimônias, executando o arquivo SQL principal cerca de 30 vezes por segundo. Do lado do jogador, um cliente com cerca de 150 linhas em Python captura os comandos do teclado e os envia como consultas ao banco de dados. Cada passo, cada tiro, é uma transação. Não estamos apenas jogando; estamos, literalmente, conversando com os dados em tempo real.
Um Eco no Corredor dos Códigos
A iniciativa de Vogel se destaca de projetos anteriores, como o DuckDB-DOOM de Patrick Trainer. Enquanto este último dependia de WebAssembly e JavaScript para renderizar o jogo em um navegador a cerca de 8 FPS, o DOOMQL concentra quase toda a sua lógica no servidor do banco de dados. É uma abordagem que transforma o repositório de dados no protagonista da ação, não em um mero coadjuvante.
Essa obra não apenas prova que é possível rodar um clone de DOOM em SQL, mas levanta questões sobre o propósito e o potencial das ferramentas que usamos todos os dias. Ferramentas criadas para organizar o mundo podem, ao que parece, também criar novos mundos.
No fim, o DOOMQL é mais do que um experimento. É uma reflexão sobre a abstração e o poder do código. Se hoje um banco de dados pode abrigar os corredores labirínticos de um jogo, que novas realidades, que novas consciências, estaremos consultando amanhã com um simples SELECT * FROM future?
{{ comment.name }}
{{ comment.comment }}