Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Real-Time Oyun Geliştirme Süreci

Real-Time Oyun Geliştirme Süreci

Real-time oyun geliştirme sürecinin planlanması, geliştirme süreci, seçtiğimiz araçlar ve karşılaştığımız problemler.

Language: Turkish
Location: Online
Event Page: https://kommunity.com/bilge-adam-teknoloji/events/real-time-oyun-gelistirme-sureci

sercanuste

April 21, 2020
Tweet

More Decks by sercanuste

Other Decks in Programming

Transcript

  1. 2 Ajanda • Ben Kimim? • BilgeAdam Game Studio •

    Oyunlarımız • Case Study: Son İki
  2. 4 BilgeAdam Game Studio BilgeAdam Game Studio 2019 yılında BilgeAdam

    Bilişim Grubu bünyesinde kurulan oyun firmasıdır. Önceliği hyper-casual oyunlar olmakla birlikte bir çok kategoride oyun sunmayı hedeflemektedir.
  3. 5 Oyunlarımız Di Balls Refleks ve zamanlamaya dayalı, zaman ilerledikçe

    zorlaşan bir oyun. Hypercasual Son İki 2 oyuncunun 15 saniyelik turlarla bir önceki kelimenin son iki harfinden yeni bir kelime üretmesi ile ilerleyen bir oyun. Word Spacecraft Defender Uzayda ilerleyen bir gemiyi korumanın amaçlandığı bir oyun. Hypercasual
  4. 6 Case Study: Son İki Davet ve Rastgele Oyuncular hem

    birbirlerine davet göndererek hem de rastgele bir kullanıcı ile oyun oynayabilmeli. Performans Oyun süresi 15 saniye ile kısıtlı olduğu için tüm süreçte performans yüksek olmalı. Çok Oyunculu Oyunu aynı anda birçok oyuncunun oynaması hedefleniyor. Çevrimiçi Oyunların internet üzerinden oynanabilmesi bekleniyor. ƣ 2 oyuncunun 15 saniyelik turlarla bir önceki kelimenin son iki harfinden yeni bir kelime üretmesi ile ilerleyecek bir oyun geliştirilmesi hedeflenmektedir. Oyun internet üzerinden oynanacaktır. Hem Android hem de iOS platformu için geliştirilmesi beklenmektedir. Oyun içerisinde oyuncuya yardımcı olacak farklı jokerler bulunacaktır.
  5. 9 Real-Time ü Veriler anlık güncelleniyor. ü Cihazlar Firestore’a bağlanarak

    data senkronizasyonunu sağlayabiliyor. ü Firestore veride herhangi bir değişiklik olduğunda ilgili veriye bağlı cihazları bilgilendirebiliyor. NoSQL Kullandığın kadar öde ü Saklanan verinin boyutu, okuma, yazma, silme gibi farklı kalemlerde kullanım kadar ödeme yapılıyor.
  6. 10 Serverless ü Server ihtiyacı yok. ü Yoğunluk arttığında Google

    bizim için gerekli performans ayarlamalarını sağlıyor. Her işlem bir bağımsız bir endpoint ü Her işlem kendi kaynaklarını tüketiyor. Bu nedenle performans yüksek. Kullandığın kadar öde ü Tetikleme, CPU, RAM ve iletilen veri boyutuna göre kullanım kadar ödeme yapılıyor.
  7. 11 Test Süreci Hayat o kadar kolay değil J Cloud

    Function geç cevap veriyor. Oyun sırasında bağlantı kopuyor. Birkaç dakika sonra tekrar bağlantı sağlanıyor. Süre senkronizasyonunda sorun var.
  8. 12 Cold Start Ø Cloud Function’lar istek gelmediğinde uyku durumuna

    geçiyor. Bu sebeple kullanımın az olduğu anlarda tüm functionlar tekrar aktifleşiyor. Ø Aktifleşme süresi 10-15 saniyeyi bulabiliyor. Ø Function aktifleştikten birkaç saniye sonra tekrar uyku durumuna geçiyor. Çözüm ü Express.js ü Server J İşlemler uzun sürüyor. Ø Firestore SDK’sında tüm database işlemleri asenkron. Ancak bizim operasyonlarımızda asenkron olmayan ve birden fazla tablonun güncellenmesini gerektiren yapılar mevcut. Çözüm ü Batch
  9. 13 Raporlama Süreçleri Ø Hazır sorguları çalıştırabileceğimiz bir altyapı yok.

    Ø Rapordaki her satır (toplam sayı için bile) veritabanından okuma gerektirdiği için her satırın maliyeti hesaba yansıtılıyor. Örneğin; günlük oyun sayını bulmak istediğinizde, o gün 1500 var ise 1500 okuma işlemi ile bu sayıyı öğrenebilirsiniz. Çözüm ü Google Analytics »Near» Real-Time Ø Firestore tam anlamıyla gerçek zamanlı bir database değil. Bağlantı sırasında gecikme ve kopmalar yaşanabiliyor. Çözüm ü Publish/Subscribe Ø İletişim oluşturulan özel bir kanal ile sağlanır. Ø Mesaj kullanıcılara direk gönderilmez. Oluşturulan kanalda yayınlanır (publish). Ø Kanalı dinleyen kullanıcılar (subscriber) mesaja erişir ve gerekli işlemleri uygular.
  10. 14 Entegrasyon Kolaylığı ü Bir çok dil ve platform için

    SDK mevcut. 100ms latency ü Dünyanın her yerine en fazla 100ms gecikme garantisi veriyor. 99.999% uptime SLA ü Kesintinin yıllık 5.26 dakikanın üzerinde olmayacağını garanti ediyor.
  11. 15 Diğer Sorunlar Süre Senkronizasyonu Ø 15 saniye olması gereken

    hamle süresi farklı cihazlarda 20 saniye ya da 12 saniye gibi eksik ya da fazla görülebiliyor. Buna bağlı olarak kullanıcılar hamle süreleri henüz bitmeden süre bitti uyarısı ile karşılaşıyor. Çözüm ü Oyun ile ilgili her işlemde API üzerinde sunucu ve cihaz saati farkının kontrol edilmesi ve farkın cihaza bildirilmesi.