Upload
murat-cakal
View
315
Download
10
Embed Size (px)
DESCRIPTION
Ölçeklenebilir oyun sistemi hakkında hazırlamış olduğum bir sunumum . http://www.murat-cakal.com/
Citation preview
Ölçeklenebilir Oyun Yapısı
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.
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.
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ı.
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…
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.
Server Teknolojileri
Veritabanı • RDBMS (mssql server,mysql,oracle ..)• Key-Value document oriented
db(Mongodb,redis,membase ..)Cache sistemi• MemcachedServis Sunucusu(App Server)IIS,apache,node.js ..
Server Teknolojileri
İşletim sistemi (os)• Windows server ,linux varyasyonları(red hat
debian ,ubuntu)Servis Teknolojileri• Asp.NET ,php,ruby on rail ..Load BalancerHAProxy …
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/
backend
Case studyhttp://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)
Server Hosting
• Dedicated Server • Cloud Hosting
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.
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
Başlıca Cloud Hosting Servisleri
• Amazon EC2• Windows Azure• Google App Engine
Cloud Management Çözümleri
• Right Scale• Amazon EC2 , Google App Engine, …• http://www.rightscale.com/solutions/cloud-
computing-uses/social-gaming-applications.php
• Scalarium• http://www.scalarium.com/features/auto-
scaling/
Teşekkürler