DOOM CAPTCHA
(doom-captcha.vercel.app)- DOOM CAPTCHA एक CAPTCHA है जो इंसान होने का प्रमाण देने के लिए आपको DOOM® खुद खेलने को कहता है; यह शैक्षिक और एंटरटेनमेंट प्रकृति का एक experimental project है
- इसका core implementation
Emscriptenके जरिए एक minimal Doom port को WebAssembly में compile करता है, औरCgame loop कोJavaScriptUI से जोड़ता है - CAPTCHA verification के लिए जरूरी game states, जैसे player spawn/death और enemy kills, JavaScript callbacks के जरिए UI तक भेजे जाते हैं
- default run options
-skill 5,-fast,-warp e1m1,-nomenuसेट हैं, जिससे menu के बिना सीधे कठिन combat शुरू हो जाता है - legal use के लिए इसे shareware
wadयानीdoom1.wadके साथ compatible बनाया गया है, और source code व v0 UI generation link देखे जा सकते हैं
Doom को CAPTCHA के रूप में चलाने की संरचना
- DOOM CAPTCHA ऐसा CAPTCHA है जिसमें user DOOM® खेलकर अपने human होने का प्रमाण देता है
- implementation में
Emscriptenका उपयोग करके minimal Doom port कोWebAssemblyमें compile किया गया है C-based game loopg_game.cऔरJavaScript-based CAPTCHA UI को इस तरह बनाया गया है कि वे आपस में state भेज और प्राप्त कर सकें- starting point
SDL-based minimal Doom port है, जिसेWebAssemblyमें efficiently compile किया जा सकता है - legal use के लिए build को shareware version
wadयानीdoom1.wadके साथ compatible बनाया गया है
CAPTCHA के लिए किए गए game changes
-
Menu और respawn handling
-
UI को भेजे जाने वाले game events
- CAPTCHA UI JavaScript callbacks के जरिए game state लेकर verification flow में उपयोग करता है
onPlayerBorn: player के spawn या respawn होने पर call होता हैonPlayerKilled: player की death पर call होता हैonEnemyKilled: main player द्वारा enemy kill करने पर call होता है
-
Default run difficulty
d_main.cके default run flags बदलकर शुरुआत से ही स्थिति को और कठिन बनाया गया है-skill 5: difficulty को"Nightmare!"पर set करता है-fast: game को और कठिन बनाता है-warp e1m1: game को action वाले point से शुरू करता है-nomenu: player को main menu खोलने से रोकता है
Source और use conditions
- v0 UI generation result और source code देखे जा सकते हैं
- यह project non-commercial use के लिए जारी DOOM® shareware version पर आधारित है, और DOOM® id Software LLC का registered trademark है
1 टिप्पणियां
Hacker News की राय
मैंने इसे इरादे के मुताबिक खेलने की कोशिश की, लेकिन यह बहुत कठिन था, और शुरुआती जगह पर टिके रहकर दाईं ओर से आने वाले दुश्मनों को मारते हुए जुगाड़ से क्लियर करना संभव था
इन गेम्स में पिस्तौल की accuracy बेहिसाब अच्छी होती है, इसलिए दूर से कुछ गोलियाँ चलाकर दुश्मनों को मारा जा सकता है, और यहाँ दुश्मन shotgun चलाते हैं, जो लंबी दूरी पर बहुत अप्रभावी है। गेम shotgun spread को अवास्तविक रूप से बहुत चौड़ा simulate करता है, इसलिए दूर का दुश्मन सही निशाना लगाए तब भी damage बहुत कम होता है।
पहले जब मैं कॉलेज के NetWare LAN पर खेलता था, तब भी सिर्फ दूरी बनाए रखकर मैं उन लोगों को हरा देता था जिनके पास ज़्यादा ताकतवर लेकिन कम सटीक हथियार होते थे। आमतौर पर shotgun या बाद के versions की double-barrel shotgun होती थी, और सबको वही सबसे मज़ेदार लगती थी।
जब तक कोई पीछे से पास न आ जाए, यह अच्छी तरह काम करता है, और मरने के बाद अगर ठीक-ठाक जगह respawn हो जाएँ तो उस आदमी को जल्दी ढूँढ़कर पिस्तौल से बदला भी लिया जा सकता है। rocket launcher के खिलाफ भी यह काम करता है, बस सीधी hit न लगे या आप ऐसी जगह न खड़े हों जहाँ चूके हुए विस्फोट का damage आपकी योजना बिगाड़ दे।
पुराने अंदाज़ में कहें तो यह बहुत से DOOM-जैसे गेम्स और उनके उत्तराधिकारियों में कारगर तरीका है। HL2 में भी default pistol trigger दबाए रखने पर बिना किसी सीमा के चलती है, और दूसरे हथियारों की तरह minimum fire interval नहीं है, इसलिए वह भी बढ़िया काम करती है
ऊपर से यह सिर्फ keyboard-only है, इसलिए left/right arrow character को घुमाते हैं; modern first-person shooters में हम left/right movement और mouse से turning के आदी हैं, इसलिए reflex बिगड़ जाते हैं
तकनीकी क्षमता +100, usability -100। nostalgia trip के लिए +10, और अब यह आत्मबोध भी मिल गया कि मैं अब गेम्स में अच्छा नहीं रहा
इस level को सिर्फ पिस्तौल के साथ शुरू करवाना, और ऊपर से दिखने में Ultra-Violence या Nightmare difficulty पर रखना, मतलब सीधे मरने की दुआ करना है
अगर इस implementation में अब standard बन चुका WASD support होता, और original की तरह left mouse button से fire किया जा सकता, तो मेरे लिए यह साबित करना काफी आसान होता कि मैं इंसान हूँ
यह कठिन level है, और अगर मुझे सही याद है तो यह hidden levels में से एक है। ऐसा भी लगता है जैसे
-fastचालू हो, और strafing न कर पाने से यह और भी मुश्किल हो जाता है। फिर भी बहुत प्यारा हैपुराने तरीके से Alt दबाए रखने पर strafe किया जा सकता है।
मेरे environment में sound अजीब तरह से बहुत ऊँची pitch में आ रहा था, पता नहीं क्यों। इस बेतुके अनुभव के साथ वह बहुत बड़ा मसला भी नहीं लगा
हाँ, हाल में मैंने classic Doom काफी खेला है
monsters बहुत ज़्यादा हैं, इसलिए मुझे 3~4 बार कोशिश करनी पड़ी। सचमुच captcha जैसा लगा
कौन-सा राक्षस WASD भी नहीं देता, और कम से कम Ctrl fire भी नहीं देता? फिर भी बढ़िया captcha है
जब भी AWS console में लॉग इन करने के लिए captcha हल करना पड़ता है, मुझे यही लगता है कि जिन लोगों को यह रोकना चाहता है वे तो इसे आसानी से automate कर सकते हैं, जबकि ज़्यादातर users इस “feature” की वजह से परेशान होते हैं।
कुछ open source models तो ऐसी “AI safety” gatekeeping के बिना भी इसे हल कर सकते हैं।
Apple ने captcha का एक समाधान प्रस्तावित किया है[1], और मैं इंतज़ार कर रहा हूँ कि यह standardize होकर व्यापक रूप से इस्तेमाल हो।
[1] https://support.apple.com/en-us/102591
यह साफ़ तौर पर privacy के लिए बेहतर नहीं है, और Apple को और ज़्यादा control देता है। मैं तो captcha पर 3 सेकंड और लगा लूँगा
यह पंक्ति पढ़ते ही मैंने Apple support document पढ़ना बंद कर दिया
एक trivia: Doom के निर्माताओं ने खुद खेलकर यह सुनिश्चित किया था कि हर level को पिस्तौल और 50 गोलियों के साथ शुरू करके भी पूरा किया जा सके
GitHub repository में मूल Doom Captcha creator को credit देना सही काम था। आजकल पूरे software industry से उम्मीदें ऐतिहासिक न्यूनतम पर हैं, इसलिए यह देखकर अच्छा लगा।
कुछ साल पहले का original यहाँ है
https://vivirenremoto.github.io/doomcaptcha
https://github.com/vivirenremoto/doomcaptcha
यह मुश्किल है। शायद मैं इंसान नहीं हूँ।
Doom खेले बहुत समय हो गया, और strafe न हो तो यह लगभग असंभव है
यह Vercel के AI assistant v0 से बनाया गया था।
chat link यहाँ है: https://v0.dev/chat/4X85A52Dzde?b=b_tOXbbZzZPgT&f=0
यह प्रभावशाली लग सकता है, लेकिन कुछ सेकंड के लिए “loading” दिखाने वाले button जैसे मामूली interactions जोड़ने से आगे, functional रूप में यह winforms जैसे drag-and-drop UI designer से बहुत अलग नहीं है। उसका पूर्वज Visual Basic तो 90s में ही मौजूद था
फिर भी वह chat थोड़ी देर बाद पढ़ने में कष्टदायक हो जाती है। सार यही है: “button के अंदर text को center करो”, “यह center नहीं है, center करो”, “प्लीज़ text को center करो”
बाकी source वाला repository यहाँ है: https://github.com/rauchg/doom-captcha
menu skip करने और ज़रूरी callbacks जोड़ने जैसी कुछ adjustments के लिए Doom को भी modify करना पड़ा था