A DOOM®-based CAPTCHA for the web¹
The project works by leveraging Emscripten to compile a minimal port of Doom to WebAssembly and
enable intercommunication between the C-based game runloop and the JavaScript-based CAPTCHA UI.
Some extensions were made to the game to introduce relevant events needed for its usage
in the context of a CAPTCHA.
doom1.wad) for legal use-nomenu to skip the main menu and jump straight into the game (m_menu.c)-autoreborn to automatically rebirth the player after a 2s delay (m_player.c)onPlayerBorn when the player is born or rebornonPlayerKilled when the player is killedonEnemyKilled when the main player kills an enemy-skill 5 sets the difficulty to “Nightmare!”-fast makes it even harder-warp e1m1 jumpstarts the game to where the action is-nomenu doesn’t let the player trigger the main menubrew install emscripten does the trickdoom1.wad in the sdldoom-1.10 directory (Shareware version)build.sh
$DOOM_WAD_URLwatchexec -- ./build.sh to make the process automatic (install watchexec with brew install watchexec)vercel dev¹ for educational and entertainment purposes only
We use cookies
We use cookies to analyze traffic and improve your experience. You can accept or reject analytics cookies.