[HN Gopher] Show HN: I made a Doom-like game fit inside a QR code
       ___________________________________________________________________
        
       Show HN: I made a Doom-like game fit inside a QR code
        
       Author : kuberwastaken
       Score  : 501 points
       Date   : 2025-04-18 16:40 UTC (1 days ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | kuberwastaken wrote:
       | I sometimes pick up random projects just because I can, this was
       | one of those times. I made it as a week long project a while back
       | this year but never shared here, so thought to go for it haha.
       | 
       | I created a game inspired by Doom and the backrooms called The
       | Backdooms under 2.4kb in minified html. (for reference, this
       | entire post would be around 1.8kB haha) I had to use a not
       | popular way of using GZip with Zlib headers (had to write my own
       | script for compressing it, also in the repo) to eventually
       | convert it a size 40 QR code that works right in your browser
       | using Decompressionstream API.
       | 
       | This is of course a very oversimplified description of it, using
       | a lot of the same technologies that DOOM had but combining it
       | with infinite seed based map generation in 2.4kb (QR codes can
       | only store 3kb, which includes changing formats) was pretty hard.
       | 
       | Here are some links about it if you want to nerd out and read
       | more:
       | 
       | Repository Link (MIT License):
       | https://github.com/Kuberwastaken/backdooms
       | 
       | A Hosted (slightly improved) version of The Backdooms:
       | https://kuberwastaken.github.io/backdooms/
       | 
       | Game Trailer: https://www.youtube.com/shorts/QWPr10cAuGc
       | 
       | My Linkedin post about it:
       | https://www.linkedin.com/feed/update/urn:li:activity:7295667...
       | 
       | (PS: You'd need something like https://qrscanner.org/ or
       | something that can scan bigger QR codes and put the text data
       | onto your browser to play it)
       | 
       | My Blogs documenting the process and development in detail:
       | 
       | https://kuberwastaken.github.io/blog/Projects/How-I-Managed-...
       | https://kuberwastaken.github.io/blog/Projects/How-I-Managed-...
        
         | x3n0ph3n3 wrote:
         | I think your trailer video link is bad.
        
           | croisillon wrote:
           | correct link: https://www.youtube.com/shorts/QWPr10cAuGc
        
           | kuberwastaken wrote:
           | Fixed it! My bad haha
        
         | r1chardnl wrote:
         | Your game trailer links to a short called "Fly me to the moon -
         | 19 September 2024". I think this is a mistake?
        
           | kuberwastaken wrote:
           | Should be fixed, sorry haha
        
             | dylan604 wrote:
             | Never gonna give you up lives on in new ways
        
         | sangeeth96 wrote:
         | TIL DecompressionStream, thanks. I managed to shave some more
         | bytes by trimming the HTML bits, raised a PR in case you're
         | interested.
        
           | kuberwastaken wrote:
           | YOU'RE A LEGEND! I just managed to ADD (somewhat of)
           | TOUCHSCREEN SUPPORT, better movement, enemy spawning and
           | damage mechanisms in the space that freed up because of this!
           | Genuinely, thank you, made my month :)
        
             | sangeeth96 wrote:
             | Damn, that's awesome! Glad that was a help :D
        
             | collingreen wrote:
             | Open source victory right here
        
               | kuberwastaken wrote:
               | Absolutely!
        
         | alex_suzuki wrote:
         | Very cool! You've definitely motivated me to continue my own
         | experimentation in the realm of ,,what cool stuff can I put in
         | a QR code": https://strich.io/blog/posts/embedding-webassembly-
         | in-qrcode...
        
           | kuberwastaken wrote:
           | Awesome!
        
       | jasonjmcghee wrote:
       | You should update the css for the canvas to be `image-rendering:
       | pixelated` so things look crisp rather than blurry!
        
         | kuberwastaken wrote:
         | I tried that but this just looks more fun and retro haha
        
       | the_arun wrote:
       | My iPhone camera says - "No Usable Data found" when I scan the QR
       | code.
       | 
       | On a different context, loading a game in QR code also made me to
       | think, can anyone inject a malware script using QR codes?
        
         | KeplerBoy wrote:
         | Sure if the parser is broken anything might happen.
         | 
         | Historically there have been exploits for Sony's PSP using
         | modified .tiff images or an exploit for the Nintendo 3DS where
         | a modified .m4a file could be used.
        
         | kuberwastaken wrote:
         | You'd need something like https://qrscanner.org/ because most
         | phones suck at scanning larger QR codes.
         | 
         | Also, it won't work on your phone, can't put in that
         | compatibility with size restraints, sadly
        
         | conradev wrote:
         | I got it to work with a shortcut:
         | https://www.icloud.com/shortcuts/d4793e08d64d4ff1b7ea725b944...
        
           | kuberwastaken wrote:
           | That is seriously cool, didn't know those could do that haha
        
           | ustad wrote:
           | Whats that doing? I get some error about some gallery???
        
       | giarc wrote:
       | I scanned on an iPhone using native QR code scanner and it says
       | "no usable data found".
        
         | kuberwastaken wrote:
         | Hey thanks for checking it out! You'd need something like
         | https://qrscanner.org/ because most phones suck at scanning
         | larger QR codes.
         | 
         | Also, it won't work on your phone, can't put in that
         | compatibility with size restraints, sadly.
        
           | iainmerrick wrote:
           | You mean the game doesn't work on mobile at all?
           | 
           | What kind of device do you use to scan the QR code, then?
        
             | lelandbatey wrote:
             | You do not need to scan a QR code via a physical camera in
             | your hand directly; any general purpose computer can run a
             | QR code parsing program which accepts arbitrary images as
             | input. It's so easy to do that there exist web pages which
             | implement said QR code scanning in JS. Thus, the parent
             | poster has recommended that you save the QR code .png file
             | to your disk and then use such a piece of software, such as
             | the website they linked, to extract the data encoded in
             | that QR code.
             | 
             | That is how you can use nearly any general-purpose computer
             | to scan a QR code.
        
               | kuberwastaken wrote:
               | Indeed! Thank you for explaining this in a way better way
               | :)
        
               | iainmerrick wrote:
               | Or... use a URL.
               | 
               | I'm sure the number of people who've ever scanned a QR
               | code on a desktop computer is more than zero, but not
               | much more.
        
               | kuberwastaken wrote:
               | I think I myself brought that number into early triple
               | digits, but I do also have a hosted version if you're
               | interested!
               | 
               | The reason for doing this project isn't practicality,
               | it's because I can
        
             | kuberwastaken wrote:
             | Nope it doesn't, you can use any QR code scanner that takes
             | image input! I would've loved to include smartphone
             | controls but that would take a LOT of extra bandwidth.
        
             | kuberwastaken wrote:
             | Hey just wanted to update, I Managed to add kind of some
             | mobile touch support here, so if you get an alternate
             | chromium based browser, you can put in the URI to play on
             | mobile too!
        
               | iainmerrick wrote:
               | Nice one!
        
           | ascorbic wrote:
           | fwiw, it works fine with the Pixel's built-in QR code
           | scanner. It recognises it as text, not a URL, but it can copy
           | to clipboard and then pasting in the browser works. Obviously
           | I then die immediately because none of the controls work, but
           | you can't have everything.
        
             | kuberwastaken wrote:
             | Hey just wanted to update, crazy timing but I Managed to
             | add kind of some mobile touch support here because of a
             | recent PR to FURTHER optimize it (crazy), so you can
             | actually play it now if you figure out the controls lol
        
         | pudquick wrote:
         | data: URI URLs aren't supported in it, it has nothing to do
         | with the size / length of the QR code
         | 
         | For example, this self-contained webpage:
         | <html><body>Hi!</body></html>
         | 
         | encoded is:
         | data:text/html;base64,PGh0bWw+PGJvZHk+SGkhPC9ib2R5PjwvaHRtbD4=
         | 
         | If you paste that into a browser, it will render "Hi!". Very
         | short and easy.
         | 
         | But if you encode is as a QR code, it won't work in this
         | situation.
        
           | kuberwastaken wrote:
           | I think it's broken for safari but works on chromium based
           | browsers on mobile too. The QR code basically holds the URI
           | URL itself.
        
             | pudquick wrote:
             | I'm saying the primary gateway most iOS users are using for
             | loading a QR code - the camera app - will not present a
             | transition to load your URL in this situation
             | 
             | Whether the resulting HTML game is playable in Safari is a
             | different discussion.
             | 
             | The QR code, as generated, is effectively "not clickable"
             | for most iOS users, unless they are using something other
             | than the most common way to read QR codes on their phone
             | like a 3rd party QR code reading app or similar.
        
               | kuberwastaken wrote:
               | That I agree, yes haha
        
           | myfonj wrote:
           | You don't even need the base64 encoding for dataURIs: just
           | throw the text payload after mime-type and a comma:
           | data:text/html,<!doctype html><title>Hi!</title><p>Hello.
           | 
           | This is also a valid self-contained HTML document. You have
           | to add `;charset=utf-8`, if you need to go beyond ASCII, and
           | for some browsers watch for URI-encoding of some
           | syntactically significant characters (like `#` and `%`, `?`).
           | 
           | Base64 is indeed good to be "safe" and/or somewhat 'conceal'
           | the payload, but it also makes it larger by 1/3 (every three
           | bytes of input become four characters of the base64 output).
           | So taking the risk some devices would not like raw "ASCII
           | dataURI", the QR of the backrooms QR could shave off 738
           | bytes.
           | 
           | BTW, this is my "HTML sandbox" for testing stuff in a
           | browsers that I summon daily through keyword bookmark to test
           | simple stuff:
           | data:text/html;charset=utf-8;verbatim,<!doctype html><html
           | style="color-scheme:dark light"><title>HTML sandbox
           | 2.0.6</title><meta name=viewport content=width=device-
           | width,initial-scale=1><body
           | style=margin:0;display:flex;height:100vh onload="OT=(DC=docum
           | ent).title,H=(L=location).hash.slice(1)||'',RX=/(^data:.+?(;v
           | erbatim)?,)?([^]*)/,A.value=H.match(RX)[2]?H:decodeURICompone
           | nt(H)||A.value;T=W=0;E=RegExp('^'+(D='data:text/html;charset=
           | utf-8,'));F=()=>{if(W!=(V=A.value))W=V,M=V.match(RX),I.src=M[
           | 2]?V:(M[1]||D)+encodeURIComponent(M[3]),DC.title=NT=((TM=V.ma
           | tch(/<title\b[^]*?\x3E([^]*?)<\/title\b/m))&&(NT=TM[1])&&(NT=
           | NT.trim())&&(DC.title=NT+' @ '+OT))||OT};F()"><textarea
           | autocapitalize=off style=resize:horizontal;width:50vw
           | autofocus id=A onkeyup=clearTimeout(T);T=setTimeout(F,400) on
           | blur=try{history.pushState({},NT,'\u0023'+(S=I.src.replace(E,
           | '')))}catch(e){L.hash=S}><!doctype html><html lang="en"
           | style="color-scheme: dark light;">%0A<meta name="viewport"
           | content="width=device-width, initial-scale=1">%0A<title>%0A%0
           | A</title>%0A<style>%0A%0A</style>%0A<body>%0A%s%0A<script>%0A
           | %0A</script>%0A</textarea><iframe style=border:0;flex-
           | grow:1;width:0 id=I>
        
             | reaperducer wrote:
             | I think I'm going to find this useful.
             | 
             | Duck browser doesn't allow it to be saved as a bookmark,
             | but Safari is fine with it.
        
               | myfonj wrote:
               | Yeah, sadly, top-level dataURIs are increasingly
               | neglected and banished from browsers, mainly because they
               | were misused for scams in the past; for example no modern
               | browser allows navigating to top-level dataURI by
               | clicking a link. Only bookmarks, manual entry, and
               | external invocation (share) work (sometimes).
               | 
               | Anyway, I have put some remarks and docs for that thing
               | into https://gist.github.com/myfonj/c8ce74bf549e19600026c
               | e9022388... , if you are interested.
               | 
               | By the way, this "Backrooms" can also work from non-
               | base64 URI and as such is significantly smaller (https://
               | github.com/Kuberwastaken/backdooms/pull/3#issuecomme...)
        
               | kuberwastaken wrote:
               | Awesome stuff! I'll play around with it in a bit!
               | 
               | Thanks for sharing :)
        
               | myfonj wrote:
               | My pleasure :] N.b., if you'd like to try fiddling with
               | Backdooms in that Sandbox, either use the "original" HTML
               | payload (with or without `data:text/html,` prefix in the
               | content), or use "verbatim" (`data:text/html;verbatim,`
               | prefix) when trying that last dataURI payload from the
               | comment, otherwise all `%23` would be double encoded, so
               | you'd get wrong colours. ";verbatim" turns off implicit
               | URI Encoding. (It is not part of the tech, just my hacky
               | hatch to be able to test both "true" dataURIs that can be
               | used "verbatim" in URLs, or have convenience of auto-
               | encoding, but have to extract sandbox iframe resulting
               | payload afterwards, for "ejecting" the "project".
        
         | Jerry2 wrote:
         | I'm kinda relieved that it doesn't work on an iPhone. I often
         | scan codes posted around to save the time typing URLs and
         | running arbitrary code by just scanning a QR code freaks me
         | out.
        
           | kuberwastaken wrote:
           | Ironically, I actually wrote a blog about how casually we do
           | this and how dangerous it's become lol
           | https://kuberwastaken.github.io/blog/Technology/QR-Codes-
           | and...
        
             | Valodim wrote:
             | The content is good, but fyi the last third or so had a
             | distinct ai padding vibe
        
               | kuberwastaken wrote:
               | AI padding vibe?
        
               | poilcn wrote:
               | I kinda see that too. Basically, the way some authors use
               | to increase content size with redundant words is the
               | default behavior for Ai chats plus all the disclaimers to
               | avoid possible litigations or negative public image.
        
           | Blikkentrekker wrote:
           | It runs inside a web browser though. This is no different
           | from visiting an arbitrary link and running whatever
           | arbitrary code in the Javascript sandbox of that link and one
           | already knows a q.r. code an take one to an arbitrary link.
        
             | dylan604 wrote:
             | This QR code does. But what about a QR using similar
             | designed by someone less honorable? With QR codes, you have
             | no idea what will happen until you scan it. At that point,
             | it could be too late
        
               | Blikkentrekker wrote:
               | As far as I know the only form of code execution they
               | support is by the URL datatype which carries the same
               | risks as wel already mentioned anyway.
        
             | Blikkentrekker wrote:
             | That said, I wouldn't mind an upgrade to the standard of
             | say say if the link be printed above the code in human
             | readable form in some way, the reader would refuse to open
             | it, or at least be configurable to refuse to open it if
             | they not match.
        
           | recursive wrote:
           | Wait until you hear about javascript on web sites.
        
           | berkes wrote:
           | How is this different from opening any website through a QR
           | code, that will then run "arbitrary code"?
        
       | deadbabe wrote:
       | How can there not be even one screenshot of the game in the
       | readme?
        
         | kuberwastaken wrote:
         | Because it kept evolving and it was more related to the
         | development than the game itself.
         | 
         | But if you want to skip the friction of scanning the QR code,
         | you can directly play a hosted version at:
         | https://kuberwastaken.github.io/backdooms/
        
           | ant6n wrote:
           | Doesnt work on iOS (ipad). A screenshot would be nice.
        
             | kuberwastaken wrote:
             | Yeah, touch devices suck with it but here's the trailer
             | with some gameplay if you really wanna see how it is:
             | https://www.youtube.com/shorts/QWPr10cAuGc
        
             | kuberwastaken wrote:
             | Hey just wanted to update, I Managed to add kind of some
             | mobile touch support here, so if you get an alternate
             | chromium based browser, you can put in the URI to play on
             | mobile too!
        
           | deadbabe wrote:
           | It doesn't work, but I don't really care to play I just want
           | to see the screenshots of what you made.
        
         | kuberwastaken wrote:
         | Heyo, update: I added a GIF to the repo, hope it's better :)
        
       | jerjerjer wrote:
       | Year 3567: automatic interstellar probe finds remnants a
       | technical alien civilization.
       | 
       | Year 3678, Show HN: I compiled DOOM for an alien CPU
       | architecture.
       | 
       | Vernor Vinge kind of touches this topic a bit in his Zones of
       | Thought series.
        
         | kuberwastaken wrote:
         | Haha I solemnly promise that I'll compile DOOM for an alien CPU
         | architecture if we ever get access to one!
        
         | leni536 wrote:
         | How fitting
         | 
         | https://www.smbc-comics.com/comic/2011-02-17
        
         | flkenosad wrote:
         | How could one theoretically reverse-engineer a CPU?
        
           | flkenosad wrote:
           | With an electron microscope possibly.
        
             | DougMerritt wrote:
             | Sometimes, sometimes just optical, but in any case, there's
             | even a guy, Ken Sherriff, who has been doing this as a
             | hobby for ages. It's not like this is merely theoretical.
             | 
             | https://www.righto.com/search/label/reverse-engineering
        
               | flkenosad wrote:
               | That's cool. Thanks!
        
       | Lerc wrote:
       | I don't want to take away from the achievement because it really
       | is awesome, and should be celebrated.
       | 
       | ...but...
       | 
       | It seems like a fundamental design issue to make a QR code game
       | that isn't designed for the platform where QR codes are most
       | used.
        
         | kuberwastaken wrote:
         | Totally understandable, I can make a snake game inside it fully
         | compatible with mobile but mobile controls just take up a lot
         | of space due to the sheer nature of them haha.
         | 
         | But the compression algorithm is up, feel free to make what you
         | think is awesome and compatible, I'd love to see if you find
         | out hacky solutions to make that work too :P
        
           | Lerc wrote:
           | I might just do something like that. Although I inevitably
           | get caught up in designing some minor tech part.
           | 
           | Last time I attempted something like that I made stack
           | machine texture maker, then embedded it inside a version of
           | TTT that minifies+gzips to under 1500bytes. After a few years
           | of pondering I think there are a few more enhancements to be
           | had.
           | 
           | For reference, This URL has a bunch of textures in it.
           | 
           | https://fingswotidun.com/ttt/#W1s2NCw2NCwxMzExOV0sWzY0LDY0LD.
           | ..
        
         | kuberwastaken wrote:
         | Hey just wanted to update, I Managed to add kind of some mobile
         | touch support here thanks to an awesome PR to further reduce
         | the size, so if you get a chromium based browser, you can put
         | in the URI to play on mobile too!
        
       | EGreg wrote:
       | Reminds me of my submission to Allegro SizeHack 25 years ago, in
       | 2000:
       | 
       | https://www.oocities.org/trentgamblin/sizehack/entries.html#...
       | 
       | I made a PacMan-like game in under 10KB... it was called HackMan
       | :)
       | 
       | But I am most proud of the storyline that came with it!
        
         | kuberwastaken wrote:
         | That is SO cool!
        
       | rezmason wrote:
       | Keep making cool things, kuberwastaken
        
         | kuberwastaken wrote:
         | Will try my best! Thank you :)
        
       | bhavik_dand wrote:
       | crazy stuff!!
        
         | kuberwastaken wrote:
         | Thank you so much!
        
       | kuberwastaken wrote:
       | Update: Managed to add kind of some mobile touch support
       | (literally insane) because of a PR by @sangeeth96 on the repo
        
       | smusamashah wrote:
       | Please add a few screenshots to the repo. I am on phone and for
       | whatever reason all I could see was 3 buttons and black screen.
       | 
       | Edit: Add a gif instead, you won't have to rely on YouTube with
       | that.
        
         | kuberwastaken wrote:
         | Alright! First thing tomorrow :)
         | 
         | Also pushed a commit to hopefully fix the blank screen issue
         | for phones!
        
           | xandrius wrote:
           | Still black screen on Firefox mobile.
        
             | notnmeyer wrote:
             | ios? same thing on safari, and probably every ios browser
        
             | kuberwastaken wrote:
             | Sorry, should be completely fixed now, with a neat little
             | joystick (I presume you're speaking of the hosted verison)
        
         | kuberwastaken wrote:
         | Update: Added a GIF!
        
       | metalman wrote:
       | I am now waiting for news that someone has bio hacked a cockroach
       | or a fruitfly to play doom, if not autonomously then for the full
       | cold shivers, they are now robotisising insects, which could then
       | be accesed through an interface to play doom on a toothbrush
       | booted from a qr code. Sci-fi is lagging
        
         | kuberwastaken wrote:
         | One day indeed
        
       | Bengalilol wrote:
       | Great crazy thing! I am waiting for the addition of "self
       | contained QR code" to canitrundoom (although I don't know if it
       | can be technically approved).
       | 
       | Yet... that game will now make me think twice before scanning any
       | QR ^^
        
         | kuberwastaken wrote:
         | Haha fingers crossed but hopefully we do make it there.
         | 
         | And yup! It's pretty insane how much you can do with QR codes,
         | wrote about it here if you're interested in reading more :P
         | https://kuberwastaken.github.io/blog/Technology/QR-Codes-and...
        
       | Mainan_Tagonist wrote:
       | After several tries, i managed to play it, sort of, on Brave on
       | my Samsung S9.
       | 
       | Very impressive compression trick, as a proof of concept, it is
       | worthy of praise, congrats.
       | 
       | I imagine this approach could be used for much more practical
       | uses.
        
         | dylan604 wrote:
         | Or much more malevolent as well. Just because something novel
         | and fun/entertaining can be done does not mean assholes will
         | not use the same techniques for their gain.
         | 
         | PoCs like this are neat and definitely shows some skillz by the
         | author, but now I'm hoping security types take a look at this
         | to see how vulnerable this could be from asshats.
        
           | autoexec wrote:
           | It's already a good practice not to go around scanning random
           | QR codes. Nobody has to go through the trouble of compressing
           | a bunch of code to run in your browser when you can just make
           | a QR code point to any malicious domain on the internet and
           | infect devices all day long.
        
         | kuberwastaken wrote:
         | Thank you so much haha and yes! It indeed can, I always also
         | like the idea of having QR code game cartridges of sorts haha
         | 
         | (PS I updated the hosted version again and it's much better for
         | mobile controls, try it out if you get the time!)
        
           | Mainan_Tagonist wrote:
           | I was thinking yesterday whether it would have a potential
           | application in the field of low resources communication : you
           | produce a QR code containing your info that you transmit over
           | SSTV so the other party can get the message. Supposedly much
           | more efficient than FT8 or JS8Call.
        
             | kuberwastaken wrote:
             | Never thought about it that way, wow
        
       | askvictor wrote:
       | Firefox mobile on Android gives "Cannot complete request;
       | Additional information about this problem or error is currently
       | unavailable" :(
        
         | kuberwastaken wrote:
         | Interesting, perhaps try a different browser?
        
       | Barrin92 wrote:
       | Love these minimal game projects. Reminds me of .kkrieger
       | 
       | https://en.wikipedia.org/wiki/.kkrieger
        
         | kuberwastaken wrote:
         | Yess!! Someone told me about it when I posted it on LinkedIn,
         | so cool!
        
       | redbell wrote:
       | Really cool project! TIL about 'data:' URLs--while I was familiar
       | with the 'data:' URI scheme and had used it before, I didn't
       | realize it could be used as a full URL. Funny enough, I had been
       | thinking about building something similar that fits entirely
       | within a QR code, but I held off because I mistakenly thought it
       | would require an HTTP(s) link. I was heavily inspired by this
       | work: Can you fit a whole game into a QR
       | code?(https://www.youtube.com/watch?v=ExwqNreocpg)
        
         | kuberwastaken wrote:
         | Thank you for your kind words! I was also inspired by this
         | video back in lockdown, I believe, super cool but I went the
         | opposite route for browser based because of more compatibility.
         | 
         | I have them credited in the repo as well :P
        
       | frellus wrote:
       | This stuff is starting to feel closer to Snow Crash than I'm
       | comfortable with, when I saw that QR code I wondered if my brain
       | was being altered :-D Amazing work.
        
         | kuberwastaken wrote:
         | Hahaha Thank you so much!
        
       | bananaboy wrote:
       | Very cool! Minor nitpick though: DOOM didn't use raycasting. This
       | is really a Wolfenstein 3D-like, since Wolf3D did use ray
       | casting.
        
         | Max-q wrote:
         | This is the obligatory comment on every ray casting game
         | calling itself Doom like. I was scrolling down the page,
         | checking if I had to add it, but luckily it was already done
         | :-D
        
           | bananaboy wrote:
           | I have been doing the same since the 90s reading people on
           | usenet calling DOOM raycasting hahaha
        
         | kuberwastaken wrote:
         | I KNOW haha! I wanted to include the backrooms concept with the
         | infinite map and such and Wolfenstein 3D seemed fitting for the
         | theme haha
        
         | Narishma wrote:
         | Given the lack of textured walls, it's more like a Hovertank
         | 3D-like.
        
       | thund wrote:
       | Next project: LLM as a QR code
       | 
       | Or, related:
       | https://www.reddit.com/r/OpenAI/comments/138kbhs/someone_sho...
        
         | kuberwastaken wrote:
         | Honestly, I might try a version of it, thanks
        
       | teleforce wrote:
       | In the last Def Con 32 the badge can run full Doom on Pico 2 [1].
       | 
       | [1] Running Doom on the Raspberry Pi Pico 2: A Def Con 32 Badge
       | Hack:
       | 
       | https://shop.sb-components.co.uk/blogs/posts/running-doom-on...
        
         | kuberwastaken wrote:
         | Yup, Raspberry Pi could always run it haha, good compute on it.
        
           | opan wrote:
           | The Pico is a microcontroller, like an arduino, in case you
           | didn't know. Doesn't run a full GNU/Linux. Not to be confused
           | with the Nano.
        
             | opan wrote:
             | s/Nano/Zero/
        
       | cosignal wrote:
       | Pardon my dumb query, as I'm a tech novice, but aren't QR just
       | encodings of data? And the max amount of data a QR can encode is
       | like 3kb, which would roughly correspond to 3000 or so plaintext
       | characters. So the achievement here is that this Doom-like game
       | can be run from an executable roughly of that size?
        
         | matheusmoreira wrote:
         | QR codes have various encoding modes: numeric, alphanumeric, 8
         | bit and kanji. The most common is alphanumeric encoding and the
         | densest is 8 bit encoding which just stores binary data.
         | 
         | The QR code standards seem to be a little ambiguous on the
         | meaning and purpose of the 8 bit encoding. I got the impression
         | they added it to support alternative character encodings.
         | Still, it's a mode that "represents an 8-bit byte value
         | directly".
         | 
         | > The default interpretation for QR Code is ECI 000020
         | representing the JIS8 and Shift JIS character sets.
         | 
         | > 8.3.4 8-bit Byte Mode
         | 
         | > The 8-bit byte mode handles the 8-bit Latin/Kana character
         | set in accordance with JIS X 0201 (character values 00HEX to
         | FFHEX).
         | 
         | > In this mode data is encoded at a density of 8
         | bits/character.
         | 
         | > 8.4.4 8-bit Byte Mode
         | 
         | > In this mode, one 8 bit codeword directly represents the JIS8
         | character value of the input data character as shown in Table
         | 6, i.e. a density of 8 bits/character.
         | 
         | > In ECIs other than the default ECI, it represents an 8-bit
         | byte value directly.
         | 
         | In any case, it is possible to use QR codes to store arbitrary
         | binary data. The qrencode tool can do this natively. Decoder
         | support is more tricky, they tend to assume all QR codes
         | contain text. I had to send patches to zbar to help it decode
         | QR codes with binary data in them because it was passing the
         | data through iconv and mangling the output. I also had to add
         | options to the zbar tools to make them decode exactly one QR
         | code
         | 
         | I just wanted to print out 4096 bit RSA secret keys as QR
         | codes. People started QR encoding video games pretty soon
         | after. It's awesome.
         | 
         | https://youtu.be/ExwqNreocpg
         | 
         | https://news.ycombinator.com/item?id=24287347
        
       | kazinator wrote:
       | If that QR code itself appeared as a texture on a wall inside the
       | game, I would shit my pants.
        
       | badmonster wrote:
       | cute
        
         | kuberwastaken wrote:
         | Very!
        
       | below43 wrote:
       | This is very cool. On a similar bent I built https://urlfile.app
       | because I wanted to see if I could share files via a URL (and I
       | also wanted to genrate QR codes via Edge so I could load the
       | files onto my phome). It works for small files fairly well...
        
         | kuberwastaken wrote:
         | That's really cool
        
       | eastoeast wrote:
       | This is super cool. Recently, I tried making an offline, P2P chat
       | program that fits inside of a QR code. In case network was down,
       | the code could be scanned by mobile, allowing users to join a
       | chat room. However this doesn't seem possible at the moment, as
       | 1. browsers don't allow offline direct communication for safety
       | reasons 2. couldn't fit all needed data/prereq modules within the
       | QR.
        
       | redeyedtreefrog wrote:
       | Pretty cool, though like others I had some slight technical
       | issues. On Firefox mobile I got a black screen (that was
       | yesterday, maybe it's been updated since then). Firefox desktop
       | today it worked once I figured out that:
       | 
       | a) the keyboard doesn't work until after I click to fire, and
       | this state resets itself every time I press f5 to restart the
       | game (presumably a browser focus issue)
       | 
       | b) both up/down and w/s work for back and forward, but a and d
       | don't work for left and right, you need to use the left/right
       | arrows.
       | 
       | The combination of the two had me scratching my head for a little
       | while!
        
         | kuberwastaken wrote:
         | Heyo! Thanks for checking it out! "On Firefox mobile I got a
         | black screen" - Yup I broke it while trying to add mobile
         | controls earlier, but it works well now!
         | 
         | "the keyboard doesn't work until after I click to fire, and
         | this state resets itself every time I press f5 to restart the
         | game" yes- this is actually something for starting the game
         | music and some other processes
        
       | sebastiennight wrote:
       | Tested it on an offline Android. I'm amazed that it works,
       | although I could never figure out the controls so I always end up
       | dead within a few seconds!
       | 
       | You might want to explain those controls in the readme :)
        
         | kuberwastaken wrote:
         | Yes, it takes a while to get used to but it somewhat works lol
         | 
         | I'll try to familiarize myself with it more and add it
         | eventually!
        
       | kamranjon wrote:
       | A friend and I were talking about a somewhat related idea.
       | 
       | We were wondering if we could encode the STL for a 3d print
       | entirely into a QR code and then put that on the actual printed
       | object - so that any piece you made could be replicated by just
       | scanning the object and printing again.
       | 
       | When looking into it I thought it just was too much data, even
       | looked into multi-colored QR codes. But I didn't realize you
       | could just make a bigger QR code...
        
       | wallivers wrote:
       | I really like this idea. You're a legend!
        
       ___________________________________________________________________
       (page generated 2025-04-19 23:01 UTC)