56,000 lines of DOOM, in a language I made up
ghuntley
36 points
27 comments
July 16, 2026
Related Discussions
Found 5 related stories in 626.5ms across 14,015 title embeddings via pgvector HNSW
- Doom, Played over Curl creaktive · 105 pts · April 12, 2026 · 58% similar
- A playable DOOM MCP app chrisnager · 82 pts · April 28, 2026 · 54% similar
- 7 lines of code, 3 minutes: Implement a programming language (2010) azhenley · 17 pts · May 11, 2026 · 54% similar
- Show HN: I built a RISC-V emulator that runs DOOM Flex247A · 37 pts · May 03, 2026 · 52% similar
- Show HN: TTF-DOOM – A raycaster running inside TrueType font hinting 4RH1T3CT0R · 40 pts · April 06, 2026 · 51% similar
Discussion Highlights (7 comments)
bentt
This is a good example of where it’s important to be more up front about the role of AI in the making of a thing. Making a language that compiles through LLVM is no small task and takes a lot of expertise. Most of the time people do it because they have a point of view and are highly technical. Making a joke language via AI is an entirely different exercise. Not without value but not the same, especially when evaluating what it means about the author.
andai
Excellent. At last, I can I confess a far worse crime. Late 2020, pre-AI, which I'm not sure if that makes it better or worse... #include "uwu.h" #include <stdio.h> iwint main() stawt iwint owo is 5 yiff fuw (iwint uwu is 0 yiff uwu smol owo yiff uwu incwease) stawt owo is owo wif uwu yiff spweak nuwumber_fowmat, owo spwake yiff stawp stawp -- // uwu.h #define is = #define yiff ; #define stawt { #define stawp } #define fuw for #define iwint int #define wif + #define wiffout - #define smol < #define larg > #define incwease ++ #define spweak printf( #define spwake ); #define nuwumber_fowmat "%d\n" Obviously this one also runs DOOM ;)
jdw64
I'm writing the C backend by hand and using AI for the rest, so how did this author manage to finish an entire language in just 34 hours? I've been steadily catching and fixing what the AI writes, so it's amazing to me that they ended up with a complete language. It makes me wonder if the way I'm building a compiler is just wrong.
Retr0id
It's cool that AI lets you cheaply experiment with language design, but I wish people would stop using it for the writeups, too. Buried near the end is a mention of per-frame arena allocation, which is an interesting idea for a game engine (although not a novel one).
rebolek
What if I don't `evict`? How different is it from forgetting to `free`?
ahmadyan
Nicely done Geoffrey, I think we are coming full circle, instead of porting projects to different languages (for whatever) like going from zig -> rust -> zig, now we can also add additional hops like zig -> rust -> curse -> ts -> ocaml -> english -> zig. Thank you for keeping the token furnace burning!
StilesCrisis
Did they actually post their DOOM source anywhere? They didn't seem to have posted the compiler source, just a playground.