19 Mart 2010 Cuma

multiplayer oyun server client mimarisi

Birçok oyun artık internet üzerinden veya LAN ağı kullanılarak oynanabiliyor .Oyunların multiplayer olarak oynanabilmesi için bilgisayarlara yüklü olan programların birbiri ile haberleşebilmesi ve durumlarını birbirine iletmesi gerekiyor .Bilgisayarların birbiri arasında haberleşmesi için genel olarak iki tür sistemden bahsedebiliriz. Bunlar Peer to Peer ve server/client mimarisi .
Peer to Peer ağları her bilgisayarın birbiri ile direkt haberleşebildiği ve oyunun seyrinin her bilgisayar da hesaplanması gereken bir network yapısı .












Peer to peer networkte bilgisayarların birbiri ile haberleşmesi ve kontrolu server client mimarisine göre hızlı ve kolay olmasına karşın sistem güvenliğini sağlamak daha zor .Çünkü clientler arasındaki iletişim server üzerinden olmakta .


Asıl konumuz Server client ilişkisi .Oyunlarda sistemin bir bütün olarak bir elden çalışabilmesi için iyi bir yöntem diyebiliriz .Aslında bu mimaride coğu işi server yapar .Clientler yapılan girişleri servera iletmekle ve sonuçlarını erkanda göstermekle mesuldurlar .Yani kısacası oyunda kullandığımız klavye ve fare girişlerini servera iletir ve kendisine dönen cevapları işler .

Server ise oyunun seyrini belirler bütün hesaplamalar ,yapay zeka algoritmaları ,fiziksel hesaplamaları ve clientlerden gelen girişleri oyuna ilave eder ve durumu clientlerine bildirir .




Serverın görevlerinden kısaca bahsedersek .

-fiziksel hesaplamalar
-yapayzeka algoritmaları
-çarpışma testleri
-iletişimi sağlama
Tabi bu işleri gerçekleştirmek için ve sistem performansını artırmak için bir çok ileri seviye algoritmalardan faydalanmak gerekiyor .


Son olarak server ve client ilşkisini gösteren kaba kodu ekliyorum ..