Amatör Oyun Geliştiriciliği Üzerine Sohbet – 2

Daha önce konuya ilişkin yayınlanan yazı, bloğun en çok ilgi çeken yazılarından biri olmuş durumda. Bu da bu serinin devamını hazırlama konusunda bir motivasyon oluşturdu.
Bu bölümümüzün konuğu Kerim Kaynakçı.  Marketlerde kendi adıyla yer alan geliştiricinin yeni oyunu They R Coming, App Store, Google Play Store ve Windows Store’da yayınlandı. Geliştiricinin diğer uygulamalarına baktığımızda kendisinin aslında amatör sayılamayacak bir yazılımcı olduğu göze çarpıyor. Biz de kendisini köşemizde konuk etmek istedik. Oyunun yanı sıra mobil uygulama pazarı ile ilgili de merak ettiklerimizi sorduk.

 

                                       

 

PE :Kerim Bey, Sayfanızda yer alan uygulamalara baktığımızda, oyunların yanı sıra üretkenlik alanında da uygulamaların da yer aldığını görüyoruz. Bize yazılımcılık geçmişinizden kısaca bahseder misiniz ?
KK : Hatırladığım kadarıyla program yazmaya ortaokulun ilk yılında başlamıştım. O zamanlar Windows 3.1 bilgisayarlarda yılan oyunu ve bir de ismini yanlış hatırlamıyorsam gorilla diye bir oyun yüklü geliyordu. Dahası bu oyunların kodları da birlikte geliyordu. Microsoft’a open source karşıtı diyenlere güzel bir örnek 😉 Ben de merak edip bu kodların ne anlama geldiğini kendi kendime çözmeye çalıştım. Kodlar QBasic ile yazılmıştı. Bu iki oyunun kodlarını kurcalaya kurcalaya programlamanın temel mantıklarını biraz öğrendim. Mesela oyunlarda kendime sonsuz hak falan veriyordum, bu tip değişiklikler yani.. Daha sonradan internet yaygınlaştığında çok daha fazla kaynağa erişebildiğimde kendimi biraz daha geliştirdim. Fakat bu gelişim oyun programlama konusunda değil; daha çok Windows uygulamaları geliştirme konusunda oldu. Özel sektörde çalıştığım konular da genelde Windows programlama üzerine olduğu için en büyük tecrübemin bu olduğunu söyleyebilirim. Hatta ilk mobil uygulamalarımı Windows Mobile 5 işletim sistemine yapmıştım. Mobil uygulamalara yoğunlaşmam özellikle Android cihazların yaygınlaşmaya başladığı zamanlara dayanmaktadır. Fakat sizin de bahsettiğiniz gibi, oyundan daha çok uygulama üzerine çalışıyordum; sadece son zamanlarda oyun geliştirmeye yöneldim diyebilirim.

 

 

PE : Son dönemde mobil uygulama pazarında inanılmaz bir artış var ve buna benzer şekilde mobil oyun da geliştiricilerin yüzünü güldürüyor. Hatta EA gibi dev firmanın, Popcap Games gibi sevilen pek çok basit oyunu piyasaya süren firmayı satın almasını da büyük küçük her firmanın bu rüzgarı kaçırmamak istemesi olarak yorumlayabiliriz. Size göre mobil oyunun geleceği nereye gidiyor ?
KK : Mobil oyun pazarı çok büyük bir pazar. Araştırmalara baktığımızda uygulama marketlerindeki gelirin yaklaşık %80’ini oyunlardan kaynaklı olduğunu görüyoruz. Dolayısıyla herkes bu alana yönelmeye çalışıyor. Ve bence özellikle bizim gibi “indie developer” şeklinde tabir edilen geliştiricilerin daha önceden hiç bulamadığı fırsatlar söz konusu. Uygulama marketleri, tek kişi olarak çalışan birisinin bile çok popüler bir oyun yapmasına ve bu oyununu milyonlara yaymasına fırsat sağlıyor. Tabi bu kadar fırsat eşitliğinin doğurmuş olduğu bir dezavantaj ise geliştirmiş olduğunuz oyunu veya uygulamayı diğer binlerce uygulama içerisinde ön plana çıkarmanın zorluğu. Kendi adıma konuşmam gerekirse, bir uygulamayı yaymak bir oyunu yaymaktan daha kolay gözüküyor; en azından benim için böyle oldu. Çünkü uygulamaların hitap ettiği bir kitle oluyor ve bu kitleye bazı network’leri kullanarak ulaşabilmeniz mümkün. Fakat oyun genelde herkese hitap ediyor ve yaymak için spesifik network’ler kullanılamıyor. Ancak dezavantaj olarak bahsettiğim bu durum, gördüğüm kadarıyla bir oyunu biraz tutturduktan sonra kendiliğinden yayılma ihtimalini ciddi seviyede arttırdığı için bir yerden sonra avantaja dönüşüyor. Oyun geliştirme araçlarının oyun yapımını ciddi seviyede kolaylaştırdığı günümüzde mobil oyunların sayısının sürekli artacağını tahmin etmek zor olmasa gerek.

 

PE : Geliştirdiğiniz uygulamaların yanında oyunlara baktığımızda Unity motorundan faydalandığınızı görüyoruz. Sanırım bir yazılım geliştirmek ile oyun yapmak arasında farklar olduğunu tahmin etmek zor olmasa gerek. Size göre yazılım bilgisi oyun geliştiriciliği ne oranda katkı sağlamakta? Başka bir tabirle, yazılım bilgisi arttıkça daha daha iyi oyun geliştirebilir miyiz ?
KK : Evet ben Unity’yi kullanıyorum. Oyun geliştirme aşaması esasında birçok faktörün bir araya gelmesiyle oluşuyor. Grafik tasarlama, level dizaynı, oyunun programlanması vs.. daha birçok şey sayılabilir. Programlama kısmına baktığımızda ise birincisi oyunun grafiksel anlamda programlanması yani bir nevi oyun motorunun yapılması (örneğin DirectX veya OpenGL fonksiyonlarının implementasyonu, fizik motorunun geliştirilmesi gibi). Diğer kısım ise oyun mantığının programlanması. Unity ve diğer oyun motorlarının güzel yanı ilk kısmı çok büyük oranda kendisinin halletmesi. Dolayısıyla size sadece oyun mantığının programlanması kalıyor. Bu da esasında küçümsenmemesi gereken bir kısım. Çünkü özellikle mobil cihazlar için geliştirilen oyunların performanslı çalışması için optimize edilmiş kaliteli kodun yazılması şart. Dolayısıyla kaliteli oyun için kaliteli kod yazılmasının çok büyük önem taşıdığını düşünüyorum.

 

PE : Başka bir merak ettiğim konu ise şu: Bilgisayar ortamı olsun, konsol ortamı olsun oyun motorları oyun geliştirilen oyunların önemli bir yapıtaşı oldu. Unreal, Frostbite, CryEngine gibi pek çok sevilen oyunun geliştirilmesini sağlayan araçlar. Bu motorların bazılarının mobil platform için hizmet verdiğini görsek de ağırlıklı olarak Unity olmak üzere mobil motorlar revaçta. Bu noktada; mobil oyun geliştirme ile sabit platformlar için oyun geliştirme konusunda farklı dinamiklerin ortaya çıktığını söyleyebilir miyiz ?
KK : Elbette. Her ne kadar büyük bir oyun geliştirme projesinde yer almamış olsam da tecrübelerim şunu gösteriyor ki mobil oyun ve diğer platformlar için geliştirilen oyunların geliştirilmesi farklı dinamiklere dayanıyor. En temel noktada şunu belirtmek gerekiyor; oyun için en önemli nokta donanımın güçlü olması. Donanım ne kadar güçlüyse, geliştiriciye ne kadar geniş bir ortam sağlıyorsa (örneğin grafik kartı ve oyun için ayrılan ram gibi) oyun da o kadar detaylı ve kaliteli olacaktır. Buradaki en önemli unsurun detay olduğunu düşünüyorum. Adı geçen büyük oyun motorları gerçekten detaylarda ön plana çıkan motorlar. Unity de aslında çok güçlü bir oyun motoru olmasına rağmen özellikle mobil oyun geliştiriciler için daha optimize edilmiş olmasının verdiği bir avantajı kullanıyor. Örneğin Unreal Engine 4 ile de oyununuzu aynı Unity’de olduğu gibi mobil platformlara derleyebiliyorsunuz fakat buna rağmen birkaç nesil önceki mobil cihazlarda bu oyunlar ya çalışmıyor ya da performansı düşük oluyor; fakat son nesil cihazlarda iki oyun motorunun çıktısı oyunları karşılaştırdığınızda farkı görebiliyorsunuz. Ama çok basit bir oyun fikriniz varsa ve tüm platformlarda çalışsın istiyorsanız ilk durağınızın Unity olacağını düşünüyorum.

 

PE : Sanırım bu kalıp bir soru olacak. Bu şekilde sorduğumuzda farklı da bir cevap duyacağız. Ama ben şu şekilde sormak istiyorum: Cep telefonunda oynadığı bir oyundan sonra bu işe heves eden birisi; merak, araştırma, mümkün mertebe İngilizce bilip yabancı kaynaklardan faydalanma şeklinde sürecini takip etmeli. Buna senin ilave etmek isteyeceğin farklı bir şey var mı ?
KK : Bence çok güzel sıralamışsınız. Bu işin en önemli yapı taşının merak/istek olduğunu düşünüyorum. Özellikle neyin nasıl yapıldığını, neden öyle yapıldığını vs. araştırmak programlamanın her platformunda büyük önem taşıyor. Günümüzde gerek kaynaklara hızlı erişim gerekse yukarıda da bahsettiğimiz ve uygulama veya oyun geliştirmeyi kolaylaştıran bazı araçların piyasaya çıkmasıyla birlikte tabiri caizse copy/paste’ci birçok kişi ortaya çıkıyor. Bence programcılığı öldüren bir durum bu. Eğer bir şeyin temelde nasıl çalıştığını bilmezseniz bir yere gelir tıkanırsınız. Ayrıca yaptığınız işten zevk de almazsınız. Bu işin en büyük zevki bir problemi çözme metodunu kendinizin düşünerek geliştiriyor oluşunuz. Yoksa dediğimiz gibi birçok şeyi internette bulup copy paste yaparak bir şekilde uygulama da yaparsınız oyun da; fakat ne yaptığınızdan keyif alırsınız ne de yaptığınız işten tecrübe kazanırsınız. Bunun dışında yine bahsettiğiniz gibi İngilizce çok önemli. Sonuçta her konuda olduğu gibi programlamada da global dil olan İngilizce kaynak sayısı diğer tüm kaynaklara göre hem nicelik hem de nitelik açısından büyük olduğundan en güzel öğrenme şeklinin İngilizce tutorial(dersleri) ve video’ları takip etmek olduğunu düşünüyorum. Tabi buradaki önemli nokta bu işi pratiğe dökmek. Yoksa programlama dersleri okuyarak veya video’ları seyrederek bir şeyler öğrenilse bile bu bilgilerle bir uygulama veya oyun yapılmadığı sürece bu bilgilerin kalıcı olmadığı tecrübeyle sabittir. Dolayısıyla bence en güzel öğrenme metotlarından birisi, (temel bilgileri öğrendikten sonra) bir fikir bulup onun üzerinden öğren-uygula yöntemidir. Ayrıca programlama diye genelleme yapmamıza rağmen bunun bir derya olduğunu da unutmamamız gerekiyor. Dolayısıyla kariyerimizi planlarken (veya hangi işten keyif alıyorsak) ona göre bir programlama platformunu öğrenmeye başlamamız gerekiyor. Mesela sadece Unity’de oyun yapacaksak C# öğrenmemiz gerekirken, Android’de uygulama yapmak istiyorsak Java öğrenmemiz gerekiyor. Dolayısıyla ne yapmak istediğimizi az çok belirlememizde fayda olacağını düşünüyorum.

 

PE : Gün geçtikçe marketlere yüklenen mobil oyun sayısı artıyor. Basit bir iktisat mantığı ile bakarsak; pazara bir ürünün çok fazla sürülmesi otomatik olarak fiyatlarını da düşürüyor. Geliştirdiği oyunun benzerlerine göre daha iyi olduğunu düşünen bir kişi buna cüzi de olsa bedel karşılığı satmak istese de, benzeri pek çok ücretsiz alternatif olduğu için kendisi de bunu ücretsiz olarak markete yüklüyor. Genel tabloya bakarsak bağımsız bir geliştiricinin elde etme potansiyeli olan gelirlerin azaldığını söylemek mümkün. Peki nedir geliştiricileri motive eden şey ?
KK : Açıkçası ben biraz daha farklı düşünüyorum. Ücretsiz alternatifler çoğaldıkça gelir elde etme yöntemleri farklılaşıyor ve yine bir şekilde gelir elde ediliyor. Dediğiniz gibi mobil oyunların hemen hepsi ya ücretsiz ya da çok cüzi bir miktar karşılığı satılıyor. Benzer kalitedeki oyunlar daha önceden farklı platformlarda çok daha pahalıya satılabiliyordu. Ancak buradaki belirleyici faktör mobil marketler. Bu marketler sayesinde bir uygulama veya oyun geliştirici müşterilerine çok daha kolay şekilde ulaşma imkanı sağladı, aynı şekilde müşteriler de uygulamalara. Dolayısıyla yüz milyonlarca kullanıcının olduğu bu platformlarda çok cüzi miktarlar bile işi cazip kılıyor. Şu anda da freemium denilen ve oyunun temel özelliklerinin ücretsiz olduğu ancak bir şekilde oyuncuya oyun içi item’lar satma yöntemi revaçta. Birçok oyun yapımcısı bu modeli kullanıyor ve asıl büyük gelirler bu yöntem ile elde ediliyor. Bunun dışında tamamen ücretsiz olup reklamdan gelir sağlama yöntemi  de etkili bir yöntem olarak karşımıza çıkıyor. Ancak kendi tecrübelerimden de yola çıkarak şunu belirtmem gerekiyor: makul gelir elde etmek için büyük sayıda kullanıcıya ulaşmak gerekiyor ve bu da bence şu anda tüm indie developer’ların en büyük sorunu. Her geçen gün artan oyun ve uygulama sayısına karşın aradan sıyrılmak için ya ciddi paralar harcamanız gerekiyor ya da oturup kendi kendine yayılmasını beklemeniz gerekiyor ki ben bunu yapıyorum 😉

 

PE : Bir önceki soru ile paralel olarak; uygulama içi satın almalar alternatif gelir modeli olarak karşımıza çıkmakta. Bu gelirlerin de büyük bir kısmını popüler oyunlar elde ediyor. Bu gelir modeli bağımsız geliştiriciler için yeni bir soluk olabilir mi ?
KK: Bu konudan bir önceki soruda biraz bahsettiğim için bu soruya tek cevabım: “inşallah olur” 😉

 

                                                                               

Share This: