Herkes için mobil oyun tasarımı ve programlama kitabı çıktı
Akıllı telefonların hayatımızı işgal etmeye başlaması ile inanılmaz bir hızla büyümeye başlayan mobil oyun sektörü, milyonlarca dolarlık bir iş kapısı haline geldi. Öyle ki küçücük ve basit dediğimiz oyunlar ile milyonlarca doları kasasına koymayı başaran yapımcılar, sektöre dışarıdan bakan gençlere de umut ışığı olmaya başladı.
Hepimizin hayalini süsleyen kendi oyunumuzu yapma fikri, Mobil Oyun tasarımında uzun yıllar çalışmış Uğur Gelişken’in de dikkatini çekmiş ve bu işe girişmek isteyen gençler için bir kitap hazırlamış. Mobil Oyun Tasarımı ve Programlama ismi ile yayımlanan kitap, farklı oyun örnekleri, oyun tasarımına giriş, teknik detaylar gibi bir çok farklı konuyu içerisinde bulunduruyor.
ÖNSÖZ
Merhaba.
Öncelikle Mobil Oyun Programlama alanında neden AdobeTeknolojileri’ni, yani Adobe Flash Pro, Adobe AIR SDK & Compiler ve ActionScript3.0’ı kullandığımdan ve biraz da geçmişten kısaca bahsetmek istiyorum.
Eskiden, hani Nokia telefonların ve Symbian işletim sistemlerinin meşhur olduğu zamanlardı. O sıralar Android işletim sistemi yeni yeni çıkmıştı ve çoğu kimse umursamıyordu. O zamanlar JAVA ile Symbian işletim sistemli geniş ekran telefonlar için mobil oyunlar yapılıyordu. Çoğu sıradan ve basit grafiklerle hazırlanmış oyunlar. 3D olarak hazırlananlarda ise çok düşük vertex sayısı vardı, yani arabalar kutu gibi ve tekerlekler de altıgenden oluşuyordu. İşte o zamanlar Adobe, Flash Lite adı altında bir dil piyasaya sürmüştü. ActionScript 2.0’ın biraz sadesini düşünün. İşte o zamanlar, bugün oynamış olduğunuz yeni nesil mobil oyunların ilk ataları doğmuş oldu. Daha düzgün grafikler, daha iyi performans ve hepsinden önemlisi; daha kolay programlanabilir olması. Ama ne yazık ki, her şeyin en iyisini bildiğini sanan mobil oyun geliştiricileri yine küçümser gözlerle baktı, denemekte fayda var diyen mobil oyun geliştiricileri de ceplerini doldurdu. Kullanıcılar da güzel oyun oynayabilmenin keyfini sürdü.
Ancak Flash Lite da yetersiz gelmeye başlamıştı. O sıralar ActionScript 3.0’ın tamamen OOP desteğiyle piyasaya sürülmesiyle, bu gelişmenin mobil cihazlara da aktarılması gerekmekteydi (laf aramızda, ActionScript 3.0 diğer OOP dilleri; yani C++, C#, JAVA gibi diller gibi sadece soyut olarak nesnelerle çalışmaz, birebir somut nesnelerle de çalışır. Yani ActionScript3.0’da nesne kavramı daha farklı bir dünyadır). Ayrıca cihazlara herhangi bir üçün parti yazılım, yani Flash Player yükleme gereksinimi de olmaması gerekiyordu. Bu nedenle Adobe AIR teknolojisi geliştirildi. Adobe AIR, her platformda başka hiçbir yazılıma ihtiyaç duymadan Adobe Flash Teknolojileri ile hazırlanmış olan uygulamaları açmaya yarayan bir katmandır.
Artık emektar Flash Lite’a ihtiyaç kalmamış, yerini Adobe AIR gelmişti. Yine geleceği gören (gerçi buna da gerek yok, günümüzü görmesi yeterli) mobil oyun ve uygulama geliştiricileri, Adobe AIR teknolojisi üzerinden projelerini gerçekleştirmeye başladı. Hem de yaptıkları uygulamayı diledikleri tüm işletim sistemlerinde pazarlayabildiler. Android, iOS, Symbian, Linux, MacOSX, Windows, Web… Ne kadar harika, değil mi? Bir kere yaz ve her yerde çalıştır. Sanki bu slogan başka biri için de söyleniyordu…
Geçtiğimiz yıllarda Adobe Flash Player’ın performansı, kolay bir hedef haline gelmişti ve herkes ezbere kötü yorumlar yaparak saldırılarda bulunmuştu. Halbuki hal böyle değildir. Şu an web üzerinden oynanan, hatta çoklu kullanıcı desteği sunan, geliştiricilerine çuval dolusu paralar kazandıran en iyi oyunlar, Adobe Flash Teknolojileri ile yapılmış oyunlardır. Açın bir Facebook Oyun Sayfası ve orada yer alan oyunları listeleyin; en iyiler listesi hep Adobe Flash Player üzerinden oynanan oyunlardır.
Şimdi asıl konumuza gelelim…
Elimizdeki araç madem bu kadar güçlü, ben de bunu mobil oyun programlama disiplini ile ele alayım ve meraklılarına elimden geldiğince, o küçüklükten beri hayalini kurdukları minik ama sevimli oyunları nasıl yapabileceklerini anlatayım dedim. Belki bazılarınız daha gelişmiş oyunlar da çıkarabilir. Belki kiminiz de sadece yapıp satarak paralar kazanacak. Belki bazılarınız da basit bir fikir ile yola çıkıp, gün geçtikçe reklamlardan gelir elde edeceksiniz. Artık nasip kısmet.
Kitap hemen hemen herkesin kullanabileceği bir yapıda hazırladım. Ancak herkes derken, en azından programlama dili ile biraz haşır neşir olmuş olan veya gördüğünü anlayabilen, anlayamıyorsa da araştırma yapmasını bilen kişileri hedef almaktadır. Yoksa kitapta gördüğünüz adımları hiç düşünmeyip irdelemeden tekrar ederseniz, çok da bir şey öğrenemezsiniz.
Kitabın işleyişinde şu yolu izledim.
Kitabın ilk kısımlarında, bir oyun programlamadan önce oyun programlamanın felsefesine eğilmek istedim. Çünkü ne kadar iyi yazılımcı veya tasarımcı olursanız olun, bir oyunun işleyişini ve mantığını bilmiyorsanız, eliniz bile oynatamazsınız. Piyasada bu tür kişiler çokça var. Eğer öyle olursanız, sürekli olarak birileri size ne yapacağınızı anlatmakla uğraşır durur. Bu bahsettiğim bölümde; bir oyunu oluşturan elementler, tasarım aşamaları, fikir süreci, oynanabilirlik, oyunlarda grafiklerin ve seslerin nasıl kullanılacağına dair pratikler vereceğim.
Bir sonraki bölümde ise, direkt olarak Android ve iOS cihazlar için oyunları nasıl paketleyeceğinizi göstereceğim. Aslında bu en son konu olarak işlenir ama ben hemen bu konuya girmek istedim. Çünkü bir oyunu yaparken her aşamasında sürekli olarak mobil cihazlarınızda test etmeniz gerekebilir. İşin henüz başında iken paketleme ve test sürecini öğrenirseniz, sonrası daha kolay olur.
Sonraki bölümlerde ise basitten karmaşığa doğru giderek birkaç mobil oyun örneği anlatacağım. Bunların fikir aşamasından tasarım aşamasına, kodlama aşamasından test aşamasına kadar tüm süreçlerini işleyeceğiz. Her oyun farklı farklı tekniklerle anlatılacağı için, birbirinden değişik programlama yaklaşımları ile oyun programlamayı öğrenmiş olacaksınız.
Oyun programlama örneklerini işledikten sonra iki önemli konuyu daha ele alacağım. Bunlardan biri oyunlardan reklamlar ile nasıl para kazanacağınızdır; ki bu da eminim en çok ilginizi çekecek konulardan biri. Düşünsenize; geleceğin mobil oyunlardan para kazanan zenginlerden biri de siz olabilirsiniz. Olamamanız için bir sebep de yok!
Kitabın en son bölümünde ise performans yönetimini ele aldım. Bu bölüm çok önemli. Her ne kadar oyunları güzel programladığınızı düşünseniz de, mutlaka oyunlarınızı performans testine sokmanız gerekir. Oyunun hangi aşamalarında ve hangi olaylarında zorlamalar yapıyor (CPU’yu zorlamak), mutlaka görmelisiniz ve karşılaştığınız performans sorunlarını çözmelisiniz.
UĞUR GELİŞKEN
Adobe MVP