Multiplayer mimarisi
- Oyun Geliştirme kursu
- İleri seviye
- Ders 13/71
- 4 dk
Authoritative server ve client-server mimarisini öğrenirsin.
Multiplayer Mimarisi ve Authoritative Server
Çok oyunculu (multiplayer) oyunlarda en kritik tasarım kararı mimaridir. Hileleri engellemek ve oyun durumunun senkron kalmasını sağlamak için Authoritative Server (yetkili sunucu) yaklaşımı tercih edilir.
// Istemciler sadece girdi gonderir
// Sunucu carpismayi ve cani dogrulayip sonucu bildirir
if (isServer) {
ApplyDamage(10);
}Bu modelde istemciler (client) sadece girdi ve tuş vuruşlarını gönderir; can puanı, mermi çarpışmaları ve skor hesaplamaları yalnızca sunucuda işletilir.
Client-Server ve Netcode Katmanı
Netcode, ağ üzerinden veri paketlerinin (TCP veya UDP) gönderilmesini, kayıpların telafi edilmesini ve oyun nesnelerinin senkronizasyonunu yöneten kod katmanıdır.
// Netcode istemci ile sunucu arasindaki paket akisini yonetir
public void SendInputToServer(Vector2 moveInput) {
// Paket paketleme ve iletim
}Peer-to-Peer (P2P) mimaride oyuncular doğrudan birbirine bağlanırken, Client-Server modelinde tüm iletişim merkezi bir sunucu üzerinden akar.
Uygulama Yetkili sunucu mimarisini başlat
Bir Start metodu tanımla. İçinde konsola "Sunucu yetkili mimari aktif" metnini Debug.Log ile yazdır.
Başlangıç kodu
using UnityEngine;
public class NetworkManagerSimple : MonoBehaviour
{
// Start icinde sunucu yetkisi bildirimini yazdir
}Örnek çözüm
using UnityEngine;
public class NetworkManagerSimple : MonoBehaviour
{
void Start()
{
Debug.Log("Sunucu yetkili mimari aktif");
}
}Beklenen çıktı
Sunucu yetkili mimari aktif
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Çok oyunculu bir oyunda oyuncuların hile yapmasını engellemek için oyun mantığı nerede yürütülmelidir?
- Yalnızca yerel sabit disk önbelleğinde
- Yetkili Sunucu (Authoritative Server) üzerinde Doğru cevap
- Oyuncunun yerel istemcisindeki grafik kartında (GPU)
- Rastgele seçilen bir diğer oyuncunun bilgisayarında
Açıklama: Yetkili sunucu (Authoritative Server), tüm oyun durumunu merkezi olarak doğrulayarak istemcilerin verileri tahrif etmesini önler.
2 Sunucu kontrolü
if (____) { ProcessMovement(); }
if (isServer) { ProcessMovement(); }
Açıklama: Authoritative server mantığında kritik oyun mantığı 'isServer' kontrolü ile yalnızca sunucuda çalıştırılır.
3 Multiplayer mimari kavramları
| Kavram | Anlamı |
|---|---|
Authoritative Server |
Oyun durumunu kesin belirleyen sunucu |
Client |
Girdi gönderen, ekranı çizen taraf |
Netcode |
Ağ paketleri ve senkronizasyon katmanı |
Peer-to-Peer |
Sunucusuz oyuncular arası model |