Merhaba güzel bir aşamaya gelmişsiniz, adınıza çok sevindim. Tepki süresine bakarsak yaptığınız değişiklikler yalnızca istemci tarafında (yani sizin bilgisayarınızda) gerçekleşiyor ve bu değişiklikler sunucu tarafından görünüşe göre onaylanmıyor. Bu da başka istemcilerin bu geçici hareket hızını görmediği anlamına geliyor. Bu aşamaya kadar gelmeniz harika. (böyle olmalı)
Şuan videoda yaşanan durum client-side prediction (istemci tarafı tahmini) yada "client-side cheating" (istemci tarafı hile) olarak geçiyor. İstemci tarafında yapılan değişikliklerin sunucu tarafından
doğrulanmaması nedeniyle, bu değişiklikler geçici olarak görünür ve sonrasında sunucunun değerine tekrar back eder. Bu geçici olarak "
hızlanıyormuş gibi" görünümün hızla düzeltilmesini oyunun sunucu ile senkronizasyon sıklığını artırarak fixleyebilirsiniz, istemcinin ne sıklıkla sunucuyla iletişim kurduğunu artırmak daha fazla tetiklemek bunu muhtemelen çözecektir. Sonuçta yaptığınız işlem client-side prediction olduğundan ana amacıda oyuncu deneyimnini düzeltmeyi ve ağ gecikmelerinin olumsuz etkilerini azaltmaktır.
En önemli konu ise yapılan işlem bir sunucu doğrulamasıdır,
bir tam yetkili sunucu yetkilendirmesi değil. Bu nedenle bazı durumlar vardır ki sunucu taraflı doğrulamalar da istemci tarafından çok zorda olsa bypass edilebilir. Ancak bu kadar ileri düzeyde bir cheater'in kapınızı çalacağını düşünmüyorum. Yine bununlada uğraşmak isterseniz bu fix uyguladığınız değişkeninleri istemci tarafında ram kısmında şifreleyebilir, paketleri ve tüm ağ trafiğini şifreleyebilir ve paketlerin bütünlüğünü doğrulamak için checksumlar kullanabilirsiniz. Biraz daha işi sağlamlaştırmak istiyorsanız client-side anticheatlerde olduğu gibi sunucu tarafında da anti-tamper kullanabilirsiniz. Bunun için bazı hazır araçlar vardır ancak istediğiniz unofficial oyun sunucuyla kullanılabilir mi emin değilim.
- Sunucu dosyalarınızın bütünlüğünden emin olmak için AIDE kullanabilirsiniz, bildiğim kadarıyla işlettiğiniz unofficial sunucu bir linux tabanlı sunucuya sahip. Hem linux hemde windows based olarak Tripwire kullanabilirsiniz.
- Daha fazla kapsam istiyorum diyorsanız bir HIDS olarak OSSEC kullanabilirsiniz, AIDE den farklı olarak dosya bütünlüğü, log analizi, uyarı sistemleri ve yanıt yapısıyla çok daha güçlüdür.
- Oyuncularınıza servis verdiğiniz trafiği korumak için ise Snort'u yada Suricata'yı deneyebilirsiniz.
- Sunucu saldırılarından, otomatik saldırı ve kötü niyetli davranışlar için çözüm istiyorsanız Fail2Ban tercih edebilirsiniz.
En önemlisi de her ne yapıyor olursanız olun,
istemci dosyasındaki yürütülebilir dosyaların (dll, exe, bin vb) doğruluğunu ve bütünlüğünü hem oyuncularınız için hemde anti-virüs sağlayıcıları için sağlayın. Biz genel olarak EVCode kullanıyoruz fakat Kaspersky, Avast, MDefender gibi büyük sağlayıcıların whitelist programında olduğumuz için bu bizim için bir sorun teşkil etmiyor. Code Sign işinizi kolaylaştırır..
İyi çalışmalar dilerim.