FastAPI ve WebSocket ile Çok Oyunculu Zar Oyunu Yapımı
Dudo (cacho veya Perudo), Şili'de neredeyse her masada oynanır, blöfü ve stratejiyi birleştiren bir zar oyunu. Bir geliştirici arkadaşlarıyla online oynamak istedi, beğendiği İspanyolca versiyon bulamadı ve kendi versiyonunu yaptı: dudo.igna.cl (MIT lisanslı, GitHub'da açık kaynak).
Asıl zorluk gerçek zamanlı oyun durumunu tutmak. Her oda bellek içinde bir Game nesnesi, oyuncular, sıra, mevcut bahis, kurallar. İstemciler WebSocket üzerinden bağlanıyor, sunucu her şeyin kaynağı. Sunucu her bahisi doğruluyor ve her oyuncuya sadece görmesi gereken bilgiyi gönderiyor: rakibin zarları asla gösterilmiyor, sadece challenge anında ortaya çıkıyor.
Kurallar basit görünse de tuzak var. Aslar joker, ama siz as bahsine gireceğinizde değil. Normalden as bahisine geçilince miktar yarıya iniyor, aslardan normale dönerken iki katı artı bir oluyor. Bu tür kurallar test edilmeye değer, çünkü kırılması kolay.
Cep telefonu sinyal kaybettiğinde oyundan atılmak istemezsiniz. Her oyuncu anonim ama kalıcı bir kimlik alıyor, yeniden bağlanma için belirli bir zaman penceresi var. Bağlantı kesilse bile oyuncu geri dönebiliyor.
Proje MIT lisansı altında GitHub'da: kod, WebSocket yönetimi, durum senkronizasyonu ve reconnect mekanizmasını görmek isteyenler için örnek bir uygulamaya dönüştü.
0 yorum