[HN Gopher] DOOM CAPTCHA
___________________________________________________________________
DOOM CAPTCHA
Author : denysvitali
Score : 633 points
Date : 2025-01-01 14:12 UTC (8 hours ago)
(HTM) web link (doom-captcha.vercel.app)
(TXT) w3m dump (doom-captcha.vercel.app)
| gamegod wrote:
| What kind of monster doesn't give us WASD or at least ctrl to
| shoot?
|
| Awesome captcha though :)
| InMice wrote:
| ijkl;
| felixg3 wrote:
| Unfortunately very specific to QWERTY layouts:(
| zamadatix wrote:
| That depends entirely on whether you opt to do the compare
| by code or key. E.g. in JS KeyboardEvent.code == "KeyW" may
| resolve true even though KeyboardEvent.key == "W" may
| resolve false because the user is on AZERTY or what have
| you.
| zubairshaik wrote:
| Ergonomic keyboards on software like ZMK or QMK actually
| change both iirc, so that's a no go for external keyboard
| users.
| zamadatix wrote:
| I'm a QMK user woth a custom no -standard layout myself.
| I think you're referring to mapping keys to a given
| keycode as part of the firmware config. That's not
| inherently a problem, do it properly and it still lines
| up with whatever OS layout you load. If you're
| purposefully changing the keycodes to avoid letting the
| OS know the layout is different... well, you got what you
| explicitly configured you wanted it to behave like? Leave
| a layer if you want both behaviors, if not it's not up to
| the app devloper to assume otherwise.
| pg5 wrote:
| Pretty cool, but a little on screen pad would be good for mobile
| users.
| yousif_123123 wrote:
| It does have it. If you tap on it, it should show it.
| turbocon wrote:
| There is a pad on the screen for mobile, I think you just need
| to tap it
| pjmlp wrote:
| Nope, not for Android Chrome.
|
| Taping shows the instructions for keyboard use.
| djeastm wrote:
| I also was unable to see controls on mobile. Tried tapping
| everything I could see.
| galleywest200 wrote:
| There are so many monsters, took me 3-4 tries...just like a real
| captcha!
| phoronixrly wrote:
| Man, and just like real CAPTCHA it is hell for people with
| disabilities... 10/10
| throwaway7679 wrote:
| It's doom, so hell for everyone
| UniverseHacker wrote:
| excellent comment
| bstsb wrote:
| reading the chat with v0 was interesting. the last time i tried
| v0 it generated really basic tailwind templates but the first
| image generation was actually really good for an LLM.
| Kiro wrote:
| Why are people downvoting this? I also found the chat very
| interesting and a cool demo of v0. It's linked at the bottom of
| the page.
| fixprix wrote:
| Yea looks like most people are missing the fact it was built by
| the CEO of Vercel with v0, an AI site builder. Doom in a
| browser has been done to death. Link to chat log:
|
| https://v0.dev/chat/4X85A52Dzde
| mensetmanusman wrote:
| This will work until agents are common. I bet the best bot farms
| are first adopters of agents though.
| casenmgreen wrote:
| 1. That's a tough level, one of the hidden levels IIRC.
|
| 2. It feels like "-fast" has been used.
|
| 3. The task is much, much more difficult because you can't
| strafe.
|
| Very cute though :-)
| mistaken wrote:
| Strafing works for me on linux with firefox. Maybe it's an OS
| or browser setting that prevents it?
| hnlmorg wrote:
| It's not available on touch screen devices.
| plussed_reader wrote:
| Bluetooth keyboard to the rescue!
| casenmgreen wrote:
| I also FF on Linux.
|
| But I always redefined A and D as strafe-left and strafe-
| right.
|
| I literally did not know the keyboard shortcut to strafe,
| because I have probably literally never used it.
| epcoa wrote:
| Correct, it's E1M9, the shareware secret level, on Nightmare
| difficulty.
|
| You can strafe with the old-school chording of Alt.
|
| The sound was fucked up for me, high pitched, no idea why (fits
| the ridiculousness of this experience though, so NBD).
| wellthisisgreat wrote:
| > old-school chording of Alt
|
| Damn I completely forgot it was a thing even, wow. And yet it
| was for like 7 years of my gaming experience
| mock-possum wrote:
| Is it actually that tough??
|
| I was ready to good-naturedly complain that it didn't work on
| mobile, but the onscreen controls worked just fine, and I
| didn't have any trouble killing 3 guys right away.
|
| I guess I have been playing a fair amount of classic doom
| lately though so
| casenmgreen wrote:
| We mean the whole level, not the three mobs for the captcha.
| inglor_cz wrote:
| Yeah, E1M9 is notoriously hard with a pistol start. I
| immediately recognized it ... which speaks to the amount of
| time I spent on Doom in my youth.
| RiverCrochet wrote:
| Hold ALT, you definitely can strafe. At least I could.
| m3kw9 wrote:
| it's not possible to win without strifing
| charlesabarnes wrote:
| I tried to do it the intended way, but found it too difficult. I
| was able to cheese it by staying in the starting area and killing
| the enemies that spawned to the right.
| TehCorwiz wrote:
| Yeah, pistol starting this particular level is...unkind. At
| least start with a shotgun.
| cuu508 wrote:
| Hah, same here.
|
| 1. press the back arrow to move back
|
| 2. press spacebar every second
|
| and that's it, 30 or so seconds later the captcha is solved :-)
| lightning8113 wrote:
| I didn't even have to move. Holding space bar down from the
| start seemed to work for me.
| oytis wrote:
| IDDQD works. Just saying.
| huhtenberg wrote:
| But WASD doesn't!
| oytis wrote:
| Was it working in the original DOOM though? I don't
| remember any more.
| gusfoo wrote:
| > Was it working in the original DOOM though? I don't
| remember any more.
|
| By default it was the arrow keys for movement and <> for
| turning with CTRL as fire. But you could re-map the keys
| and after a few years quite a lot of people did.
| bigstrat2003 wrote:
| Nope. Doom was arrow keys to go forward/back/turn, plus
| alt-left/right to strafe.
| doganugurlu wrote:
| How nostalgic, and authentic!
| seattle_spring wrote:
| Holy crap, so does IDSPISPOPD
| TeMPOraL wrote:
| So does IDKFA.
| Dwedit wrote:
| Monsters killed by the Rocket Launcher (gibbing) do not
| increase the kill counter.
| zorked wrote:
| You don't get credit for IDDQD though.
|
| Also use something like IDCLEV15 and you can go to other
| stages.
| Dwedit wrote:
| Oddly enough, IDCLIP and IDCLEV work. You can't activate any
| doors or switches, but you can beat E1M8 with No Clipping
| Mode. Then you're stuck at the "Ordering Info" screen with no
| way to activate the menu.
| gruez wrote:
| You don't even need to cheese it when everything is client
| side, so there's no way for the server to verify you actually
| killed the required amount of enemies.
| make3 wrote:
| it's a PoC
| cwillu wrote:
| What part of the concept was proven?
| 93po wrote:
| yes - i refuse to use captchas for basically any reason -
| if a site blocks me with a captcha where i have to label
| traffic lights or whatever, i close the tab and move on
|
| i would probably choose to use doom captcha even if it
| takes 5 times longer. it is proven that at least people
| will interact with this if they wouldnt with traditional
| ones
| yieldcrv wrote:
| found the robot
|
| jk robots can do this now
| oliwarner wrote:
| I think this is unfairly downvoted.
|
| Anyone can think of something humans do and just playing
| DOOM in a browser falls well short of anything new.
|
| _All_ the hard stuff is missing. It 's half an idea.
| cwillu wrote:
| I find the early votes on new comments are biased
| downwards; I can speculate as to why, but it usually is
| more than balanced out by later votes.
| hombre_fatal wrote:
| You could send inputs to the server, the server simulates
| them to see if you killed monsters.
|
| The concept here is the UX of what it would be like if it
| were properly hooked up.
|
| Just like what you would do with any captcha proposal.
| You'd want to mock up the UX to evaluate whether it
| something people can do.
|
| Though here's it's just for fun.
| Maxatar wrote:
| Perhaps this implementation works that way, but in principle
| if the game is strictly determined based on a random seed and
| player input, then the server can verify that the player's
| inputs do in fact result in the correct outcome.
| bcoates wrote:
| Doom doesn't even have a (variable) random seed, it's
| deterministic like an NES game and has built-in
| record/playback that's just a frame by frame list of player
| moves.
| johnisgood wrote:
| Yes, same. Are those invisible turrets?!
| BiteCode_dev wrote:
| Well, this is not the first level, but this is the level entry
| weapon.
|
| Plus, left and right arrows rotate the characters since it's
| keyboard only, but in modern FPS you are used to having them
| laterally move you and you rotate with the mouse, so your
| reflexes are off.
| hansjorg wrote:
| As in the original, you can use alt + left/right arrow keys
| to strafe.
| BiteCode_dev wrote:
| Good memory.
|
| But very platform dependant, so maybe OP is on a browser or
| OS that doesn't let you do that.
|
| I know it works on Chrome for me, but not on FF.
| Zetaphor wrote:
| So this is just as difficult as every other captcha then
| sweeter wrote:
| nice, that was the first thing that I noticed that I kept
| trying to do. It makes it a lot easier. I forgot about how
| clunky controls can be for older games without retroarch
| rebinds and stuff. I was playing Perfect Dark last night on
| my Steamdeck and I was able to bind the controls to a
| modern layout (left-stick walk, right-stick look, etc...)
| and it makes the game a ton easier.
| threekindwords wrote:
| Ok, so this is the kind of content I show up for.
|
| On one hand, it's a clever and fun way to show off what we can do
| with the web these days. The way it is presented hits just
| right... the demo is dead center of the page, with debug tools
| and more info within reach. I particularly enjoyed reading the
| "how it's made" page to understand how it was put together. I
| like how all of this extra stuff was not front and center when
| the page loads. Even the design language of the CAPTCHA box
| itself felt just right.
|
| On the other hand, it's a satire of what we have done to the web.
| The bad guys (like the monsters in the game) have won. I'm a
| flesh and blood human, but here I am having to click on fuzzy
| pictures of random objects before I can do the task I actually
| wanted to accomplish. Behind the scenes, my human insight gets
| licensed and used for whatever purpose (nefarious or not). Just
| like the DOOM demo here, it's hard and cumbersome, but for
| whatever reason we all accept it as the way it has to be. We all
| shake our heads and say "what a shame, what a shame."
| mschuster91 wrote:
| > Just like the DOOM demo here, it's hard and cumbersome, but
| for whatever reason we all accept it as the way it has to be.
|
| Because most if not all of us have lost all hope that
| eventually our governments will be either willing or able to do
| something about the bad actors on the 'net.
| discoinverno wrote:
| I couldn't win without cheating ^:) It's crazy how ingrained in
| my memory is the code tho, could remember it automatically after
| maybe 25 years
| EGreg wrote:
| I think it's nearly impossible on a mobile phone hehe
| nunobrito wrote:
| "Spartans: Today we captcha like men"
| joshcsimmons wrote:
| This is so metal. Great work.
| bogrollben wrote:
| today I learned I really suck at Doom.
| kmeisthax wrote:
| Can't move or shoot on my iPad Pro with Magic Keyboard.
| knolan wrote:
| Tap on it . Arrow keys to move and space to shoot. It's
| annoying because you can't strafe.
| deeviant wrote:
| I feel this faster than the average "click on all pictures of x".
| runlevel1 wrote:
| That's a low bar. Google's reCAPTCHA sometimes feels like it
| was created in a lab to be as infuriating to humans as
| possible.
|
| If you're not logged in and are using a shared IP (CG-NAT in my
| case), you get all sorts of fun behaviors. It loves to fail
| correct responses -- sometimes multiple consecutive ones.
| Occasionally, it will deliberately slow down new image fade-in
| to a snail's pace to test reaction time. Spot those stairs too
| fast? You must be a bot.
| MB-EU wrote:
| only thing I'd change is put shoot as CTRL :) - Good work
| super_normal wrote:
| beat the captcha first try on a pixel 6. true gaming legend
| signing out, el oh el oh el...
| mobilio wrote:
| fun mode - iddqd and idkfa works!
| mjrpes wrote:
| Interesting; it recognizes kills made with chainsaw, gun,
| shotgun, machine gun, but not rocket launcher. Plasma and BFG
| keys don't work.
| mobilio wrote:
| in shareware version plasma and BFG guns aren't available
| anthk wrote:
| The authour could had just used FreeDoom
| https://freedoom.github.io
|
| which is a free as in freedom replacement for DOOM I/II and
| deathmatch iWADs (totally compatible with community PWADS).
| acidburnNSA wrote:
| Thank God the cheat codes I have memorized still work.
| tnvmadhav wrote:
| I tried moving and I died. Stay at the spawn point and keep
| shooting anything that moves :)
| zoklet-enjoyer wrote:
| Same. Only way I could beat it
| doctor_radium wrote:
| I've rolled my eyes for years over when this sort of thing would
| happen for real: "score 3000 points at Pac Man and _maybe_ we 'll
| let you view our web site". +1 for the technical achievement, but
| I turn and run at Cloudflare tick boxes.
| entropie wrote:
| Its awesome, but actually quite hard without arrow keys on a
| HHKBpro.
| itvision wrote:
| Solved it on a second attempt on my smartphone.
|
| It's horrible. 99% of people will give up.
| anta40 wrote:
| Failed on 1st attempt, then beat it on 2nd attempt (I'm on
| Macbook Air). Very amusing idea. Perhaps I'll implement this for
| my personal project... well because why not? :p
| sira04 wrote:
| One day we'll have the Dark Souls captcha
| https://www.youtube.com/watch?v=WqnXp6Saa8Y
| foo-stuff wrote:
| I wonder how long this would need to train in order to pass the
| Captcha...
|
| https://github.com/apollopower/DOOM-AI
| phoronixrly wrote:
| I would argue that you do not need AI in the sense of ML to
| pass this specific CAPTCHA as it stands (move forward, move
| back then shoot until solved). If it was extended to all DOOM
| levels and you started at a completely random position of a
| level, I bet there is a high chance you would still not need
| any ML to beat it... You would at best have to implement an AI
| (in the sense of game development, _not ML_ ) algorithm...
|
| Ofc all of this is going to be necessary IF it actually cannot
| be trivially circumvented... How does the FE _prove_ to the
| backend that you actually killed the monsters?
| jsheard wrote:
| > How does the FE prove to the backend that you actually
| killed the monsters?
|
| Doom is fully deterministic so you could record the players
| inputs and replay them on the server to verify that the kills
| actually happened. Some games actually do that to make
| cheating their online leaderboards more difficult, because
| it's a lot more work to fake a record-setting replay than it
| is to just submit a fake score, and even if you do fake a
| working replay it might not stand up to human review.
| ricardo81 wrote:
| Excellent, though I'd have liked it more with a bigger gun
| ac29 wrote:
| IDKFA
| quotemstr wrote:
| Funny, but thanks to RL, I'd expect this to actually be an
| ineffective CAPTCHA. DOTA was solved years ago, yes?
| mrlonglong wrote:
| BFG9000, here I come!
| ulrischa wrote:
| Does not work on a smartphone
| TechTechTech wrote:
| Works fine on android Firefox mobile
| oxide wrote:
| Game loads on firefox desktop, but is a black screen. Debug
| didn't show anything out of the ordinary. loads fine on
| Chrome though.
| EVa5I7bHFq9mnYK wrote:
| No BFG 9000 :(
| jordigh wrote:
| Aw, monster in-fighting kills don't count? That's my favourite
| kind of kill. In-fighting is a basic Doom skill, kind of
| forgotten in modern FPSes.
| pseingatl wrote:
| idkfa doesn't work
| anthk wrote:
| Now do it with Nethack/Slashem.
| Beijinger wrote:
| Nice. But I would prefer this as a Captcha: https://play-cs.com/
| chrisan wrote:
| Doom is the defacto "I wonder if we can get it to run on x"
| program
| airstrike wrote:
| This was created with Vercel's AI assistant "v0"
|
| Here's a link to the chat:
| https://v0.dev/chat/4X85A52Dzde?b=b_tOXbbZzZPgT&f=0
| pierrec wrote:
| The JS part is nowhere to be seen, I guess they used the
| assistant to create the layout, but not the actual DOOM
| integration part (?) Even then, that chat gets pretty painful
| to read after a while... Paraphrasing, but that's the gist of
| it: "center the text in the button", "you didn't center it,
| center the text", "please please center the text"...
| airstrike wrote:
| The very beginning of the chat is already inefficient as it
| wastes a lot of "context space" to just get very basic stuff
| in like defining the text at the top.. that kind of stuff
| should go in the very first message
| skrebbel wrote:
| I read through the chat but it's all nitpicking about layout
| and there doesn't seem to be any point where DOOM is actually
| inserted. I don't understand, did the author get the AI to do
| the easy part and then code the hard part by themselves?
| monkpit wrote:
| Isn't WASM doom a solved thing already? I wouldn't consider
| that the hard part, unless I'm missing your point.
| skrebbel wrote:
| well you'll need integrations to have the WASMised doom
| tell you when a monster gets hit, or when you died. you
| need to worry about which keyboard events to pass in, etc.
| i know it's not super hard but it's definitely the more
| exciting part of this, vs all the "make the title text
| bigger" stuff that's in the chat
| gruez wrote:
| >This was created with Vercel's AI assistant "v0"
|
| "with" is doing a lot of the heavy lifting here. I skimmed the
| log and so far as I can tell, the only thing that the AI
| assistant did was design the UI. It didn't implement the actual
| game. This might sound impressive, but aside from adding minor
| bits of interaction (eg. a button that shows "loading" for a
| few seconds), there's little difference functionality-wise from
| a drag-and-drop UI designer like winforms (and its predecessor,
| visual basic, which existed in the 90s).
| runlevel1 wrote:
| As others have pointed out, that was only setting up the UI.
|
| Here's the repo with the rest of the source:
| https://github.com/rauchg/doom-captcha
|
| They also had to modify Doom to skip the menus, add the
| necessary callbacks, and a few other tweaks.
| magic_smoke_ee wrote:
| IDSPISPOPD, IDKFA, and IDDQD work but the only weapons that work
| are the chainsaw up to the rocket launcher.
| midnight_shaman wrote:
| Great idea, looking forward to seeing it on production websites
| ;)
| ybbond wrote:
| it's too hard, I bet only bot can accomplish this
| pkkkzip wrote:
| very easy to build an aimbot. i think its entertaining but to
| be used as real captcha you need a variety of challenging games
| but at the risk of turning away many humans, which will
| ironically open up a market for more such decaptcha services
| cydmax wrote:
| It took me 3 retries. I've forgotten how to strafe and just moved
| a bit to the right...
| layer8 wrote:
| Not very accessible.
| martinbaun wrote:
| I just died. I guess I am getting old and need to play more
| strategy games hehe.
| vunderba wrote:
| Thank you for doing the right thing and crediting the original
| Doom Captcha creator on the github repo. My expectations of the
| software industry in general have been at an all-time low lately,
| so this was nice to see.
|
| The original from a few years back:
|
| https://vivirenremoto.github.io/doomcaptcha
|
| https://github.com/vivirenremoto/doomcaptcha
| make3 wrote:
| you would have to randomize spawns otherwise they can just record
| a playthrough and repeat it to unlock
| yobid20 wrote:
| Doesnt work on mobile.
| apgwoz wrote:
| Was able to play, but it didn't recognize kills. Definitely got
| 2, possibly a 3rd (hard to tell in small screen).
|
| FF on iOS.
| alexandrehtrb wrote:
| Very cool.
|
| Suggestions:
|
| - Make the player immortal by default. Also all weapons by
| default.
|
| - Add strafing, if possible.
|
| - Make the player go to the level exit to finish the captcha
| (maybe a custom short map?)
|
| - A simpler version for mobile could be the original 3x3 captcha
| square with enemies attacking you. Tapping on enemy squares would
| kill them.
| johnisgood wrote:
| Those suggestions are anti-CAPTCHA or unrelated to CAPTCHA,
| however.
| Nition wrote:
| Considering that they've picked a very difficult level on
| purpose, I assumed it's hard on purpose as a joke. You get to
| solve the CAPTCHA only once you've got significant skills at
| Doom.
| dvngnt_ wrote:
| didn't google's ai genie use automomus agents to play doom to
| generate training data?
| Dwedit wrote:
| It took me using Debug Mode to realize there was supposed to be a
| confetti animation that plays after winning, it loads from a
| third party site. I have third-party javascript blocked by
| default.
| wruza wrote:
| Can't strafe on mobile, that's can shooting range and you are the
| can.
| mosquitobiten wrote:
| I broke it, I can enter the menu in firefox with F1, get put in
| the first level, I shoot the barrels and it counts as monsters
| killed.
| michaelsshaw wrote:
| This would be way cooler if this wasn't so fucking difficult!
| econ wrote:
| If you take a right turn then a left and run into the corner
| you drop into a secret area with a chain gun, some health and a
| med pack. The problem is that they are waiting for you if you
| take the elevator back up. I have no idea how to get past them
| without killing to many monsters. Even shooting the barrel
| counts -.-
| tw0fac3 wrote:
| Wow
| stuckkeys wrote:
| Thanks satan.
| jokethrowaway wrote:
| The sad thing is that this is easier than some captchas I've
| seen.
|
| I remember some crap from hell with hcaptcha
| tom_ wrote:
| Well at least it wasn't E4M2.
| econ wrote:
| Just shooting without moving shouldn't solve it. The ammo is
| excessive.
|
| Mobile needs a better interface and landscape mode.
| cyanydeez wrote:
| Aren't you afraid you are training AI?
| rickreynoldssf wrote:
| Kind of hard without strafe.
| snarfy wrote:
| the controls are ass
| indigoabstract wrote:
| Ouch, the puzzle is too hard. Maybe the next step could be an
| automated tool for solving wicked CAPTCHAs? :)
| bilekas wrote:
| Well this is hard, guess I'm not a human!
|
| It's been so long since I've played doom but without strafing..
| it's almost impossible!
| KerryJones wrote:
| Stated elsewhere: hold alt + (left/right) to strafe
| cpill wrote:
| just go forward to trigger the monsters and then immediately
| back to where you started for cover and then pick them off at a
| distance. easy!
| anandsuresh wrote:
| +100 for technical chops, -100 for usability. +10 for the trip
| down memory lane, and the self-realization that I now suck at
| playing video games.
| teach wrote:
| Yeah, amusingly, I use a keyboard that doesn't have arrow keys.
| I've bound them to a different layer, but that doesn't work
| well with this setup.
|
| If this implementation supported the now-standard WASD (which
| was absolutely used by some high-level Doom players back in the
| day) AND if it allowed me to fire using the left mouse button
| (again, like the original game), then it would have been
| relatively easy to prove that I'm a human. :)
| computerdork wrote:
| Another thing that makes it "easier" is this actually does
| support strafe, using Option + left and right arrow keys.
| Still not easy, but more doable:)
| sznio wrote:
| >and the self-realization that I now suck at playing video
| games.
|
| Nah... No mouselook really makes this much harder. Took me over
| 10 attempts to pass, and I'm Diamond at Overwatch.
| smitelli wrote:
| This is the secret level (E1M9) that you'd normally encounter
| after E1M3. By this point in the regular progression you'd have
| found a shotgun, chaingun, rocket launcher, and probably some
| armor. Starting this level with just a pistol (and it looks
| like maybe U-V or Nightmare difficulty) is just begging for a
| buttwhipping.
| puttycat wrote:
| Cool, but why is this a CAPTCHA? That is a very broad definition
| of the test.
| RiverCrochet wrote:
| Well, for one, CAPTCHA means Completely Automated Public Turing
| Test To Tell Computers And Humans Apart and I don't think DOOM
| as in the gameplay is Turing-complete.
| mrcwinn wrote:
| No WASD?! CAPTCHA fail -- I can tell no human created this.
| rmac wrote:
| do diablo
| fuzzy_biscuit wrote:
| Pro strat is to peak forward a smidge and then pop off the few
| zombiemen and shotgun guys that are drawn in.
| bithead wrote:
| Takes less time than other CAPTCHAs
___________________________________________________________________
(page generated 2025-01-01 23:00 UTC)