Mobil Oyunların Üçüncü Parti İhtiyaçları ve Çözümleri✌️

Bünyamin Eymen Alagöz
Huawei Developers - Türkiye
7 min readJun 27, 2022
Mobil Oyun

Giriş

Selamlar herkese,mobil platformlar için oyun geliştirme aşamalarında geliştiricilerin bir çok üçüncü parti kütüphanelere ihtiyacı bulunmaktadır.Oyun geliştirmeye odaklanmış mobil oyun geliştiricinin bu ihtiyaçları bizzat kendisinin karşılaması, ⌛⌛⌛zaman faktörünün çok önemli olduğu mobil oyun sektöründe pek mantıklı olmayabilir.Bu yazımızda mobil oyunlarda gerekli her Huawei Mobil Servislerini, ihtiyaç-çözüm başlıklarında ele alacağız.Yardımcı kaynak linklerinde referans projenin linkine ulaşabilirsiniz.Keyifli okumalar diliyorum.

İhtiyaç:

Oyun geliştirici ,kullanıcıların kimlik bilgisini tutmak isteyebilir.Bu sebeple kullanıcı uygulamayı ilk açtığında kayıt olmalıdır.Kayıt olduktan sonra da uygulamayı her açtığında kaydolduğu kimlik bilgileriyle giriş yapmalıdır.

Çözüm💡 :

Bu ihtiyacımızı Huawei Mobil Servislerinden Auth Kit ile karşılayabiliriz.Bu servis sayesinde kullanıcının kendi e-maili ve telefonu numarası sayesinde kimlik doğrulaması sağlanabilir.

Bunun yanında çok sayıda üçünçü parti servisleriyle de kimlik doğrulama sağlanabilir;

  • WeChat
  • QQ
  • Weibo
  • Apple
  • Google
  • Facebook
  • Twitter
  • VK
AppGallery Auth Service

Eğer kullanıcı uygulamayı çok yeni kullandığı için,kayıt aşamasını rahat geçmesini istiyorsak.Konuk kullanıcı seçeneği de gayet makul bir seçenektir.Konuk kullanıcı seçeneğinde kullanıcıya sabit bir kimlik atanır.Sonrasında eğer kullanıcı kayıt olursa evvelden kimliğinde
depolanmış bilgileri kullanmaya devam edebilir.

Ayrıca oyun geliştirici kullanıcılar için kendi yazmış olduğu servisini kullanmak isterse de huawei auth kit sayesinde kendi servisini güvenli bir şekilde Huawei kitlerinden CloudDB ve Cloud Storage ile beraber kullanabilir.

Ayrıca da huawei account kit ile bu işlem çok pratik bir şekilde yapılabilmektedir.Eğer kullanıcınin App Gallery’de kaydı varsa, cihazına atanan HuaweiID ile tek bir dokunuşla uygulamalara giriş yapabilir.

Referans projemizde de bu işlemi Account Kit ile yapıyoruz.Bu sayede hiç bir şey yapmadan , otomatik bir şekilde uygulamamızın kimlik doğrulamasını yapabiliyoruz.

▼İhtiyaç:

Oyunu geliştiren ekip oyundan reklamlar ile para kazanmayı hedefliyor.

Çözüm💡 :

Oyundan para kazanmanın en çok tercih edilen yöntemi reklamlardır.
Oyunda reklam gösterilecek yerleri iyi belirlemek çok önemlidir.Zaten oyunun fikri gelişim aşamalarında reklam gösterimi her zaman gündemde olmalıdır,aksi halde reklamlardan gerekli verim alınamayabilir.Huawei Ads Kit ,reklamlarla ilgili bütün ihtiyaçlarımızı karşılıyor.

İlk olarak uygulama ilk açıldığında,oyun menü sayfası gelmeden uygulama splash ekranında reklam göstermek istiyoruz.Bunun için Huawei Ads Kit bünyesindeki,Splash Ads’i kullanabiliriz. Bu reklam video ya da resim olabilir.Kullanıcı isterse bu reklamı 3–5 sn sonrasında kapatabilir.Uygulama splash ekranından ana sayfaya geldiğinde reklam otomatik olarak kapanacaktır.

İkinci olarak oyunumuzun belirli aşamalarında reklam göstermek isteyebiliriz.Bu belirli aşamalar genelde level sonları , alt-görev tamamlama gibi aşamalar olabilir.Bu durum kullanıcıların geçebileceği reklamları tercih etmek isabet olur.Bunun için Interstial Ads tipini kullanmalıyız.Ancak Insterstial reklamların kazancı genel olarak düşüktür.

Kullanıcının baştan sonra izlediği video reklamların ise kazancı oldukça yüksektir.Bunun için Rewarded Ads reklam tipini kullanmalıyız.Kullanıcıya bu reklamları izletebilmek için bir şey vadetmek gerekir. Bu da oyunlarda genellikle kazancı ikiye katla,levela kaldığın yerden devam et ya da oyunun kendi akışı içerisinde bir çok senaryo olabilir.Bu reklam için vadedilen ödülün alınabilmesi için reklamın sonuna kadar izlenmesi ve success callback dönmesi gerekir.

Üçüncü olarak oyunun akışı esnasında reklam göstermek isteyebiliriz.Bunun için oyunun akışını bozmayacak bir reklam tipine ihtiyaç duyarız.Bu durumda kullanmamız gereken reklam tipi ise Banner Ads tir.Resim reklamıdır,sayfanın altında,ortasında ya da üstünde bulunabilir. Özellikle de session süresi uzun olan oyunlarda bu reklam tipi iyi kazanç sağlamaktadır.

Son olarak bir video reklam gösterilirken,bu video reklamın üzerinde ufak boyutlu video yada resim reklam gösterme imkanımız da bulunmaktadır.Bunu Roll Ads ile sağlayabiliyoruz. Roll Ads oyun reklamlarında oldukça fazla kullanılmaktadır.

Referans projemizde menü ve oyun akışında alt tarafta çıkan bir Banner Ads ve her session bitiminde Interstial Ads kullanılmıştır.

▼İhtiyaç :

Oyunumuzda en iyi oynayanlar listesi oluşturup rekabeti artırmak istiyoruz.

Çözüm💡:

Huawei Game Service kitinin leaderboard modülü sayesinde herhangi bir veri tutma yapısı kurmaya gerek kalmadan kolay bir şekilde bunu sağlayabiliyoruz.

Referans projemizde de leaerboard yapısından faydalanmaktayız.Her session bitişinde kazanmış olduğumuz puanı leaderboard servisine bildiriyoruz.Yapmamız gereken bütün işlem bu kadar.

Referans projemizde de leaderboard yapısından faydalanmaktayız.

▼İhtiyaç :

Oyunumuzda oyuncuya başarı hedefi verip ,ulaştığı başarıları kendisine göstermek istiyoruz.

Çözüm💡:

Huawei Game Service kitinin achievements modülü sayesinde
bu isteğimizi de çok kolay bir şekilde gerçekleştirebiliyoruz.Referans projemizde de achievements yapısından faydalanmaktayız.

▼İhtiyaç :

Kullanıcılarımıza oyunumuzu unutmamaları ve kullanmaya devam etmeleri için istediğimiz zaman hatırlatmalar yapmak istiyoruz.

Çözüm💡:

Huawei Push Kit bu ihtiyacımızı karşılamaktadır.Bu kit sayesinde uygulamanın yüklü olduğu zaman ve uygulamanın açık kapalı olması farketmeksizin, cihazımıza notification yollayabiliyoruz. Burada notification’ın dışında data message seçeneğimiz de mevcuttur. Bu seçenek için uygulamamızın açık olması gerekmektedir.Yolladığımız data ile uygulama içerisinde dilediğimiz akışı sağlamamız mümkündür.

Referans projemizde bu kiti kullanıyoruz.

Push Kit

▼İhtiyaç :

Oyun uygulamamızda kullanıcılarımıza bazı ürünler satmak istiyoruz.

Çözüm💡:

Huawei IAP Kit sayesinde, kolay bir şekilde kendi ürün satış sistemimizi kurabiliyoruz.Burada 3 adet ürün tipimiz mevcuttur.

Consumable : Tükenebilen ve tekrar alınabilen ürünler :Altın,elmas,can vs
Non-Consumable : Tükenemeyen ve tekrar alınmasına gerek olmayan ürünler: Remove Ads

Auto-Renewable Subscriptions: Zaman bazlı abonelik : Booster (şu süre boyunca şu avantajdan faydalan)

Referans projemizde Remove Ads ürününü bu kit aracılığı ile kullanıcılarımıza sunuyoruz.

▼İhtiyaç :

Oyunumuzda yaşanan bütün olayların kaydını tutmak istiyoruz.

Çözüm💡:

Huawei Analytics Kit sayesinde oyundaki bütün eventleri analytics
sistemine yollayıp, AGC web panelinden eventlerin analizini yapabiliyoruz.
Max 500 farklı event destekler ve her event maximum 25 parametre alabilir.

Referans projemizde her bölüm başında ve sonunda event yolluyoruz.

▼İhtiyaç :

Oyunumuzda yaşanan churnlerin sebebini tespit etmek istiyoruz.

Çözüm💡:

Huawei Analytics Kit bünyesinde bu ihtiyacımızı çözebiliriz.Bunun için yollanacak eventlerin analizini kronolojik olarak yapmamız gerekmektedir.Bunun için analytics hit panelinde funnel analizden faydalanıyoruz.

Funnel analiz mobil oyunların hit olma sürecinde çok önemlidir.

▼İhtiyaç :

Oyunumuz ile alakalı bazı ayarlamaları yapabilmek için store’a yeni versiyon çıkmak zorunda kalıyoruz , bu bizim için vakit kaybı oluyor.

Çözüm💡:

Huawei Remote Configuration kiti sayesinde oyunla ilgili ayarları anlık olarak değiştirmemiz mümkündür.Cihaz her oyun açıldığında ayarları
bu kitten çekecektir.

Referans projemizde oyunun renk temasını ve hareket hızını Remote Configuration kitinden alıyoruz.

▼İhtiyaç :

Oyun uygulamamızı kullanan bazı kullanıcılar oyunun aniden kapandığını bildiriyorlar.Sorunun sebebini bilemediğimiz için çözemiyoruz.

Çözüm💡:

Huawei Crash Kit sayesinde yaşanan crashlerin detaylı raporlarını
okuyabiliriz.

Referans projemizde suni crashler oluşturarak ilgili raporları
analytics kitten okuyabiliyoruz.

▼İhtiyaç :

Kullanıcılarımızın oynadığı oyunu arkadaşlarıyla paylaşabilmelerini istiyoruz.

Çözüm💡:

Huawei App Linking kiti sayesinde bu durumu gerçekleştirebiliyoruz.

Referans projemizde ana menüde bulunan paylaş butonuna tıkladığımızda paylaşılabilen link ile oyun uygulamamızı yüklememiş kişiler App Gallery’ye yönlendirilmektedir.

▼İhtiyaç :

Kullanıcılarımıza istediğimiz zaman ,istediğimiz bir konuda uyarı ve hatırlatmalarda bulunmak istiyoruz.

Çözüm💡:

Huawei App Messaging kiti sayesinde bu ihtiyacımızı karşılayabiliyoruz.

Referans projemizde level sonunda kullanıcılarımıza bir In App Purchase ürünümüz olan“Remove Ads” i alabileceğini hatırlatıyoruz.Bunun ayarını App Gallery Connect üzerinden ayarlıyoruz.Referans projemiz için mesajın tetikleme olayını “Session_End” analytic eventine bağladık ve her kullanıcıya maximum 1 kere gösterilmesi kuralını tanımladık.

▼İhtiyaç :

Mobil oyunlarımızda aynı fiziksel ortamda bulunan cihazlar için Wifi ya da Bluetooth altyapısını kullanarak bir haberleşme yapısı kurmak istiyoruz.

Çözüm💡:

Huawei Nearby Service kiti sayesinde bu ihtiyacımızı karşılayabiliyoruz.Bu kit ile aynı wifiye bağlı ya da bluetooth u açık cihazlar ,oyun uygulaması açık iken otomatik olarak birbirlerini tanıyabileceklerdir.Bu kit ile uygulamalar arası mesajlaşma sistemi , dosya yollama ya da gerçek zamanlı multiplayer oyun gibi haberleşme yapısı isteyen bütün ihtiyaçlarımızı karşılayabiliyoruz.

▼İhtiyaç :

Mobil oyunlarımız için kullanıcı bazlı data tutabileceğiniz bir veritabanı yapısı kullanmak istiyoruz.

Çözüm💡:

Huawei Cloud DB bu ihtiyacımızı karşımaktadır.Bu kit ilişkisel veritabanıdır.

Referans projemizde her levelda kazanılan puanı ve level numarası ile birlikte kaydedip , ana menüde bir popup olarak gösterebiliyoruz.

▼İhtiyaç :

Kullanıcılarımıza sosyal medya üzerinden paylaşımımızı görenlere ödül vermek istiyoruz.

Çözüm💡:

Huawei Scan Kit ile bu ihtiyacımızı karşılayabiliririz.Sosyal medya hesabımızdan doğru textli QR kodu içeren paylaşımımızı oyun uygulamamızdan tarayan kullanıcılarımıza bu ödülü verebiliriz.

Referans projemizde ilgili QR code okutulduğu zaman kullanıcıya ücretsiz olarak reklamları kaldırma hakkı tanımlıyoruz.

▼İhtiyaç :

Kullanıcılarımıza dünyada bulunduğu lokasyona bağlı olarak içerik göstermek istiyoruz.

Çözüm💡:

Huawei Location Kit ile bu konudaki ihtiyaçlarımıza yönelik çözümler geliştirebiliriz.Kullanıcının bulunduğu enlem boylam bilgilerine location kit aracılığı ile erişebilir ve bu bilgi baz alınarak kullanıcıya gösterilecek içerikler yönetilebilir.Ayrıca location kitin sağladığı diğer özelliklerden olan geofence ve indoor location özellikleri de kullanılarak oyun dünyasına yenilikler getirebiliriz.

Referans projemizde ise kullanıcının bulunduğu lokasyonun Türkiye sınırında olup olmadığı kontrol ediliyor.Eğer kullanıcı Türkiye sınırlarında ise ana menüdeki türklere özel motivasyon cümlesini kullanıcıya gösteriyoruz.

▼İhtiyaç :

Kullanıcılarımızın oyunda performans ve yavaşlık problemi yaşayıp yaşamadıklarını merak ediyoruz.Bu konuda problem yaşandığı zaman çoğu kullanıcı bir bildirimde bulunmadan oyunu süresiz terk edebiliyor.Bu sinsi problem oyun dünyasında bazen büyük gelir kayıplarına yol açabilmektedir.

Çözüm💡:

Huawei APM Kit bu konudaki endişelerimize tam anlamıyla ışık tutmaktadır.Kullanıcının yaşayabileceği ANR,uygulamanın yavaş açılması,oyun sahnesinin çokgeç yüklenmesi ve yüksek request response süreleri gibi kullanıcı kaybına yol açabilecek olan problemlerin detaylı bir şekilde AGC ‘de raporlanmasını sağlamaktadır.

Referans projemizde ise bu kiti kullanmaktayız.Ancak bu kiti entegre ederken suni problemler oluşturup raporları okuyarak ,entegrasyon adımların doğruluğundan kesin bir şekilde emin olabiliriz.Referans projemizde bu suni problemleri oluşturacak komutlar yer almaktadır.

▼İhtiyaç :

Kullanıcılarımızın oyundaki önemli anlarındaki sahnelerinin ekran görüntüsünü otomatik olarak kaydedip sonrasında kullanıcılarımızın görebilmesini istiyoruz.

Çözüm💡:

Huawei Drive Kit tam bu konu için biçilmiş kaftandır.Bu kit sayesinde huawei drive uygulamalar içerisinden kullanılabilmektedir.

Referans projemizde ise her level sonunda kullanıcının başarısını temsil edebilecek ve kullanıcılarımızın oyun esnasında oluşturmuş olduğu küp birikintilerinin puan bilgisiyle birlikte ekran görüntüsü alınıp, kullanıcının huawei drive’ında ilgili klasörde kaydedilmektedir.Böylelikle kullanıcılarımızın bu ekran görüntülerine istediği zaman erişimi mümkün olabilmektedir.

▼İhtiyaç :

Oyunumuzun application size büyüklüğünü azaltmak istiyoruz. Ayrıca bazı sahne objelerimizin store a yeni versiyon çıkmadan güncelleyebilmek istiyoruz.

Çözüm💡:

Huawei Cloud Storage bu ihtiyaçlarımızı karşılamaktadır. Unity oyun projemizdeki her türlü dosya, asset vs Asset Bundle formatında saklanabilmektedir. Asset Bundle formatındaki dosyaları Cloud Storage da depolayıp, uygulama çalışma zamanında asset bundle dosyalarını indirip de-serialize işlemiyle ilgili objeleri Unity sahnesinde kullanabiliriz.

Referans projemizde ise her level sonunda bir gameover popup ı gösteriyoruz. Bu popup ve içerdiği texture projemizin geliştirme ortamında yani uygulamanin default halinde bulunmamaktadır. Bir bunları Asset Bundle formatında dosya içerisinde saklıyoruz, bu dosyayı da Cloud Storage da muhafaza ediyoruz. Oyun uygulamamız ilk çalıştığında bu asset bundle dosyasını, uygulamanın cihazdaki dizinine indiriyoruz, indirdikten sonra ise de-serialize işlemi uygulayarak ilgili unity sahne objemizi oyun akışında istediğimiz yerde kullanıyoruz.Bu yapı bize uygulama boyutunda tasarruf sağlarken ,unity sahne objelerimizi de mağazaya yeni versiyon çıkmadan güncelleme imkanı tanımaktadır.

--

--