DOOMQL: A Novel Doom-like Game Built Entirely Within SQLite Using SQL
Peter Gostev has developed an innovative game called DOOMQL, which reimagines the role of SQLite from a data storage solution to the core game engine. This unique Doom-like game uses SQL to manage all aspects of gameplay, including character movement, collision detection, enemy behavior, combat mechanics, player progression, and even the rendering of every RGB pixel on the screen. The entire game is implemented as a Python terminal script.
To run DOOMQL, users can clone the repository from GitHub, navigate to the directory, and execute the Python script. This process creates a SQLite database file, which can then be explored using Datasette, a tool for exploring data. By leveraging the Datasette Apps plugin, Gostev created a custom HTML and JavaScript application that interfaces directly with the SQLite database. This app displays the game's current state, refreshing every second, and can be enhanced with features like a minimap. The development process involved using generative AI, specifically Claude chat (Fable 5), to assist in generating the code for the Datasette application.
This project ingeniously repurposes a relational database management system, SQLite, as a foundational element for a real-time interactive application, challenging conventional software architecture paradigms. By abstracting game logic into SQL queries, the developer explores the potential of data-centric programming for complex interactive systems, potentially offering new avenues for game development and simulation. The integration with AI tools like Claude for generating the user interface highlights the evolving landscape of AI-assisted software creation, where LLMs can facilitate rapid prototyping and development of novel applications. This approach prompts consideration of how data structures and query languages might be leveraged for emergent behaviors and dynamic systems in future computational environments.
AI-generated to prompt reflection — not editorial opinion, not advice, not a statement of fact. How this works.