16
Ölçeklenebilir Oyun Yapısı

Ölçeklenebilir Oyun Yapısı

Embed Size (px)

DESCRIPTION

Ölçeklenebilir oyun sistemi hakkında hazırlamış olduğum bir sunumum . http://www.murat-cakal.com/

Citation preview

Page 1: Ölçeklenebilir Oyun Yapısı

Ölçeklenebilir Oyun Yapısı

Page 2: Ö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.

Page 3: Ölçeklenebilir Oyun Yapısı

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.

Page 4: Ölçeklenebilir Oyun Yapısı

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ı.

Page 5: Ölçeklenebilir Oyun Yapısı

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…

Page 6: Ölçeklenebilir Oyun Yapısı

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.

Page 7: Ölçeklenebilir Oyun Yapısı

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 ..

Page 8: Ölçeklenebilir Oyun Yapısı

Server Teknolojileri

İşletim sistemi (os)• Windows server ,linux varyasyonları(red hat

debian ,ubuntu)Servis Teknolojileri• Asp.NET ,php,ruby on rail ..Load BalancerHAProxy …

Page 9: Ölçeklenebilir Oyun Yapısı

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

Page 10: Ölçeklenebilir Oyun Yapısı

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)

Page 11: Ölçeklenebilir Oyun Yapısı

Server Hosting

• Dedicated Server • Cloud Hosting

Page 12: Ölçeklenebilir Oyun Yapısı

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.

Page 13: Ölçeklenebilir Oyun Yapısı

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

Page 14: Ölçeklenebilir Oyun Yapısı

Başlıca Cloud Hosting Servisleri

• Amazon EC2• Windows Azure• Google App Engine

Page 15: Ölçeklenebilir Oyun Yapısı

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/

Page 16: Ölçeklenebilir Oyun Yapısı

Teşekkürler