Sunucu karar verir, istemci çizer
Yeteneğin sonucunu istemcide tahmin etmemek bir performans hatası gibi görünüyor. Değil — MMO'da hile yapılamamasının tek yolu bu.
Çoğu oyun motoru sana şunu öğretir: istemci tahmin etsin, sunucu doğrulasın. Tuşa bastığın an efekt oynasın, hasar sayısı uçsun, sunucu arkadan onaylasın. Böylece oyun “tepkisel” hissettirir.
ERG’de bu yok. Tuşa bastığında hiçbir şey olmuyor — ta ki sunucu ne olduğunu söyleyene kadar.
Neden
MMO’da bir yeteneğin sonucu tek bir sayı değil. Hedefin hâlâ menzilde mi, üzerinde hangi aura var, o sırada başka biri ona kalkan attı mı, kritik geldi mi, hedefin direnci ne — bunların hepsi aynı anda ve tek bir otorite tarafından çözülmek zorunda.
İstemciye “sen tahmin et, ben düzeltirim” dersen iki şey oluyor:
- Düzeltme çirkin. Tahmin tutmadığında ekranda gördüğün şey geri alınıyor. Tek oyunculu oyunda kimse fark etmez; 25 kişilik bir savaşta sürekli oluyor.
- Tahmin eden istemci güvenilmez istemcidir. Hesabı yapabilen istemci, hesabı yalan söyleyebilen istemcidir. Sunucu her şeyi baştan hesaplayacaksa istemcinin hesabı zaten çöp; hesaplamayacaksa hile kapısı açık.
Bedeli
Gecikme. Tuş ile efekt arasında bir gidiş-dönüş var. İstanbul’dan İstanbul’a ~20 ms, Frankfurt’tan ~50 ms.
Bunu gizlemenin yolu tahmin değil, kabul. Tuşa bastığında istemci sonucu uydurmuyor ama boş da durmuyor: tuş basılı görünüyor, cooldown karartması başlıyor, cast bar doluyor. Bunların hiçbiri sonuç iddia etmiyor — sadece “isteğin alındı” diyor. Sonuç geldiğinde geri alınacak bir şey olmuyor, çünkü hiçbir şey iddia edilmemişti.
Karar #2: Yetenek sonuçları istemcide asla tahmin edilmez.
Aynı kural konumda da geçerli
Karakterinin X-Y konumu sunucuda yaşıyor, milimetre cinsinden, düz bir düzlemde. Godot’un fizik motoru bu konuma dokunmuyor. İstemcinin yaptığı tek şey: sunucunun verdiği X-Y’yi alıp, zemine dikey ışın atarak Z’yi bulmak ve karakteri oraya çizmek.
Kulağa aşırı katı geliyor. Ama alternatifi şu: istemcinin fizik motoru konumu belirlerse, o fizik motorunu değiştiren kişi nereye isterse oraya gider.
Bu kararların ortak yanı şu: hiçbiri oyunu daha eğlenceli yapmıyor. Sadece oyunun on yıl sonra hâlâ oynanabilir olmasını sağlıyor. Bir MMO’da hile yaygınlaşırsa oyun ölür — grafik ne kadar iyi olursa olsun.