2. Oyunun Server Taraflı Gereksinimleri
• Artan kullanıcı sayısına destek vermek
• Gerektiğinde sistemin alt yapısının
ölçeklenebilmesi
• Herhangi bir sistem çöküşünde hızlı bir şekilde
sistemi kaldırabilme.
• Alt yapı ölçeklemesini hızlı bir şekilde
yapabilmek.
• Performanslı sistem kurmak ve olabildiğince
ucuza mal etmek.
3. Uygulamanın Çalışma Prensibi
• Service tabanlı teknoloji ile iletişim sağlanır.
• Veriler veritabanında saklanır.
• Client herhangi bir veri için request te
bulunur.
• Oyun durumu tek bir merkezden yönetilebilir.
Dezavantajları
• Server istediği zaman client tarafına veri
süremez.
4. Client Uygulamadaki Gereksinimler
• Oyun durumunun sunucu tarafına
kaydedilmesi ve gerektiğinde çekilmesi(sahib
olunan bina ve survivor bilgisi gibi).
• Server tarafına kaydedilen olayların takip
edilmesi(bina inşasının bitmesi gibi)
• Ve diğer kullanıcılar ile etkileşimin sağlanması.
5. Client Uygulamadaki Zorluklar.
• Server tarafında deterministic olmayan
olayları takip edebilmek(işte bu zor)
Örnek
• Arkadaşın oyna girişinin tesbiti.
• Friend requestinin tesbiti.
• Not veya gift bırakılmasının tesbiti.
• Campının visit edildiğinin tesbiti. Vb…
6. Client Uygulamadaki Zorluklar.
• Bu bilgilerin tesbiti için sunucu tarafına belli
aralıklarla request gönderilir.
• Kullanıcı hiçbir şey yapmadığında bile
requestler gönderilir.
• Sonuç olarak app server ve database servera
yük biner.
7. Server Teknolojileri
Veritabanı
• RDBMS (mssql server,mysql,oracle ..)
• Key-Value document oriented
db(Mongodb,redis,membase ..)
Cache sistemi
• Memcached
Servis Sunucusu(App Server)
IIS,apache,node.js ..
8. Server Teknolojileri
İşletim sistemi (os)
• Windows server ,linux varyasyonları(red hat
debian ,ubuntu)
Servis Teknolojileri
• Asp.NET ,php,ruby on rail ..
Load Balancer
HAProxy …
9. Case Study(http://www.wooga.com)
• Sosyal oyun geliştirici firması.
Başlıca oyunları
• Diamond Dash, Magic Land, Monster World,
Bubble Island
• Kullandıkları teknolojiler ve karşılaştıkları
sorunlarla ilgili sunumlar bulunmakta .
• http://www.slideshare.net/wooga/tag/backen
d
10. Case study
http://code.zynga.com/2011/07/building-a-scalable-game-server/
• FarmVille 2009 da çıkardıklarında verilerini
key-value şeklinde memcache de tutmaya karar
veriyorlar.
• Memcache verileri ramde tutuyor ,persistent data için
mysql kullanılıyor.
• Okuma hızı yüksek olasına karşın yazmada performans
sıkıntısı oluyor.
• Sonrasında memcache Api+persistence data
birleşminden membase oluşturuluyor ve kullanılmaya
başlanıyor.
• İlk başta Amazon web service kullanan Zynga sonra
kendi cloud sitemini geliştiriyor(ZCloud)
12. Dedicated Server Hosting
Avantajları.
• Bütün sistem kaynaklarını kullanabilme .
• Bir server üstünde istenilen servisin çalıştırılabilmesi.
DezAvantajları
• Sistem yönetimin iyi yapılması gerekir.
• Uygulamanın büyümesiyle yeni server kiralanması gerekir.
• Sistemi büyütmek zaman alır.
• Sistem üzerindeki lisanlı ürünleri satın alınması gerekir.
• Bütün kurulumlar sistemi alana aittir.
13. Cloud Hosting
Avantajları
• Server ölçeklemesi kolay.
• Kısa zamanda sistemin büyütülebilmesi.
• Yazılım lisanslama yapılmaz talep edilen ürünlere
göre fiyat belirlenir.
• Fail durumlarda hızlı sistem kaldırabilme.
Dez Avantajları
• Daha az esneklik.
• Yüksek fiyat