Masomo CTO’su Oğuzhan Yılmaz Röportajı


Global ölçekte bir oyun yönetiyorsanız bölgesellik çok önemli diyen Masomo CTO’su Oğuzhan Yılmaz, “Avrupa’daki oyuncuya Avrupa’dan hatta mümkünse kendi şehirinden hizmet vermek, oyunumuzun istediğimiz deneyimi sunması için önemli. Cloud sistemlerinin en çok bölgesel yapılarından yararlanıyoruz.” dedi.

Türkiye’den son dönemde çıkan başarılı global oyun şirketleri arasına adını yazdıran ve oyun dünyasının en köklü firmalarından Miniclip tarafından satın alınarak fark yaratan oyunlar üretmeye devam eden Masomo, mobil oyun dünyasında iddialı oyunlarla adından söz ettirmeye devam ediyor.

Masomo serüvenine 2 yıl önce CTO olarak başlayan Oğuzhan Yılmaz ile Masomo’yu, şirketin bulut teknolojilerine yaptığı yatırımları ve tabii ki başarılı bir şirket CTO’su olmaya giden yolu konuştuk…

1- Masomo’nun CTO’sunuz. Bize profesyonel yolculuğunuzdan bahsedebilir misiniz? Sizi bu noktaya getiren ne oldu?

En son söylececeğimi en baştan söyleyeyim. Beni bu noktaya getiren şeyleri sayacaksam “azim, kararlılık ve merak” derim. Bu herhangi bir domain’de başarılı olmak için gerekli olan kavramlar. Gerisi teferruat.

Ortaokuldan beri bilgisayarlarla ilgiliyim, bende klasik popüler kültür tedrisatından geçtim yani Commodore64, amiga 500 arkasından PC’ler. Programlamaya da PC ile başladım.

Çok başarılı bir okul hayatım olmadığından iş hayatına erken atıldım. Çeşitli hosting firmalarında çalıştım, çok şey öğrendim. Hem Sistem Yöneticiliği yaptım hem Yazılım Mühendisliği yaptım. Büyük sorunlar mücadele edip tecrübelendim. Daha sonra pazarda eksikliğini hissettiğim iyi bir Web Hosting Control Panel geliştirmek adına istifa ettim ve MaestroPanel ismindeki girişimimi kurdum. Türkiye kalibresinde en başarılı işlerden biridir hala. Ufak tefek birkaç girişimim daha oldu ve son 2 yıldır Masomo’da CTO görevini yürütmekteyim.

2- Bir mobil oyun şirketinin CTO’su gününü nasıl geçirir?

Standard bir günümüz olmuyor, çünkü oyun firmalar çok dinamik. Bir günde gündem değişebiliyor o nedenle rutinimiz çok yok. 

Ben hem Game Development hem Back-End hem de SRE&Infra takımlarından sorumluyum, o nedenle normal mesai saatleri içinde kritik kararlar veya teknik liderlik anlamında inisiyatif alıyorum. Mesai saatleri dışında durumumu ise altyapı tarafındaki alarmlar ve stabilite belirliyor.

3- Birçok CTO, kodlamayı bırakıp tamamen yönetim işlevlerine odaklanıyor? Peki siz hala kodlama yapıyor musun?

Bu şirketin ihtiyacına göre değişiyor aslında. Benim durumumda hem şirket için hem de community için hala kod yazmam gerekiyor. 

Masomo genişlemede olan bir firma, o nedenle teknik liderlik yapmam daha önemli şirket için. Bu da development ekiplerine çok yakın çalışmam demek o nedenle gerek C++ olsun gerek Go olsun gerekse firma içinde internal tool’lar olsun kod yazıp çözümler üretiyorum. Github hesabımdan da sık sık OSS projeleri paylaşırım kendi çapımda.

4- İşinizle ilgili en çok (ve en az) neyi seviyorsunuz?

Bir probleme tam anlamı ile bir çözüm bulduğum zamanları çok seviyorum. Bir sorunun kaynağını bulup düzeltmek ve daha iyi hale getirmekte çok zevkli bir uğraş benim için. 

Bazen çözüm ararken yanlış yollara sapıyorum orada kaybettiğim zamana çok kızarım. Bu sevmediğim şeylerden biri. Aynı sebepten iki kere problem çıktığı durumlardan da nefret ederim gerçekten. 

5- Oyun geliştirme sektöründe kullanılan yazılım teknolojileri hakkında bize biraz bilgi verebilir misiniz? Hangi yazılım teknolojileri neden kullanılıyor?

Pek çok teknoloji var, bir sürü oyun motoru dediğimiz framework’ler var. Unity, Unreal, Godot vs.. Oyun sektörü genelde C++ güdümlü gidiyor diğer yandan Unity oyun motorunun popülerleşmesi ile C#’da baya popüler hale geldi. Bunlar mainstream programlama dilleri diyebiliriz. Bizde C++’ı kullanıyoruz mobile oyunlarımızda. Bu teknolojiler hep geçicidir 5 yıl sonra bunların hiç birini konuşmuyor olabiliriz yani.

Oyun motorlarının geldiği noktaya bakarsak, programlama dili artık o kadar etki etmiyor. Yani çok performans gerekiyorsa C++ kullanmalıyız demek çok doğru değil. Örneğin Godot oyun motorunda Visual Scripting kullanarak bir mobile oyun yazabilirsiniz. O nedenle direkt şu dili kullanın demek istemem.

Biz Masomo’da Cocos2dx oyun motorunu üzerinde ve C++ kullanarak oyunlarımızı geliştiriyoruz. Bize bunun avantajı şu oldu. Kaynaklı daha az olan telefonlar üzerinde de oyunumuz çalışabilir oldu.

Bizim oyunlarımız gerçek zamanlı ve multiplayer o nedenle bir game server’a bağlanarak oynuyorsunuz. Mobile cihazların yanı sıra bizim telefon üzerinde çalışan oyunlara hizmet veren game serverlarımız da var. Bunların teknolojiside çok ayrı bir dünya. Örneğin Game Server’larımızı geliştirirken Go ve Rust programlama dilletini kullanıyoruz. Burada da performansa yönelik seçimler yapıyoruz hep.

Bu soruyu bir yerde kesmem gerek çünkü client’da particle’lardan tutun da animasyonlara ve ART tarafına dokunan teknolojilerden seslendirmeye kadar bir çok araç kullanıldığında hepsini sayıp sıkmam istemem. 

6- Gelecekte Masomo’da neler görmeyi umabiliriz?

Biz spor oyunları yapmayı seviyoruz ve bu kulvarda bir şeyler yapmayı planlıyoruz. Şu anda tüm konsantremizi yakın zamanda yayınladığımız yeni oyunumuz BasketBall Arena’ya verdik. Bu oyunu planladığımız özelliklerle beraber tamamlayıp sonraki kaçınılmaz adım için kolları sıvıyacağız.

7- Masomo olarak bulut teknolojilerinden nasıl faydalanıyorsunuz? Kullandığınız bulut teknolojileri nelerdir?

Masomo iki yıl önceye kadar klasik veri merkezlerini kullanarak dünya üzerinde oyunculara hizmet veriyordu. Özellikle Headball2 oyunumuzun kitlesi arttıkça bir ölçekleme sorunumuz oldu. O nedenle veri merkezlerini terk edip AWS Cloud’a tüm sistemi göç ettirdik.

Cloud servisleri belirli bir standartta olduğu için dünyanın her yerinde aynı altyapı kalitesi ile oyunculara hizmet verebiliyoruz. Bizim oyuncuları çok yakın game server konumlandırmamız gerekiyor, o nedenle POP noktası veya Edge node dediğimiz sistemlerden çok yararlanıyoruz.

Global ölçekte bir oyun yönetiyorsanız bölgesellik çok önemli. Avrupa’daki oyuncuya Avrupa’dan hatta mümkünse kendi şehirinden hizmet vermek, oyunumuzun istediğimiz deneyimi sunması için önemli. Cloud sistemlerinin en çok bölgesel yapılarından yararlanıyoruz diyebilirim.

Teknoloji olarak konuşursak Cloud Vendor’ların sağladığı Cloud DNS hizmetinden tutun da Serverless teknolojilere kadar tüm olanakları kullanıyoruz. Örneğin oyuncuları konumlandırmak için Route53’ün GeoDNS özelliğini kullanıyoruz. Latency hassas uygulamalarda CloudFlare’ın Worker’larını kullanıyoruz. Kullanıcı veritabanları için yine Cloud Vendor’ların sağladığı key-value store’ları kullanıyoruz.

8- Telefonunuzda şu an hangi oyunlar yüklü? En çok zaman ayırdığınız oyunlar hangileri? Bugüne kadar sizde en çok iz bırakan oyun hangisi? Günde kaç saat oyun oynuyorsunuz? Rekor süreniz nedir?

Ben sıkı bir COD Mobile fanıyım. Çıktığından beri her gün oynarım 🙂 Şimdi telefonuma bakınca AmongUS ve PokemonGO oyunlarını yüklü olarak var. Gumslinger’ı yeni silmiştim. Çok değişiyor oyun yelpazem bir süre puzzle oyunlarına sarıyorum. Daha sonra Black Desert oynayabiliyorum.

Bende iz bırakan oyunlar çok yani bir tane diyemem kesinlikle. Kronoloji sıra ile gidecek olursak tabi burada ne kadar dinazor olduğumda oraya çıkacak. İlk iz bırakan oyunum Barbarian: The Ultimate Warrior ’dı. Çizimi, PvP tipinde olması, kılıç kullanabiliyor olman ve atmosfer çok etkilemişti.

Hala aklıma gelince hüzünlendiğim Battletoads var. Burada bir bölümü geçmek için 20 gün uğraşmıştım, inat ettim pes etmedim geçtim bölümü.  Uçan jet ski tarzı bir araç ile kolonların arasından slalom yapmanız gerekiyordu. Oradaki tric’i çözmem çok uzun sürmüştü. 

Mortal Kombat serisi bu oyunu MK1’den beri onarım. Hala PlayStation’da oynarım haftada bir. Sega MegaDrive 16’da MK3 Ultimate çıktığında USA’dan hareketlerin fotokopisini çektirip buraya yollatmıştım bir arkadaşa. 

Sanırım çok uzayacak… burada kesiyon oyun muhabbetini. Yukarıdaki oyunlar bende iz bıraktı diyebilirim.

Artık uzun sürecek oyunlar oynamıyorum çok günde 2 maç PES oynuyorum veya 2 Round MK11 oynuyorum. Yada bir 1-2 el COD: WarZone’a giriyorum. Plunder Money gibi. Günde Yarım saat kesin 1-2 saat ortam olursa diyeyim.

Rekor sürem 20 saat ile Command & Conquer: Generals oyunu ilk çıktığında kurduğumuz bir lan-party’deydi.

Hey gidi günler 🙂