Back

Doom Captcha (2021)

471 points26 daysvivirenremoto.github.io
corysama26 days ago

Unfortunately, just this week someone fine-tuned the Mistral-7B LLM to play DOOM :P

https://news.ycombinator.com/item?id=39813174

paulryanrogers26 days ago

For very modest definitions of playing. Perhaps it'd be more impressive if they recorded a demo file and let that play back without the realtime overhead? Even so it can only move in forward, back, turn, and fire. And only knows to face away from the wall it's collided with. This is so far below even basic Doom bots that I'd be afraid to call it playing.

The ASCII intermediate interpretation also seems unnecessary and very limiting. But perhaps that's to keep it near realtime, looks like 1 FPS?

And why run on a Mac? Why not a beefy PC with a GPU that can do the calculations faster?

Still, does seem like a fun challenge. Maybe with further tuning or training it can level up

lobocinza24 days ago

Reminded me of "Growing Living Rat Neurons To Play... DOOM?"

https://www.youtube.com/watch?v=bEXefdbQDjw

wahnfrieden26 days ago

any models fine tuned for playing an open src game that is non-GPL so that it can be deployed to the app store for interesting bot play ideas?

brcmthrowaway26 days ago

How could this possibly be in the training set?

corysama26 days ago

It’s not. The fine tuning taught the LLM how to give single-character responses (move/fire keyboard controls) in response to a sequence of ASCII-art-ized frames of the game being played.

Zambyte25 days ago

Is it actually ASCII art or just a textual encoding? The art representation is nice for looking under the hood and seeing something pretty, but I feel like that is a very far from optimal way to textually encode Doom for a language model to process. Especially since there is no pitching the camera, you can encode all of the information you need to represent a frame in a single line of ASCII. It they are actually using an ASCII art representation, I bet they would get way better performance encoding the frame as a single line of text.

+2
kqr25 days ago
+1
corysama25 days ago
ametrau24 days ago

That’s so dang cool

sugarkjube26 days ago

Absolutely love it. Unusual captcha's are great.

Reminded me of this one: http://random.irb.hr/signup.php

esaym26 days ago

Funny. I made a captcha challenge of calculus problems for a comment section on my personal blog page. But 5 years after college, I couldn't remember how to even do them myself so I changed it :-/

iopq25 days ago

wolfram alpha can do it for you

evgpbfhnr26 days ago

You don't actually need much, for a form I used to get spam in I just added a "write 42 here" so anyone who actually cares to read would be able to fill it. spam fell to 0.

(for a site with a slightly higher profile this wouldn't be enough, but for a minor corner of the internet with no ill intent actually aimed at it that turned out to be enough to block the fuzzing "fill all the forms" spam)

electroly24 days ago

As contrasting experience, I did that (a simple math problem) on our contact form and it did NOT drop spam to zero; our spammers were too smart for that. Even an actual reCAPTCHA didn't completely eliminate it (although it mostly did, enough that it's fine for us).

kqr25 days ago

Similarly an empty input field that is css'd to be outside the viewport is often filled by spambots but not humans. But I like the edge case UX of your idea more.

jeffhuys25 days ago

Just watch out that Chrome’s autofill doesn’t fill it in. Cost us a huge chunk of new signups until we found out. Chrome ignores autofill directives under some circumstances.

+1
kqr25 days ago
koito1726 days ago

The question I got was surprisingly simple: it asked to find "the least real root of the polynomial p(x) = (x+5)(x-4)(x+1)". A determined attacker can quickly hack together something with Tesseract and feed it into even GPT-3.5 to get the correct answer to questions like these.

I guess that means the captcha is doing its job, since running LLMs isn't very cheap or scalable. But any harder problem means you start filtering a significant chunk of human users. Based on the other replies to your comment, it seems that the questions at their current difficulty already stop a lot of human users, yet allow a determined attacker with the setup I described pass through easily.

explaininjs26 days ago

I'm not sure how you'd determine the least real root to that, given all three have equally zero imaginary component.

wnoise25 days ago

They of course the minimum out of the set of the real roots.

cwillu25 days ago

I suppose the square root of negative infinity has the property of being unreal in several distinct ways, but yeah, the least real? I dunno /s

baud14725825 days ago

I remember an old (and now defunct) fan site who hit you with lore questions as a captcha. Though I'd guess a LLM could answer

onlyrealcuzzo26 days ago

Can I play by an audio call if I'm visually impared?

Keyframe25 days ago

Yes, when you hear a monster roar you say BANG!

Kwpolska25 days ago

The first one I got was 7 * 7 + (-3). That’s trivial, elementary-school-level math, and did they really need LaTeX to render that?

Then I refreshed the page, and was hit with calculus involving trig functions.

marvinborner25 days ago

Or the one on esolangs.org where you need to evaluate some random Befunge code.

em-bee26 days ago

after reloading a dozen times i finally got one that i could solve:

-3 * 3 + (-3) = ?

jakderrida26 days ago

I just got one I think I can solve: 0 + 7 + 0 = ?

Where's my calculator?

defrost26 days ago

Bond, Jim Bond ?

nottorp25 days ago

I got "find the last real zero of the polynomial..." but what does last mean? Largest? Last as the polynomial's factors are given? Something else?

Edit: oh wait. It's "least". I really have no idea then :)

jelder25 days ago

It let me through despite trying to attack a cacodemon with a pistol.

With it being so famously portable, I was expecting this to actually run Doom in the browser and complete a simple map.

sira0426 days ago

I'm still waiting for someone to make the Mona Lisa Captcha: https://www.youtube.com/watch?v=WqnXp6Saa8Y

wanderer232325 days ago

Absolute banger. But the auto-aim on vertical axis is missing. You should be able to have the crosshair under an enemy and still hit them. But in any case, nicely done!

daveslash25 days ago

Funny enough, when I've tried to introduce (indoctrinate) friends to DOOM, "how do I aim up" has consistently been the biggest hangup.

This makes sense when I try to indoctrinate my teenager who grew up on Halo and Call of Duty. But I began noticing this hangup in the late 90s with friends my own age.

evrimoztamur25 days ago

Here's the real Doom player!

modeless26 days ago

Why isn't it actually Doom? Surely there are multiple JS Dooms to choose from.

tiltowait26 days ago

"Finish UV Hangar in < 13 seconds."

Easily achievable[0], thoroughly obnoxious[1]. Just like all captchas.

[0] God help you if you're on a touchscreen. [1] For most people. Especially after the novelty wears off.

kadoban25 days ago

Doom is still under copyright protection last I knew. The source is GPL, but have the assets ever been liberally licensed? I think they're more abandonware.

I'm sure you could still do it, but personally I try to respect copyright strictly for any projects I'm going to share. It just feels annoying to have copyright nonsense hanging over me otherwise.

modeless25 days ago

Well certainly we don't need the full game assets for a captcha. The shareware version would do just fine and that's always been free.

kadoban25 days ago

Yeah maybe the shareware, but I'm not sure what the license is on that either.

It's free to play, sure, but is it free to use the assets for whatever you feel like and redistribute on your website? At a guess: no.

modeless25 days ago

This made me curious, so I looked at the original Doom shareware distributions on archive.org. They do include a license that allows free distribution but prohibits commercial use and generally seems to want you to not do anything other than run the software as designed. Although there are several different versions of the license and I didn't look through all of them, it's possible that some distributions were made with less restrictive licenses.

This surprised me because I thought that id's original shareware releases actually had more permissive licenses than that. Maybe the original Commander Keen did.

I guess maybe id/ZeniMax/Microsoft could theoretically sue you. But in practice the shareware assets are used completely freely without issue all over the internet.

chungy25 days ago

Even better, Freedoom.

Solvency26 days ago

Yeah kind of bummed me out.

jml7c526 days ago

You should try for a full 3D implementation of Doom! I'm sure it's been ported to JavaScript at least a dozen times.

taneq25 days ago

Wny stop there when you could just use a webassembly port of the actual game with hacked-in portal to the actual site somewhere... :P

nottorp25 days ago

For bonus points fire up a Windows VM that will run the original Doom files...

Or maybe a remote desktop into an OS with a sandboxed browser that runs a Windows VM that ...

Dowwie25 days ago

I want a doom progress window that allows a user to play doom while waiting for a task to complete

explaininjs26 days ago

Now I want Men In Black mode, where your job is to identify the threat posed by the popup and shoot accordingly:

Alien doing pull ups? Fine. 8 year old girl holding a Quantum Physics book in a dark alley? That's sus...

girvo26 days ago

Having re-watched that movie recently, he's not wrong -- that's a deeply odd book for an apparent 8 year old girl to be holding. And with the amount of aliens that look like humans across the movies...

canjobear25 days ago

I always thought he passed the test there, and the guys that just mindlessly shot failed.

explaininjs25 days ago

Well of course he passed - they immediately after offer him the job and neuralize everyone else.

cwillu25 days ago

Typical cop assuming any behaviour they can't explain must be malevolent.

explaininjs25 days ago

They call it entrapment - the officials put him in a position where be believes he's required to shoot in order to pass a test, but he sees no reason to. So finally he has to go with his gut and shoot the most probable target, even if he would have if not placed in that situation with those expectations.

wmil25 days ago

Can you make one based on the WoW fishing minigame? ie they need to click on the bobber at the right time.

I'm not expecting it to last longer, but there really should be some decent fishing bots at this point.

dang25 days ago

Related:

DOOM Captcha - https://news.ycombinator.com/item?id=27264988 - May 2021 (173 comments)

saasxyz24 days ago

I always thought there is a room for mini web games in 2024. Currently no decent site to simply play some little games is a bummer. I would appreciate games like this to play between my coding sessions. And I am obviously not interested in downloading games, I am interested in web native games.

Lacerda6924 days ago

Newgrounds still exists.

But AFAICT there is basically 0 money in browser games now, which is why only romantics and masochists still work on them.

avsteele26 days ago

This is fun. I have been having trouble with Google capchas recently, so Ii;d be happy if more where like this.

wutwutwat25 days ago

Google has been contracting for the military doing AI for over a decade, I'm pretty sure targeting objects w/ a computer in a combat type situation isn't going to stop anyone. They have aim bots for most FPS games too

Still cool and unique though

hiccuphippo24 days ago

You can beat it by rapidly clicking left to right and back. Maybe add a rate of fire and change the vertical position of the enemies.

sunnybeetroot26 days ago

Missing 2021 tag

keybored25 days ago

Ah Gordon… just put on your hazmat suit and walk into the chamber in order to prove you’re a human.

Apreche26 days ago

This is a fun idea, but it doesn't seem to work in any browser I tried. Maybe adblock is breaking it?

wruza26 days ago

You have to click on "ON" or "OFF" to start. Unintuitive.

Apreche26 days ago

Thanks. That was the issue. I was clicking on the text that says "click to start"

binary13226 days ago

I did that a few times myself :)

nntwozz26 days ago

Works for me iOS Safari with AdGuard.

deadbabe25 days ago

There needs to be hostages or barrels that you shouldn’t shoot because you’ll die.

kanapala25 days ago

Haha, the Windows screensaver Easter egg level is a nice touch ;)

edpichler25 days ago

Amazing. I wish it was claimed to be secure!

internetter25 days ago

I'm not sure it's possible to make secure. To render the positions of the enemies, the browser receives 4 coords. To submit the capcha, the browser submits 4 coords – the same ones it received. Perhaps you could track the variance between the exact position and the position the user selected, as well as timing. But would it be enough?

edpichler22 days ago

I think it's safe enough for many cases. Amazing concept to have little classic games as Captcha.

paulryanrogers26 days ago

Not really Doom, a few years old, and now broken apparently. IIRC it was basically just a mouse only shooting gallery mini-game.

EDIT: Not broken, just not obvious one must click the sound options to start. Still just a mouse gallery mini-game. Doubtful you'd even need AI to solve it.

justinator25 days ago

Well let's be honest, a human (YOU I assume) couldn't even figure out how to start the game, so if AI can solve it, we're in real trouble.

paulryanrogers25 days ago

So a CAPTCHA that keeps humans out? Sadly that is all too common

pkrefta26 days ago

Best captcha I've ever seen <3

pushedx26 days ago

wouldn't do much to prevent bots

frozenlettuce26 days ago

If they switch to canvas rendering and include some twist (eg. shoot x but not y, limit input rate, etc), then I think that a considerable computing effort would be necessary to break the lock

enlyth26 days ago

I don't think it's that considerable, I made a script to defeat it with vision in only a few minutes:

https://gist.github.com/enlyth/a177e4102b0da37a73587e15dbd68...

This could be further optimized to not scan the whole screen, and faking some human like mouse movements shouldn't be that hard too

Reubend26 days ago

Wow, that's pretty impressive to me and I think it's awesome that you were able to put this together quickly. I admit that I don't have a CV background, so maybe this is easier for a programmer who's already experienced in that area.

+1
lloeki25 days ago
duskwuff26 days ago

And if you analyzed the user's cursor movements (on desktop), reaction time, and positional accuracy, it could be a genuinely decent CAPTCHA.

RockRobotRock26 days ago

I'm in awe at the late stages of this cat and mouse game. I write a lot of bots and scrapers, and I feel thoroughly out-gunned against a bunch of PhD data scientists.

DataDome talk about detection: https://youtu.be/xJGBfSGIsjw

RockRobotRock26 days ago

I know this is just for fun, but I think this could be a genuinely good solution if it was heavily obfuscated, and the enemy positions were streamed from the server.

brink26 days ago

The author knows, it's just a bit of fun. Read the page.

seattle_spring26 days ago

This comment made me vividly think about that "no silly hats!" cartoon by Don Hertzfeld from 20 ish years ago.

darby_eight26 days ago

...what are you comparing to?

jgalt21226 days ago

this crashed my firefox. anyone else?

NamTaf26 days ago

Nope, worked fine for me on 124.0.1 w/ several extensions

major50525 days ago

love the super shotgun code.

SmartHypercube26 days ago

Who else is clicking "click to start" like me? It turns out you have to choose one of the buttons. I thought they are there to allow me to enable/disable the sound, but they also both act as start buttons.

Didn't know a simple interface with a sound switch and a game start button can be designed this badly.

notpushkin26 days ago

I think the easiest way to fix would be to add a colon, so that you see you have to pick an option:

    Click to start:
    [sound on] [sound off]
medstrom25 days ago

Even better:

    [Start with sound] [Start without sound]
sublinear25 days ago

100% this. Buttons represent verbs.

+1
notpushkin23 days ago
kqr25 days ago

Or have the "click to start" text cliclable and start the game with sound. Anyone who wants it muted will make sure to first click the mute symbol and then the ambiguity resolves itself anyway.

wruza25 days ago

MathDoku does that and I hate it, because sometimes cookies expire and it plays loud music in the middle of the night when I start it. What's wrong with

  [  CLICK TO START  ]
  [x] Allow sound
Keep it simple
+1
kqr25 days ago
nycdatasci25 days ago

Who else is missing the forest for the trees? It turns out you have to focus on the merit of the contribution instead of inconsequential UI design optimization.

Didn’t know a simple demo (with disclaimers) from someone who is clearly doing something novel could be commented on this badly.

Arisaka125 days ago

I'd argue that if it confuses the user it's not inconsequential. And also, something can be both innovative and at the same time have room for improvement. Companies are literally chasing down user feedback.

A user's feedback is one of the best things that can ever happen to your program, the worst is to never ever get used by anyone, and the second worse is to have the users walk away with no idea why.

Thorrez25 days ago

>inconsequential UI design optimization

I certainly was confused and had a hard time starting it. If a significant amount of people can't even figure out how to start the game, the problem isn't inconsequential.

nycdatasci25 days ago

I agree with you, but this is distracting from the merits of the demo. Also, this is currently #2 on the front page so clearly many people are able to navigate the demo UI, even if it is suboptimal.

wruza25 days ago

I decided to leave only a secondary comment at the bottom of the thread for the same reason as yours and still got 14 ups (i.e. thanks) in a short time before this branch bubbled up. People definitely get confused and that's worth talking about before the merits of the demo, cause you have to run it somehow. I almost left too thinking it's broken, hugged or something. It is distracting and we'll live through it :)

ikari_pl25 days ago

maybe the bots won't know either

iopq25 days ago

I couldn't get it started for a while because I clicked start to start like it says on the tin

ghnws25 days ago

There is bad ui and then there is such bad ui that you lose focus on the actual thing and just wonder how an ui can be so bad. This is the latter.

ryanjshaw25 days ago

> inconsequential UI design optimization

I tapped "click to start" on my phone a few times, saw nothing happened and assumed it didn't work on mobile and tapped back to come read the comments. I am neuroatypical, though, maybe I don't count as human.

littlestymaar25 days ago

> I tapped "click to start" on my phone a few times, saw nothing happened and assumed it didn't work on mobile

Same reaction here.

JayNitram25 days ago

Agreed, I really like this demo, seems like a fun concept that adds some sparkle to a typically mundane thing.

Getting so pedantic about a minor point seems like it does more to stifle creativity and innovation and that it does to help.

SuchAnonMuchWow25 days ago

Twist: the real capcha is detecting if the user first press on "click to start"

kfarr26 days ago

Yeah it doesn't even need the option IMHO, I don't think sound is needed here...

ghnws25 days ago

Doom without sound is not doom. Sound is absolutely needed

taneq25 days ago

E1M1 is absolutely a part of the experience.

Carlseymanh25 days ago

If I were you I'd change my name into Hypercube only

robofanatic25 days ago

Human Intelligence eventually figures it out, no matter how bad the interface is.

burrish25 days ago

skill issue, literally filtered by two buttons on the screen

TeMPOraL25 days ago

You mean the buttons are the real CAPTCHA?

burrish25 days ago

That's a funny idea lmao

Kreutzer25 days ago

Not me.

colonwqbang25 days ago

> Don't take this too seriously, this is a little project for fun, if do you know how to code it's pretty easy to break the security of this.

As opposed to standard "click the traffic light" type captchas which are almost impossible for modern AI to break.

I think the doom captcha is probably more secure than standard captchas simply by virtue of its obscurity.

nottorp25 days ago

> which are almost impossible for modern AI to break.

... and for humans, sometimes :)

"Standard" captchas sometimes also bring up major philosophical questions like "what is a bicycle?".

airtonix26 days ago

just spam click... autowin.

diimdeep25 days ago

[flagged]