Hacker News

Hacker News

Show HN: I Turned DOOM into a Transformer (github.com)
132 points by falperc •                         
Instead of trying to run DOOM on things, I have instead decided to use DOOM (many, many, many doom games actually) to create a transformer. For a lot of the math required I essentially had to use DOOM game mechanics and voodoo dolls (DOOM is turing complete btw) and exchange them with the actual operations, essentially creating an alternative to NumPy (a 65000x slower one). Thus, I am proud to present DOOMFORMER. Here are a list of things DOOMFORMER can do :

It can classify MNIST digits, even if you write these digits on the map!

It can talk(kinda)

You can use it to make decisions, so, it can play DOOM. Yes! You can play DOOM with thousands of DOOM games now! The marine's mind can be controlled by DOOM, playing on a map generated by DOOMFORMER. Truly, the possibilities are endless, and even larger-scale training of DOOMFORMER could be done on a measly T4.

If anyone would like to help me scale this up and make crazier things, I'd love to work together.

saucesaft •                         
now everything can run on DOOM ?
falperc •                         
you can theoretically build fable on doom
kenferry •                         
amazing
slowin •                         
This is absolutely incredible. I feel like this could help visualize a neural network, but you have to know a lot about DOOM to really understand it.
falperc •                         
you have to know a lot about lots and lots of DOOMs, in parallel
stmonty •                         
Self-plug I have a very similar blog post title but a very different approach. Honestly, I like your idea more than my own idea. https://nostalgia.dev/posts/running-doom-inside-a-transforme...
falperc •                         
what if you run doom on doomformer?

I havent fully recursed but what I have done with this is use a DOOMformer to generate a level, have python compile it, have DOOMformer generate the name of the level, and use a DOOMformer brain to complete said level. I have also trained said DOOMformer (you can see the levels "weights" updating as it trains) to aim better lol

andai •                         
Awesome

>a handwritten digit takes 163 seconds of real-time DOOM in one map at the default schedule and 8 seconds at --opt 3.

What does this refer to? What does schedule mean here, and what are these opt levels?

Edit: oh sweet Jesus

https://github.com/mottopanikeiku/doomformer/blob/main/docs/...

fwip •                         
Oh, it's AI word-vomit.
MarsZebra •                         
I pity the AI agent that had to work on this
autoexec •                         
Does that mean the title should have been "AI Turned DOOM into a Transformer"?
falperc •                         
It helped me write my docs!
Sharlin •                         
There’s no use in writing docs at all if they contain near-zero density of information that can actually be deciphered. LLM word salad is not documentation, it’s only useful if all you care about is checking the box "[ ] write documentation".
kamisori-daijin •                         
Wow!
mattmcal •                         
I think it might be more interesting to target Boom/Boom-compatible, if possible, rather than ZDoom. ZDoom already has so many advanced features, you could implement the entire thing trivially in ACS. At least a table of required engine features would be nice to see; some are likely already supported in other source ports.
falperc •                         
the backbone implementation using ZDoom certainly wasnt difficult, but some aspects of scaling up were tricky. I definitely want to make it at least Boom compatible eventually
bjconlan •                         
Came for the "doomformer" based snow lyric puns... Left with a feeling my people are on slashdot.
tnms •                         
More AI slop. No thank you.
nico •                         
This is so trippy, very cool, love it

I made a classifier play doom[0]. But you turned the whole network into Doom! Amazing

0: https://playground.jeffyclassify.com/#doom

kuberwastaken •                         
As a fellow doom-weird-places-fitter, this is art. Congratulations :)
mg794613 •                         
Was there even a human involved at all, or was this a "no mistakes" prompt outcome?

Nothing on this page looks made by a human, its _all_ generated, not a tiny bit of it, _all_ of it.

Guess having the word "doom" and "transformer"in your publication is enough today.

jordigh •                         
God, I can't even with the two-eyed cacodemons, what sort of abomination is this.
krapp •                         
This is the future, and Hacker News tells me it's beautiful.
ohitstarik •                         
you wanted the guy to write 90 pages of readmes by himself? what even is the point of that

just very flawed thinking. use the ai tool and make the project, the value is in the project existing. not slaving away long nights, doing it by yourself, and coming to the same result of just using claude.

ReptileMan •                         
Next step - take the cpu implemented in transformers implement it here and make it play doom. The compute needed still won't be able run Crysis well though.
falperc •                         
oh my god i thought the crysis thing was a Turkish joke i didnt know it was international
nnevatie •                         
> I turned ...

You mean Claude turned?

nullify88 •                         
If Claude wrote the readme, technically its correct.
whycombilater •                         
Just how clever can an infinite recursion of someone disappearing up their own backside be?
frankling_ •                         
I wonder what the implementation actually adds over the idea itself. At least part of the appeal of these kinds of projects used to be "wow, someone was actually crazy/eccentric/obsessive enough to go through the effort to do this".

If the idea is clearly feasible, and it's just a question of putting in the work, then what is the point of having an LLM actually do it?

I feel it ends up being no better than a post saying "imagine if...", to the mild amusement of the reader, so essentially it ends up as an instance of "just show me the prompt".

falperc •                         
I think that this is a fair point, for the general plethora of hobby projects present as well! However, I'd like to think I put a lot of effort into this, and this also isn't my first DOOM oriented project. Ever since I've been aware of the trend of running DOOM on unconvential things (around 10-12 years ago, when I first started coding) I've engaged in tens of these projects throughout my development journey. I've ran DOOM on toothbrushes, old chips, broken down TV's etc. not that any of this is especially impressive for the context of the challenge. I've also been an avid contributor of some OS repositories revolving around this, e.g. ViZDoom

Regarding this project, throughout the 3 weeks I've been working on it, the entirety of the design has been mine, the initial backbone coding was mine, essentially everything that wasn't a doc was mine. After I started scaling up, I naturally dispatched a lot of this work to LLMs, and I see no issue in this. I am not unemployed, I do not have the absurd free time in my hands to handwrite docs or code (for the scaling-up) for a hobby project. If you and any other people believe that they could create something more impressive, please, by all means. If you have more time in your hands, and handwrite everything about your hobby projects, I think thats incredible! But I will not accept the meaningless burden of limiting myself and my projects just to prove that I'm "crazy" and wrote the code myself.