Makale Adı Mobil Oyun Geliştirmeye Giriş
Derleyen Mobilpro
Tarih 25.05.2004

Güçlü Yanlar İçin Tasarım

Yeni bir teknoloji öğrenip onunla bir oyun geliştirmek en başta zordur. Teknolojinin nerelerde tıkandığını yada sorunlu yanlarını bilip , farklı şekillerde nasıl üstesinden gelineceğini bilmek ve üstün yanlarını öğrenerek tasarımları buna göre yapmak gerekir.
Mobil oyun geliştirmeninde kendine göre güçlü yanları ve kaçınılması gereken noktaları vardır :

Kısa Oyun Zamanları
Oyun oynayan kişi öyle veya böyle bir ara telefona çağrı alacak yada kendisi arama yapacaktır ve böyle bir durumda oyun oynarken pilinin bitmesini istemez. İdealde her oyun bölümü 5 dakika yada daha az oynanacak şekilde tasarlanmalıdır. Bu tüm oyun 5 dakika içinde bitecek şeklinde algılanmamalıdır. Aksine oyun sırasında oyuncular oyunu durdurabilmeli , saklayabilmelidir. Birde bu platform boş zamanları dolduracak oyunların oynanacağı bir ortamdır. Eğer bir oyuncu birkaç saat boyunca birilerini öldüreceği bir oyun oynacak ise büyük ihtimalle daha farklı bir oyun ortamında bu oyunu oynamayı tercih edecektir.

Oyunu oyuncuların zamanına göre ayarlayın, kendinizinkine göre değil
Oyuncuları istedikleri zaman oyunu oynamaları için serbest bırakın. Onları beklemeye yada oyuna sadece belirli zamanlarda girmeleri için zorlamayın.

Gecikmelerden Kaçının
Bu tek oyunculu ve telefon üzerinde oynanan oyunlarda sorun değildir fakat çok oyunculu oyunlarda çözülmesi gereken bir sorundur. Her ne kadar bunu aşmak başarılabilsede problem olarak durmaktadır.

Ağı Kullanın
Tüm oyunlar için olmasada , en azından oyuncular arasında bir rekabet yaratmak için bir En Yüksek Skorlar listesi bile oyununuza belirli bir avantaj sağlar. Telefonun sosyal bir cihaz olduğunu unutmayın ve oyunlarınıza bu sosyalliği destekleyici unsurlar ekleyerek avantaj elde edeceğinizi bilin.

Oyunu olabildiğince küçük boyutlu tutun
Hala 80 lerde geliştirilmiş oyunların beğenildiğini unutmayın. Teknik kısıtlamaların fazla olduğu zamanlarda geliştirilen oyunları beğenilmesinin bir nedeni , kısıtlamaların geliştirmecilerin yaratıcılıklarını kamçılamış olması olabilir. Geliştirmenin içine girdikçe , kısıtlamaları aşmak için farklı teknikleri tanıyacağız ve keşfedeceğiz.

Olabildiğince Çok Telefonu Destekleyin
En azından aynı markanın farklı ekranlarını destekleyin. Örneğin Seri 30 'ı , Seri 40 'ı ve 60 'ı destekleyecek olan tek bir oyun yazın. Ayrıca telefonlardaki özel API leri kullanarak uygulama (Nokia UI veya SMS API gibi) geliştirmek isterseniz uygulamanızın kısıtlı modellerde çalışacağını unutmayın.

Yerelleştirme kolay olacak şekilde geliştirme yapın
Mobil telefonlar dünyanın her yerinde kullanılmakta ve ingilizcede çoğu pazarda kullanılmıor. Bu yüzden uygulamanızı geliştirirken farklı dillerde desteği olacak şekilde geliştirme yapın.


Gecikme ile Başa Çıkma

Tekli Oyunlar
Tekli oyunlarda yüksek skor listesini telefona indirmek yada en azından göstermek için kullanılan ağ bağlantısındaki gecikme önemli değildir. Bu tip gecikmeler kullanıcı tarafından hoşgörülür.

Çok Oyunculu Tekli Oyunlar
Çok Oyunculu Tekli Oyunlarda oyuncular kendilerini çok oyunculu bir oyun oynuyor zannederlerken aslında tekli bir oyun oynamaktadırlar. Bu oyunlarda skor oyunun yada bir bölümün sonunda hesaplanır. Oyuna yeni oyuncu katıldığında diğer oyuncuların ID leri ona bildirilir. Daha sonra bu oyuncu tekli bir oyun oynar. Server kullanıcılara her oyuncu ile ilgili bilgilerin olduğu bir durum dosyasıda gönderir. Her oyuncu oyunu en yüksek skora ulaşmak için oynar. Bir oyuncu oyunu bitirdiğinde skoru servera gönderilir. Tüm oyuncular oyunu bitirdiklerinde yada belirli bir zaman süresi dolduğunda server tüm oyunculara en yüksek skoru hangi oyuncunun aldığını bildirir.
Bu şekilde oynanan oyunlar internette mevcuttur. Örneğin AOL 'un sevilen oyunu Slingo buna bir örnek olarak gösterilebilir. Bu tip oyunlarda bilgi , server ile bir oyun başlangıcında , birde oyun yada bölüm bitişinde alıp verilir. Tabiki gecikme kavramı sadece bu bilgi değişikliklerinde önemli olurki buradaki gecikmelerde önemli değildir çünkü sadece oyun başlangıç bilgisi ve bitiştede en iyiler bilgisi arada gidip gelir.

Sıralı (Turn-Based) Oyunlar
Bu tip oyunlarda oyuncu hamlesini yapar ve sonra hamlesinin cevabını bekler. Bu tip beklemede gecikme tolere edilebilir.
İki tip sıralı oyun tipi vardır :
Round-Robin Oyunlar
Round-Robin oyun tipinde bir oyuncu hamle yaptıktan sonra , karşı tarafın hamlesini ve ondan sonra sıranın kendine geçmesini bekler. Satranç , Tavla , Poker ve Briç bu tip oyunlardır.
Bu oyunların bir sakıncası , sıra kendilerine gelene dek hiç birşey yapmamalarıdır. Bu bir yere kabul edilebilir çünkü internet üzerinde oynanan başarılı kağıt oyunları mevcuttur. Round-Robin oyun tipinde oyuncu sayısını kısıtlamak gecikme ile başetmek için iyi olacaktır. Özellikle 2 ile 4 oyuncu idealdir.
Eş Zamanlı Hareket Edilen Oyunlar
Eş zamanlı hareket edilen oyunlarda , her oyuncu hamlesini diğer oyuncularda bağımsız olarak düşünür ve uygular. Hazır olduğunda ise hamlesini server'a gönderir. Server tüm oyunculardan gelen cevapları toplar. Daha sonra bu bilgileri işler ve sonuçları tüm kullanıcılara gönderir.
Elektronik oyun alanında bu tip oyunlara pek rastlanmasada Xcom serisi ile Laser Squad Nemesis da iyi birer oyundur. Eş zamanlı hareket etme özelliği board oyunlarında işe yarar.

İstediğin zaman hamle (Act Whenever) yap
"İstediğin zaman hamle yap" tipi oyunlarda oyun süreleri uzundur (günler , haftalar ve hatta aylar) Oyuncular oyuna dahil olurken kayıt yaptırırlar ve ondan sonra bu kayıtları ile oyuna devam ederler. Bazı oyunlarda oyuncular sadece oyuna aynı zamanlarda girmiş olan diğer kullanıcılar ile etkileşime girerek oyun oynarken , bazı oyunlarda off-line olan kullanıcılara karşıda eylem gerçekleştirilebilmektedir.
Bazı saplantılı oyuncuların sıradan diğer oyuncular üzerinden avantaj sağlamalarını önlemek için belirli bir anda yapılacak olan hamle sayısı kısıtlanabilir. Server üzerindeki yükü azaltmak için oyuncuların belirli periyotlarda oyuna tekrar girmeleri (signon) istenebilir.
EverQuest gibi çok kullanıcılı kitlesel oyunlarda (Massive Multiplayer Game) sizin karakteriniz offline olsada oyun sürer. Dataclash bir WAP oyunudur ve oyunda bir hackerı canlandırırsınız. Oyuna dahil olduktan sonra savunma stratejilerinizi ve saldırı stratejilerini belirlersiniz. Siz offline iken bile oyunda size saldırılar olur ve savunma mekanizmanız bunları karşılar.

Yavaş Değişen Oyunlar
Yavaş değişen bir oyun , oyun serverı üzerinde sürekli ve kalıcı olarak çalışır. Oyuncular istedikleri zaman sisteme bağlanarak oyunun ve kendilerinin durumunu takip edebilirler. Oyunda , oyuncular offline olsa, belirledikleri yöntemler üzerinde oyun devam eder. Oyuncular oyunu devamlı oynamak yada kontrol etmek zorunda değildirler fakat oyundaki değişen şartlara uyum sağlamak ve çabuk cevap vermek için oyunu gerekli zamanlarda takip etmeleri gerekmektedir.
Yavaş değişen oyunlara örnek olarak eski bir PC oyunu olan Empire'ı (Unix makinalar üzerinde oynanan bir oyun) verebiliriz. Oyuncular , her bir bölümü bir parçayı yapmak üzere ayarlarlar ve bu parşalar içinde bir hedef belirlerler. İnşa işlemi bitişinden sonra parçalar hedeflerine gider. İnşa işlemi ve yer değiştirme her an yapılabilir ve işlemler devamlı olarak arka planda sürer.

Gecikmeyi oyundaki atraksiyonlar ile saklayın
Gecikmenin varlığını kabul ederek bu gecikmeyi oyunun mantığı içinde kullanmakta bir yaklaşım olabilir. Örneğin World War I Deniz Savaşları gibi oyunlarda gemilerin yavaş hareket etmesi , biribirilerine ateş etmeleri gibi efektleri kullanarak aslında arka planda olan gecikmeyi bir yere kadar saklayabilirsiniz.
Buna en iyi örnek olarak ağ üzerinde oynanan Quake oyunu verilebilir. Oyunda 200 ile 400 ms arasında olan tipik internet hat gecikmesini saklayabilmek için , mermiler hedeflerine 200-300 ms gibi sürelerde ulaşır. Oysa daha mermi yola çıktığında daha animasyon sürerken hedefi vurup vurmayacağı bilinmektedir.

Yaratıcı olun
Gecikmeyi gizlemek için mutlaka farklı çözümlerde vardır. Bunları bulmaya çalışın.

Küçük Ekranlar

Küçük pencereli dünya
Ufak ekranlı oyunlarda şunlardan kaçının : Kısa sürede büyük bir alanını farklı birçok bölümünü göstermek. Hızlı bir şekilde bir görüntüden , diğer bir konumdan görünenine atlamak. Bu tip uygulamaları büyük ekran ve bir hareket sağlayan eleman (joystik , mouse) olmadan yapmak zordur. Cep telefonlarında çalışmayacak olan bu tip oyunlara örnek olarak Civilization ve StarCraft gibi oyunlar ve diğer online strateji oyunları verilebilir.
En ideali oyundaki tüm dünyanın tek bir pencereden görünür olmasıdır. Örneğin satranç. Bir başka çözümde oyun alanının bir bölümünü ekranda göstermek ve oyuncuya bu ekranı kaydırarak dünyanın diğer bölümlerini göstermektir. Eğer oyuncu oyunda tek bir karakteri yönlendiriyor ise bu sistem iyi çalışacaktır. Oyunda oyuncunun kontrol ettiği karakterin içinde bulunduğu alan devamlı olarak gösterilecektir.

Oyundaki Büyütme (zoom) seviyeleri
Bir başka yaklaşımda ise oyuncuya ekranlarda zoom yapma özelliği verilir. Böylece oyuncu hem oynadığı alanını tümünü görür hemde istediği ilgi alanına zoom yapabilir. Ekranda büyük sıçramalar yapmak tercih edilmez ve oyuncunun belirli bir sürede sadece belirli ekran bölümlerini görmesi gerektiği varsayımı üzerine oyunu tasarlamak daha iyi sonuçlar verecektir.

İş Modelinin dizaynı

Genelde klasik oyun tasarımcıları iyi oturmuş iş modelleri ve sağlam yapılı platformlar üzerinde geliştirilmiş olan oyunlar ile ilgilenirler. Oysa mobil dünyada işler bu şekilde yürümez : Teknolojiler devamlı gelişmektedir. İş modelleri sık sık değişmektedir ve farklılıklar göstermektedir. Eski iş modelleri üzerine oturmuş olan bazı düşünceler mobil oyunlar için uygulanamaz yada en azından aynı şekilde uygulanamaz :
"En az 12 saat oyun oynanabilir." Bu yaklaşım 50 $ lık PC veya oyun konsolu oyunları için doğru olabilir fakat ucuz olan mobil oyunlar için doğru değildir.
"Kullanıcıları olabildiğince online tutun." Online oyunlar için doğru olabilecek olan bu yaklaşım telefon oyunları için doğru değildir. Çünkü online oyunlar oyuncular bağlı olduğu sürece para kazanırlarken, mobil oyunlarda ise oyuncuların sadece bilgi transfer etmek için harcadıkları süre yada dosya büyüklüğü önem kazanmaktadır. Zaten oyun oynayanlar , oyunlar yüzünden kabarık telefon faturalarından hoşlanmayacaklardır.

Uygulamaların Satışı
J2ME oyunları için yaygın satış yönteminde uygulama şu şekilde satılır : Kullanıcı parayı öder , oyunu indirir ve install eder ve oynar. Artık o oyunu satın almıştır. Tabiki oyunların bir tanıtım versiyonunu oynamak istemeleri en doğal haklarıdır.
Bu yaklaşım geliştiriciler için tekli oyunlar yazmayı cazip kılar. Çünkü çok oyunculu oyunlar daha sonra server bakımı , bantgenişliği maliyetleri gibi devamlı bakımlar gerektirir.
Oyunları yada uygulamaları parçalara bölerek satmakta iyi fikirdir. Böylece bir oyunu çeşitli seviyelere bölmekle hem MIDlet boyutlarını azaltmış olursunuz hemde oyunun ileriki seviyelerini para ile satarak yada donwload ettirerek devam eden bir gelir modeli oluşturursunuz.

Aylık Lisans
Bazı operatörler oyunlar için süreli lisans verirler. Yani bir ay yada birkaç ay sonra oyunu oynamaya devam etmek isterseniz ek para ödemeniz gerekir. Bu yaklaşım çoklu oyunculu oyunlarda işe yarar. Ücretlendirme aylık üyelik mantığı ile yapılabilir. Çoğu tekli oyun bir kere satın alındıktan sonra ücret ödenmeyecek şekilde ücretlendirilir. Çünkü çoğunlukla tüm seviyeler bitirildikten sonra kullanıcılar muhtemelen oyunu sileceklerdir. Oysa çoklu oyunculu oyunlar devamlı olarak oynanabilir çünkü her seferinde karşınızdakinin ne yapacağını bilemediğinizden farklı oyun senaryoları karşınıza çıkacaktır.
Eğr bu tip çok oyunculu oyun hazırlıyorsanız lütfen şu konuda dikkatli olun : Oyunun bölümlerini günler , haftalar sürecek kadar uzun yapmayın. Çünkü ayın sonunda oyunu bırakan oyuncuların oyunda bıraktığı boşluklar yada bitmemiş hamleler diğer kullanıcıların hevesini kırabilir.

Bilgi trafiğinin paylaşımı
Bazı asyalı operatörler , oyun üreticilerine bilgi trafiğinden elde edilen kazancı paylaşımayı teklif etmektedirler. (Bu sistemlerde kullanıcılar 256 bytelık bloklardan ücretlendirilmektedirler.) Bazı Avrupa ve kuzey Amerika operatörleri WAP oyunu geliştirenlere ağı kullanma süresi üzerinden pay ödemektedirler. Fakat GPRS daha çok kullanıldıkça ve diğer paket temelli haberleşme standartları yayıldıkça Asya modeline kaymak daha karlı olacaktır.
Trafik geliri paylaşım modeli çok oyunculu oyunlar için daha kazançlı olabilir çünkü bu modelde ağ trafiğindeki artış ek gelir getirmektedir. Burada kullanıcılar için tehlikeli olan çok uzun süreli kullanımlarda kabaran telefon faturalarıdır.
Bu modelde kazanç , oyunun ne kadar çok kişi tarafından ne kadar uzun süre ile oynandığına bağlıdır.

Heyecanlı ve istekli olun
Klasik oyunların hazırlanış bütçeleri yüksek olduğundan oyun geliştiren firmalar maliyet konularında hassastırlar. Mobil uygulama geliştirmede maliyetler düşük olduğundan ve hala hangi tip oyunların mobil platformlara en uygun olduğuna tam olarak karar verilememişken bu ortamda geliştirme yapmak ileriye yatırım olacaktır. Birçok oyun geliştiricisi klasik oyun geliştirme ortamını maliyetli bulurken , mobil oyun geliştirme alanı yepyeni bir imkan ortaya çıkartmaktadır.
Geliştirme süreleri kısadır. Klasik oyunlar gibi 3 yıl yerine , 3 ayda bir oyun tamamlanabilir. Geliştirilen oyunun tutulmama olasılığı vardır ama 3 yıllık bir emekten sonra tutulmamasına karşın 3 aylık bir emeğin boşa gitmesi yeğdir. 3 yıl içinde 12 adet mobil oyun yazmakla aynı zamanda tutulan bir oyun geliştirme şansıda yüksek olmaktadır.

Hala yeni bir ortamın oluşma ve gelişme aşamalarındayız. Bir zamanların başarılı oyun geliştiricileri olan Miyamoto ve Sid Meier'ı mobil oyun ortamında tekrarlamak mümkündür. Örneğin Richard Garriott , Ultima isimli oyunu 3 haftada tamamlamıştı. Günümüzdeki ortamda bu şekilde başarıları yakalamak klasik oyun geliştirme çok zorda olsa , mobil oyunlar için başarılabilir.

Mobil oyun sektöründe teknolojinin tüm olanaklarını kullanarak geliştirilen bir oyun ile bu platformun diğer tüm PC , PlayStation ve XBox gibi ortamlara olan üstünlüklerini ortaya çıkarmasını sağlamak en iyi meydan okuma olacaktır.


<- Makalenin ilk sayfası için tıklayınız <-
Yararlanılan Kaynaklar
1. Introduction to Mobile Game Development - Forum Nokia -> Version 1.1 (Ocak 2003)