DOOM CAPTCHA
(doom-captcha.vercel.app)- DOOM CAPTCHA, insan olduğunu kanıtlamak için DOOM®'u bizzat oynatmaya zorlayan bir CAPTCHA; eğitim ve eğlence niteliği taşıyan deneysel bir proje
- Temel uygulama, minimal bir Doom portunu
Emscriptenile WebAssembly'e derleyipCoyun döngüsü ileJavaScriptarayüzünü birbirine bağlama yaklaşımına dayanıyor - CAPTCHA değerlendirmesi için gereken oyuncunun doğması, ölmesi ve düşman öldürmesi gibi oyun durumları JavaScript callback'leri üzerinden arayüze aktarılıyor
- Varsayılan çalıştırma seçenekleri
-skill 5,-fast,-warp e1m1,-nomenuolarak ayarlanmış; böylece menü olmadan doğrudan zorlu bir çatışmaya giriliyor - Yasal kullanım için shareware
wadolandoom1.wadile uyumlu olacak şekilde düzenlenmiş; ayrıca kaynak kodu ve v0 UI oluşturma bağlantısı görülebiliyor
Doom'u CAPTCHA olarak çalıştırmanın yapısı
- DOOM CAPTCHA, kullanıcının DOOM® oynayarak insan olduğunu kanıtladığı bir CAPTCHA
- Uygulama, minimal bir Doom portunu
EmscriptenkullanarakWebAssembly'e derleme yöntemiyle gerçekleştirilmiş Ctabanlı oyun döngüsü olang_game.cileJavaScripttabanlı CAPTCHA arayüzü, birbirleriyle durum alışverişi yapabilecek şekilde yapılandırılmış- Başlangıç noktası,
SDLtabanlı minimal bir Doom portu; bu yapıWebAssembly'e verimli biçimde derlenebiliyor - Yasal kullanım için build, shareware sürüm
wadolandoom1.wadile uyumlu olacak şekilde ayarlanmış
CAPTCHA'ya uygun oyun değişiklikleri
-
Menü ve yeniden doğma işlemleri
-
Arayüze aktarılan oyun olayları
- CAPTCHA arayüzü, oyun durumunu JavaScript callback'leri ile alıp değerlendirme akışında kullanıyor
onPlayerBorn: Oyuncu oluşturulduğunda veya yeniden doğduğunda çağrılıyoronPlayerKilled: Oyuncu öldüğünde çağrılıyoronEnemyKilled: Ana oyuncu bir düşmanı öldürdüğünde çağrılıyor
-
Varsayılan çalışma zorluğu
d_main.ciçindeki varsayılan çalıştırma bayrakları değiştirilerek başlangıçtan itibaren daha zor bir durum yaratılmış-skill 5: Zorluk seviyesini"Nightmare!"olarak ayarlıyor-fast: Oyunu daha zor hale getiriyor-warp e1m1: Oyunu aksiyonun bulunduğu bir noktadan başlatıyor-nomenu: Oyuncunun ana menüyü açmasını engelliyor
Kaynak ve kullanım koşulları
- v0 UI oluşturma sonucu ve kaynak kodu görülebilir
- Bu proje, ticari olmayan kullanım için yayımlanan DOOM® shareware sürümünü temel alıyor ve DOOM® id Software LLC'nin tescilli markasıdır
1 yorum
Hacker News yorumları
Amaçlanan şekilde denemeye çalıştım ama çok zordu; başlangıç noktasında kalıp sadece sağdan çıkan düşmanları vurarak hileli şekilde geçmek mümkündü
Bu oyunlarda tabanca isabet oranı saçma derecede iyidir; uzaktan birkaç el ateş ederek düşmanları öldürebilirsiniz. Buradaki düşmanlar pompalı tüfek kullanıyor ama uzun menzilde çok verimsizler. Oyun saçma derecede geniş bir saçma yayılımı simüle ettiği için, uzaktaki bir düşman tam nişan alsa bile verdiği hasar çok az olur.
Eskiden üniversitenin NetWare LAN’ında oynarken de sadece mesafeyi koruyarak daha güçlü ama daha az isabetli silahları olan insanları yenerdim. Genelde pompalı tüfek ya da sonraki sürümlerdeki çift namlulu pompalı tüfek olurdu; herkes de en tatmin edici silahın o olduğunu düşünürdü.
Biri arkadan yaklaşıp dibinize girmediği sürece iyi işler; öldükten sonra iyi bir yerde yeniden doğarsanız o kişiyi kısa sürede bulup tabancayla intikam alabilirsiniz. Roketatar karşısında da doğrudan isabet almadığınız ya da ıskalanan patlama hasarının planı kolayca bozacağı bir yerde bulunmadığınız sürece işe yarar.
Eski tabirle, pek çok DOOM tarzı oyun ve ardıllarında geçerli bir yöntemdir. HL2’de de temel tabanca, ateş düğmesine bastığınız kadar sınırsız ateş eder ve diğer silahlardaki gibi minimum atış aralığı olmadığı için iyi çalışır.
Üstelik yalnızca klavye kullanılıyor; sol/sağ oklar karakteri döndürüyor. Modern birinci şahıs nişancı oyunlarında bunları sağa sola hareket için kullanmaya, dönmeyi ise fareyle yapmaya alışık olduğumuzdan refleksler karışıyor.
Teknik beceri +100, kullanılabilirlik -100. Nostalji turuna +10; ayrıca artık oyun oynayamadığıma dair öz farkındalık da kazandım.
Bu bölüme sadece tabancayla başlatmak, üstüne de görünüşe göre Ultra-Violence ya da Nightmare zorluğunda yapmak, “vurulup öl” demek gibi.
Bu uygulama artık standart olan WASD’yi destekleseydi ve orijinaldeki gibi farenin sol tuşuyla ateş etmeye izin verseydi, insan olduğumu kanıtlamak epey kolay olurdu.
Zor bir bölüm ve yanlış hatırlamıyorsam gizli bölümlerden biri.
-fastaçıkmış gibi de hissettiriyor; sağa sola hareket edememek işi çok daha zorlaştırıyor. Yine de çok sevimli.Eski usulde Alt’a basılı tutarsanız sağa sola hareket edebilirsiniz.
Benim ortamımda ses garip şekilde yüksek perdeden geliyordu, neden bilmiyorum. Bu absürt deneyime yakıştığı için büyük sorun değil.
Gerçi son zamanlarda epey klasik Doom oynadım.
Çok fazla canavar vardı, 3-4 kez denemem gerekti. Gerçek bir captcha gibi.
Hangi canavar WASD bile vermez, en azından Ctrl ile ateş etmeyi de vermez? Yine de havalı captcha.
AWS konsoluna giriş yapmak için her captcha çözdüğümde, bundan kaçınması istenen tarafın bunu kolayca otomatikleştirebileceğini, çoğu kullanıcının ise bu “özellik” yüzünden acı çektiğini düşünüyorum.
Bazı açık kaynak modeller, böyle “AI safety” kapı bekçiliği olmadan da bunları çözebiliyor.
Apple bir captcha çözümü önermişti[1]; standartlaşıp yaygın kullanılmasını bekliyorum.
[1] https://support.apple.com/en-us/102591
Bu kesinlikle gizlilik açısından daha iyi değil ve Apple’a daha fazla kontrol veriyor. Captcha’ya 3 saniye daha harcamayı tercih ederim.
O cümleyi okuyunca Apple destek belgesini okumayı bıraktım.
Küçük bir bilgi: Doom’un yapımcıları, her bölümün yalnızca tabanca ve 50 mermi ile başlansa bile bitirilebildiğini bizzat oynayarak doğrulamıştı.
GitHub deposunda asıl Doom Captcha yapımcısına kredi verilmesi doğru olmuş. Bugünlerde yazılım sektörü geneline dair beklentilerim tarihî dip seviyede olduğu için bunu görmek güzeldi.
Birkaç yıl önceki orijinal burada:
https://vivirenremoto.github.io/doomcaptcha
https://github.com/vivirenremoto/doomcaptcha
Bu zor. Sanırım insan değilim.
Doom oynamayalı çok uzun zaman oldu ve sağa sola hareket olmadan neredeyse imkânsız.
Bu, Vercel’in yapay zeka asistanı v0 ile yapılmış.
Sohbet bağlantısı burada: https://v0.dev/chat/4X85A52Dzde?b=b_tOXbbZzZPgT&f=0
Etkileyici gelebilir ama birkaç saniye “loading” gösteren bir düğme gibi ufak etkileşimler eklemek dışında, işlevsel olarak winforms tarzı bir sürükle-bırak UI tasarımcısından pek farklı değil. Onun öncülü Visual Basic de 90’larda zaten vardı.
Yine de o sohbet bir süre sonra okunması zor bir hâl alıyor. Özetle akış “düğmenin içindeki metni ortala”, “ortada değil, ortaya al”, “lütfen metni ortala” gibi.
Kaynağın geri kalanının bulunduğu depo burada: https://github.com/rauchg/doom-captcha
Menüyü atlamak ve gerekli callback’leri eklemek gibi bazı ayarlamalar için Doom’u da değiştirmek gerekmiş.