DOOM CAPTCHA
(doom-captcha.vercel.app)- DOOM CAPTCHA adalah CAPTCHA eksperimental bernuansa edukasi dan hiburan yang membuat pengguna memainkan DOOM® secara langsung untuk membuktikan bahwa mereka manusia
- Implementasi intinya mengompilasi port Doom minimal ke WebAssembly dengan
Emscripten, lalu menghubungkan game loopCdengan UIJavaScript - Status game yang dibutuhkan untuk penilaian CAPTCHA, seperti pemain dibuat/tewas dan musuh dibunuh, diteruskan ke UI melalui callback JavaScript
- Opsi eksekusi default diatur ke
-skill 5,-fast,-warp e1m1,-nomenu, sehingga pemain langsung masuk ke pertempuran sulit tanpa menu - Untuk penggunaan yang sah, proyek ini disesuaikan agar kompatibel dengan shareware
waddoom1.wad, dan tersedia tautan ke kode sumber serta hasil pembuatan UI v0
Struktur menjalankan Doom sebagai CAPTCHA
- DOOM CAPTCHA adalah CAPTCHA yang membuat pengguna memainkan DOOM® untuk membuktikan bahwa mereka manusia
- Implementasinya menggunakan
Emscriptenuntuk mengompilasi port Doom minimal keWebAssembly - Game loop berbasis
Cg_game.cdan UI CAPTCHA berbasisJavaScriptdisusun agar dapat saling bertukar status - Titik awalnya adalah port Doom minimal berbasis
SDL, yang dapat dikompilasi secara efisien keWebAssembly - Untuk penggunaan yang sah, build disesuaikan agar kompatibel dengan
doom1.wad, yaituwadversi shareware
Perubahan game yang disesuaikan untuk CAPTCHA
-
Menu dan penanganan respawn
-
Event game yang diteruskan ke UI
- UI CAPTCHA menerima status game melalui callback JavaScript untuk digunakan dalam alur penilaian
onPlayerBorn: dipanggil saat pemain dibuat atau hidup kembalionPlayerKilled: dipanggil saat pemain mationEnemyKilled: dipanggil saat pemain utama membunuh musuh
-
Tingkat kesulitan eksekusi default
- Flag eksekusi default di
d_main.cdiubah agar situasi sejak awal menjadi lebih sulit -skill 5: mengatur tingkat kesulitan ke"Nightmare!"-fast: membuat game menjadi lebih sulit-warp e1m1: memulai game di titik yang penuh aksi-nomenu: mencegah pemain membuka menu utama
- Flag eksekusi default di
Sumber dan ketentuan penggunaan
- Tersedia hasil pembuatan UI v0 dan kode sumber
- Proyek ini didasarkan pada versi DOOM® shareware yang dirilis untuk penggunaan nonkomersial, dan DOOM® adalah merek dagang terdaftar milik id Software LLC
1 komentar
Komentar Hacker News
Saya mencoba melakukannya dengan cara yang dimaksudkan, tapi terlalu sulit; ternyata bisa menyelesaikannya dengan trik dengan tetap berada di titik awal dan hanya menembaki musuh yang muncul dari kanan
Di game-game ini, akurasi pistol luar biasa bagus, jadi kamu bisa menembak musuh dari jauh beberapa kali hingga mati, sementara musuh di sini memakai shotgun, yang sangat tidak efektif pada jarak jauh. Game ini mensimulasikan sebaran peluru shotgun secara tidak realistis terlalu lebar, sehingga meskipun musuh yang jauh membidik dengan tepat, damage-nya sangat kecil
Dulu saat bermain di LAN NetWare kampus, saya juga bisa mengalahkan orang-orang yang memakai senjata lebih kuat tapi kurang akurat hanya dengan menjaga jarak. Biasanya shotgun atau double-barrel shotgun di versi berikutnya, dan semua orang menganggap itu yang paling memuaskan
Ini efektif sampai ada yang mendekat dari belakang, dan kalau setelah mati kamu respawn di posisi yang bagus, kamu bisa segera mencari orang itu dan balas dendam dengan pistol. Bahkan melawan rocket launcher pun bisa, selama tidak terkena langsung atau tidak berada di tempat di mana damage ledakan yang meleset mudah merusak rencana
Kalau memakai istilah lama, ini adalah metode yang efektif di banyak game sejenis DOOM dan penerusnya. Di HL2 pun pistol dasar bisa ditembakkan tanpa batas selama tombol tembak ditekan, dan tidak punya jeda tembakan minimum seperti senjata lain, jadi cukup ampuh
Selain itu, karena hanya memakai keyboard, tombol panah kiri/kanan memutar karakter; di first-person shooter modern kita terbiasa memakai tombol itu untuk bergerak ke samping dan memakai mouse untuk berputar, jadi refleks jadi kacau
Kemampuan teknis +100, usability -100. Untuk nostalgia +10, dan saya juga mendapat kesadaran diri bahwa sekarang saya sudah tidak bisa bermain game
Membuat level ini dimulai hanya dengan pistol, dan kelihatannya pada tingkat kesulitan Ultra-Violence atau Nightmare, sama saja seperti berharap pemain mati ditembak
Kalau implementasi ini mendukung WASD, yang sekarang sudah jadi standar, dan memungkinkan menembak dengan tombol kiri mouse seperti aslinya, membuktikan bahwa saya manusia akan jauh lebih mudah
Ini level yang sulit, dan kalau ingatan saya benar, salah satu level tersembunyi. Rasanya seperti
-fastaktif, dan karena tidak bisa bergerak ke samping, jadi jauh lebih sulit. Tapi tetap sangat lucuDengan cara lama, menahan Alt memungkinkan bergerak ke samping
Di lingkungan saya, suaranya terdengar anehnya terlalu tinggi, entah kenapa. Untuk pengalaman absurd seperti ini, itu cukup cocok jadi bukan masalah besar
Meski begitu, belakangan ini saya memang cukup banyak memainkan Doom klasik
Monsternya terlalu banyak, jadi harus mencoba 3–4 kali. Benar-benar terasa seperti CAPTCHA
Monster macam apa yang tidak memberi WASD, bahkan setidaknya Ctrl untuk menembak pun tidak? Tapi tetap CAPTCHA yang keren
Setiap kali saya menyelesaikan CAPTCHA untuk login ke konsol AWS, saya selalu berpikir bahwa target yang ingin dicegah oleh ini bisa dengan mudah mengotomatiskannya, sementara sebagian besar pengguna justru menderita karena “fitur” ini
Beberapa model open source bisa menyelesaikannya bahkan tanpa gatekeeping “AI safety” semacam itu
Apple pernah mengusulkan solusi CAPTCHA[1], dan saya menunggu itu distandardisasi dan dipakai luas
[1] https://support.apple.com/en-us/102591
Ini jelas tidak lebih baik untuk privasi, dan memberi Apple lebih banyak kendali. Saya lebih memilih menghabiskan 3 detik lagi untuk CAPTCHA
Setelah membaca kalimat itu, saya berhenti membaca dokumen dukungan Apple
Satu trivia: para pembuat Doom memainkannya sendiri untuk memastikan setiap level bisa diselesaikan meski dimulai hanya dengan pistol dan 50 peluru
Memberi kredit kepada pembuat Doom Captcha asli di repositori GitHub adalah hal yang benar. Ekspektasi saya terhadap industri perangkat lunak secara umum sedang berada di titik terendah sepanjang masa, jadi itu menyenangkan untuk dilihat
Versi asli beberapa tahun lalu ada di sini
https://vivirenremoto.github.io/doomcaptcha
https://github.com/vivirenremoto/doomcaptcha
Ini sulit. Sepertinya saya bukan manusia
Sudah terlalu lama sejak saya bermain Doom, dan tanpa gerakan ke samping hampir mustahil
Ini dibuat dengan asisten AI Vercel, v0
Tautan chat-nya di sini: https://v0.dev/chat/4X85A52Dzde?b=b_tOXbbZzZPgT&f=0
Kedengarannya mungkin mengesankan, tetapi secara fungsional tidak jauh berbeda dari desainer UI drag-and-drop seperti winforms, selain menambahkan interaksi kecil seperti tombol yang menampilkan “loading” selama beberapa detik. Pendahulunya, Visual Basic, juga sudah ada pada tahun 90-an
Meski begitu, chat itu setelah beberapa saat jadi menyakitkan untuk dibaca. Intinya seperti “ratakan teks di dalam tombol ke tengah”, “itu belum di tengah, jadikan tengah”, “tolong ratakan teksnya ke tengah”
Repositori yang berisi sisa source ada di sini: https://github.com/rauchg/doom-captcha
Doom juga harus dimodifikasi untuk beberapa penyesuaian, seperti melewati menu dan menambahkan callback yang diperlukan