56,000 lines of DOOM, in a language I made up
I built bet, a programming language with slang keywords but a serious LLVM compiler, as a contained experiment to finish a project without research. By relying on AI agents for implementation while I acted as the architect, I successfully ported the entire 56,000-line DOOM game. The result is a self-hosting language that manages memory with arenas and runs the original game bit-for-bit identical to the C version, proving that a joke can be a serious, finished tool.
A language that only works at the level of syntax is really just a costume.
- 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 ;)
- 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.
- 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).