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

Giriş

Modern telefonlar artık PC lerle karşılaştırıldıklarında zayıfta kalsalar belirli bir işlem gücüne sahipler ve bu güç oyun oynamak için yeterli ortamı sağlamakta. Günümüzdeki telefonlar doğaları gereği bir ağın parçası olarak dijital data gönderip alabilmekteler. Temel olarak ses alış verişi üzerine tasarlanmış olan bu cihazlar diğer tip datalarıda transfer edebilmekte. Bu sayede oyuncular dünyanın neresinde olurlarsa olsunlar biribirileri iletişim kurabilir ve oynadıkları oyun ile ilgili verileri paylaşabilirler.

Cep telefonlarını işlem gücü ve yeteneği açısından karşılaştırmak gerekirse , şu an Java destekli telefonların gücü 1990 lardaki ev bilgisayarları ve ilk el oyun konsolları gücündedir. Bu telefonlarda RAM genelde 128 KB ile 500 KB arasında dolaşmaktadır. Bazı smartphone olarak adlandırılan daha gelişmiş modellerde (Nokia 3650 gibi) hafıza 4 MB gibi yüksek seviyelerdedir. Telefonlar bilgisayarlar ile karşılaştırıldıklarında sınırlı ekran ve bilgi giriş imkanlarına sahipler : Ekranlar küçük , klavyeler telefon numaralarını çevirmek için tasarlandığından text benzeri bilgi girişi zor olmakta ve oyun için gereken ses kaliteleride iyi değil.

Mobil telefonların en büyük avantajı sahipliğindeki çoğunluktur. Dünyadaki yetişkin kesimin büyük çoğunluğunun en azından bir mobil telefona sahiptir ve Nokia 2003 sonuna dek 50 - 100 milyon adet kadar renkli ekranlı ve Java desteği olan telefon satmayı planlamaktadır.

Mobil Telefonlardaki Oyunlar

Cep telefonlarında oynanan oyunlar için değişik platformlar mevcuttur :

Gömülü Oyunlar (Embedded Games)
Gömülü oyunlar özel olarak telefonun işlemcisinde çalışmak üzere üretilirler. Telefonun imalatı sırasında telefonun işlemcisine yerleştirilirler ve onunlar birlikte piyasaya sürülürler. En iyi örnek olarak Nokianın yaklaşık 4 yıldan beri sunduğu yılan oyunu verilebilir. Telefonlara gömülü oyunları sonradan yüklemek mümkün değildir.

SMS Oyunları
Kısa Mesaj Servisi (Short Message Service) telefondan telefona kısa text mesajlarının iletilmesi için kullanılmaktadır. Genelde ücret 10 cent civarındadır. SMS oyunları genelde oyunun yönetildiği serverın kontrol ettiği telefon numarasına oyuncunun telefonundan bir SMS gönderilerek oynanır. Server SMS mesajını işler ve geriye oyuncunun telefonuna hamlesinin sonucunu bir SMS ile gönderir.
SMS oyun için iyi bir ortam değildir çünkü en başta oyuncunun tekst mesajları girmesi ile oynanır. Yani bilgisayarlardaki komut satırları (command line) ile oynanan oyunlara benzetebiliriz. Ayrıca oyun oynamak pahalıdır çünkü sadece 10 mesaj bile 1 $ etmektedir. MMS in gelişmesi ile bu ortam biraz daha cazip hale gelmiştir ama genede SMS tabanlı oyun ortamı cazip değildir.

Browser Oyunları
1999 dan beri üretilen tüm telefonların hemen hepsinde WAP (Wireless Application Protocol) desteği bulunmakta. WAP , static bir browserdır ve temelde Web Browserlardan esinlenerek ve bunların dar bantlı ağ iletişimine sahip olan cep telefonları için optimize edilerek uygulanmış halidir. WAP oyunlarının oynanma şekli şu şekildedir : Oyuncu , oynamak istediği oyun için belirli bir URL'e bağlanır. Bu URL in yanı oyunun yeri çoğunlukla telefon operatörlerinin bünyesindedir. Buradan bir yada daha çok sayfayı telefonuna indirir ve görüntüler. Bu sayfalardan menüler seçebilir , tekst mesajlar girebilir , servera data gönderebilir ve diğer sayfaları görüntüleyebilir. WAP ın bir versiyonu (1.x) WML kullanırkan , WAP 2.x versiyonları ile daha iyi görüntü performansı sağlayan XHTML 'i desteklemektedir.
WAP , SMS 'e göre daha kullanışlı , daha ucuzdur. Fakat static bir ortam sunması ve telefon üzerinde hiç bir işlem yapılmaması tüm yükü oyun serverına yüklemekte ve ağda dolaşımını fazlalaştırmaktadır.
WAP telefonlarda desteklenmeye devam edecektir ve bazı geliştiriciler WAP'ı oyunların kuralları ve oyun yardımı gibi konularda oyunculara yardımcı olmak amacı ile kullanabilirler. Böylece zaten kısıtlı olan telefon hafızalarından kar edilmiş olunur. Fakat oyun geliştiriciler daha zengin olanaklar sunan J2ME ortamını tercih etmektedirler.

J2ME ve Diğer yorumlanmış Diller
J2ME , Java dilinin cep telefonu ve PDA gibi küçük cihazlar için optimize edilmiş versiyonudur. Şu an Nokia başta olmak üzere birçok telefon üreticisi J2ME destekli telefonlar üretmektedir.
J2ME , standart Javadan (J2SE) daha sınırlı özelliklerede sahip olsa , cep telefonlarında oyun oynanması için yeterli ortamı sağlamaktadır. J2ME ; SMS ve WAP 'a göre kullanıcı arayüzlerinde kullanışlı ortamlar sunabilmekte , karakter animasyonu yapabilmekte , ve uzak (remote) serverlara bağlanabilmektedir. Bu dökümanlarda bahsedilecek olan J2ME şu an piyasadaki telefonlardaki yaygın desteği sayesinde en çok kullanılan mobil oyun geliştirme ortamıdır.
J2ME sadece telefonlarda çalışan bir yorumlanmış dil değil , aynı zamanda arkasında birçok firmanın olduğu bir endüstri standartıdır. J2ME ile rekabet edebilecek olan diğer diller genelde belirli bölgelerdeki kullanımları ile sınırlı kalmaktadır. (QualComm'un BREW nun Amerikada ve GVM inde Korede kullanılması gibi)

C++ Uygulamaları
C++ ile mobil oyunlar geliştirilebilir. C++ ile geliştirilen kod doğal makina kodu olduğundan yorumlanan diğer dillere göre telefonun kaynaklarını (kullanıcı arayüzleri, telefonun donanımı) daha iyi kullanır ve hızlıdır. C++ ile hızlı , grafik açıdan zengin oyunlar geliştirilebilir.
C++ ile oyun geliştirmek için Seri 60 platformu kullanılmalıdır. Seri 60 telefonlar için geliştirilmiş olan ve J2ME , C++ desteği veren bir platformdur. Seri 60 'ı birçok üretici desteklemekte ve telefonlarında kullanmaktadır.

Mobil Oyun Gelistirmenin Klasik Oyun Gelistirme İle Farkları

Mobil oyun geliştirme birçok yönden klasik oyun geliştirmeden ayırılır :

Geliştirici Sayısı
Klasik Pc oyunları yada konsol oyunlarını geliştirmek için 12 ile 30 kişilik bir ekibe ihtiyaç vardır. Oysa birçok mobil oyun 3 ile 5 kişilik ekipler tarafından ve çoğunlukla tek bir geliştirici tarafından geliştirilmektedir.
Bütçe
PC yada konsol oyunu geliştirmek için 1.5 ile 5 milyon dolarlık bir bütçe gerekirken birçok mobil oyunun bütçesi 100.000 dolardan azdır. Mobil telefonlardaki kısıtlı görüntüler , klasik oyun geliştirmede görüntüler için harcanan emeğin harcanmamasına neden olarak aslında mobil uygulamalar için bir avantaj haline gelmektedir.
Geliştirme Süreci
Klasik oyunlar 2 ile 3 yılda tamamlanırken , mobil oyunlar 3 ayda tamamlanabilmektedir. Başka bir deyişle küçük bir bütçe ve küçük bir ekiple profesyonel bir oyun geliştirebilir ve bunu satabilirsiniz. Bu nokta klasik oyun geliştirmenin maliyetlerinden ve sürecinden çekinenler için önemli bir noktadır.
Ağ Cihazları
Mobil oyunlar şu ana kadarki oyunlardan farklı bir şeye sahipler: Ağa bağlılar ve çoklu oyunculu olarak oynanabilirler. PC ler modemler ile ağa bağlanırlarken ve el konsol oyunlarıda giderek online olurken , telefonlar doğası gereği bir ağın parçası olarak çalışmakta. Her ne kadar işlemci güçleri bize eski ev bilgisayarlarını hatırlasada büyük bir ağın doğal parçaları olmaları telefonlara çoklu oyunculu sistemlerde üstünlük kazandırıyor.
Açık Standartlar
Konsol oyun geliştiricileri oyun geliştirme konusunda üreticilere bağlıdır ve platform üreticisine belirli bir ücret ödemek zorundadır. Oysa mobil uygulama geliştirme dünyasında geliştiriciler istedikleri oyunları kimseye danışmadan yada bir ücret ödemeden geliştirebilirler.Bundan başka mobil oyun geliştirmenin altında yatan kavramlar , standart olarak herkese açık olarak yayınlanmıştır.
Yaygınlaştırma
Klasik oyunlar genelde belirli satış noktalarında satılmak suretiyle piyasada yer bulurlar. Mobil oyunlar ise telefona indirilebilir ve kullanıcı tarafından telefona kurulabilir. Çoğu durumda oyunlar telefona sahip olduğu ağ bağlantısı yardımı ile indirilir yada bilgisayar ile telefon arasında bir bağlantı (Kızılötesi , BlueTooth , kablo) kurularak bu bağlantı yardımı ile indirilir.
Mobil oyunları dağıtım kanalları farklı olabilmektedir. Kullanıcılar oyunları telefonlarını satın aldıklarında diretk olarek telefonun içindeki oyun menüsünde bulabildikleri gibi , operatörlerinin oyun menüsündedende seçim yaparak indirebilirler. Yada Nokia Club , Handango yada Vizzavş gibi portallerdende oyun indirilebilirler.

Mobil Ortamın Avantaj ve Dezavantajları

Ortamın Avantajlar

Büyük Kullanıcı Potansiyeli
Günümüzde 1 milyar kadar cep telefonu dolaşımdadır ve bu sayı gün geçtikçe artmaktadır. Amerika hariç gelişmiş ülkelerin hepsinde nüfusun çoğunluğunda bir bilgisayar yerine cep telefonu vardır. Şu an Java telefonları ve işletim sistemli telefonlar , tğm telefonlar arasında azınlıktadır. Fakat birkaç yıl içinde Java lı telefonlar standart hale gelecek. Bunu düşünürseniz , oyun geliştirmiş olduğunuz Java platformu şu ana kadar piyasada olan tüm platformlardan daha fazla bir potansiyele sahiptir. PlayStation ve Gameboy dahil.

Taşınabilirlik (Portability)
GameBoy un bugüne kadar satılan tüm oyun konsollarında fazla satmasının sebebi , GameBoy un taşıanabilir olmasıdır. İnsanlar istedikleri yer ve zamanda oyun oynamak fikrini sevdiler. Her ne kadar bir telefon bilgisayar ve diğer oyun konsolları ile karşılaştırıldığında iyi bir oyun ortamı olmasada , insanlar telefonları hep yanlarında taşımaktadırlar. Onlara iyi oyunlar verebilirseniz , ev dışında yani bilgisayarlarından ve konsollarından uzak kaldıklarında telefonlarında oyun oynayabilirler.

Ağa Bağlı
Telefonlar doğaları gereği bir ağın parçası olduklarından , çok oyunculu oyunlar telefonlarda severek oynanabilir.

Ortamın Kısıtlamaları

Küçük Ekran Boyutları
Telefon ekranları küçüktür. inç başına düşen nokta sayısı (dots-per-inch) olarak belirlenen ekran çözünürlüklerinin gelişmesine ve renkli ekranların giderek standart olmasına rağmen boyutlarda fazla bir büyüme olamayacaktır çünkü insanlar büyük ve hantal telefonlardan hoşlanmamaktadırlar.
Ekran boyutları değişkendir. Örneğin Nokia 60 serisi telefonlar , Nokia 40 serisi telefonlara göre farklı bir ekran formu sunar. Bu farklar yüzünden geliştiriciler uygulamalarını farklı ekranlar için test zorundadırlar.

Yetersiz Renk ve Ses Desteği
Piyasadaki birçok Java destekli telefonun renkli ekranı olmasına rağmen , diğer telefonların çoğu siyah beyaz yada renksizdir. Renkli olanlarda ise 12 Bit renk desteği kullanılmaktadır. Telefonlar doğaları gereği ses ile ilgili cihazlar olmalarına rağmen , uygulamalardaki ses desteği zayıftır. J2ME destekli telefonlarda MIDI desteği bir standart olma yolundadır. Genelde sadece bir adet ses ve kanal imkanı vardır.

Sınırlı Uygulama Büyüklüğü
Birçok Java uyumlu telefonda MIDlet uygulamaları için kullanılan hafıza sınırlıdır. Ayrıca MIDletlerin boyutu içinde izin verilen belirli bir büyüklük vardır (Örneğin 64 KB gibi). Bu sınırlamalar telefon üreticisine , bazende telekom operatörüne bağlıdır.
Bu tip kısıtlamalar iyi bir oyun geliştirmenin önünde engel gibi dursada şunu hatırlamakta yarar var : Eski ev bilgisayarlarında hafıza 64 KB ve hatta daha bile azdı. Fakat günümüzde bile bu ortamlar için geliştirilen eski oyunları beğenenler var. SmartPhone denilen yüksek hafızalı telefonlar için bu sınırlar yok. Örneğin 4 MB hafızalı bir Nokia 3650 için bu tip kısıtlamadan söz edilemez.

Yüksek Hat Gecikmesi
Gecikme : Bir istemcinin bir istek yapması ile cevap alması arasında geçen süre. Local ağ içindeki sistemlerde mikrosaniyeler ile , internet üzerinde milisaniyelerle ve telefon sistemlerinin kullandığı hava ağı (air Network) te ise saniyelerle ölçülür. Gecikme internet üzerindeki oyunlardada ciddi bir sorundur ve geliştiriciler bu gecikmeyi azaltmaya çalılmak için yada etkilerini azaltmak için bayağı efor harcarlar. Hava Ağını (Air Network) kullanan sistemlerde ise bu gecikme yüzünden hızlı aksiyon oyunları geliştirmek imkansızdır. Bu ortamlar için sıralı oynanan çok oyunculu oyunlar en uygun oyunlardır. İlerde bu gecikme ile başetmek için bazı yollardan bahsedilecektir.
Operatörler cep telefonlarının kullandıkları bant genişliği artırırlarken gecikmek olayını öncelikli sırada görüp bir iyileştirme yapmıyorlar. Çünkü bu sorun uygulamalar bazında arka planda kalıyor fakat daha fazla ileri ötelenecek bir sorun olmaktan çıkması gerekiyor.
Bu gecikme BlueTooth veya diğer LAN bağlantı teknolojilerini kullanan telefonlarda geçerşi değildir. Çünkü BlueTooth ile telefonlar yaklaış olarak internet hızlarında (200-400 ms) haberleşebilirler. Örneğin Nokia 3650 de Symbian ile Nokia 6600 da ise JSR API lerini kullanarak Java ile BlueTooth uygulamaları geliştirmek mümkündür.

Kesintiler Önemlidir
Oyun sırasında bir telefon çağrısı gelirse , oyun kesintiye uğraytacaktır. Burada uygulamanın o sırada oynanan oyunun statüsüne zarar vermeden oyunu yönetmesi , en iyisi durdurması gerekir. Yoksa oyuncu telefon ile konuşurken , oyundaki canavarlar hareket etmeye devam eder ve oyuncunun karakterlerini yerlerse , oyuncu telefon konuşması sona erdiğinde kaybedilmiş bir oyuna dönebilir. Bu ancak kodlama yaparak halledilecek bir olaydır (J2ME de PauseApp olayı)

Gelişen Teknolojiler
Cep telefonlarında oyun geliştirmek için kullanılan teknolojiler özel olarak oyun geliştirmek için tasarlanmadıklarından konu ile ilgili olarak kısıtları çoktur.Örneğin J2ME nin resimleri şeffaf gösterme özelliğini desteklememesi , oyunlardaki karakterlerin çirkin gözükmesine neden olmaktadır.Bu tip eksikleri birçok firma kendine göre gidermekte ve oyun geliştirmeyi kolaylaştırmaktadır. Fakat bu seferde J2ME nin en temel özelliği sarsılmaktadır : Her cihazda uyumluluk. Her cihaz üreticisi kendine özel API ler kullandığından geliştirilen uygulamaların aynı oyun için , her ayrı marka telefonda farklı versiyonları olmak zorunda. Yani bir oyun Nokia için farklı , Siemens için farklı yazılıyor , çünkü her ikisindede farklı API ler kullanılıyor. MIDP 2.0 bu kısıtlamaları çözmeyi hedefliyor.

-> Makalenin Devamı için tıklayınız->