Akıllı telefonların kullanım alanları sürekli olarak genişliyor. Teknoloji dünyasını genel olarak değerlendirdiğimizde en çok satılan teknoloji ürünleri de akıllı telefonlar olarak karşımıza çıkıyor. Bilgisayar ve tablet satışlarına oranla çok daha fazla satışı yapılmaya başlanan akıllı telefonlar beraberinde yeni sektörleri de getirmeye başladı. Akıllı telefonların beraberinde getirdiği sektörlerin başında ise mobil yazılım alanı geliyor.
Mobil uygulama geliştirme ve mobil oyun geliştirme gibi yeni alanlar akıllı telefon kullanımının bir hayli fazla olması ile beraber başlı başına en çok öne çıkan sektörler haline geldi. Hem Pazar payı oldukça genişleyen mobil yazılım alanının hem de getirileri de bir hayli artmaya başladı. Hal böyle olunca geliştiriciler de bu alana yönelmeye başladı. Mobil yazılım alanında en çok tercih edilen kol ise mobil oyun kategorisi.
Her geçen gün biraz daha büyüyen pazarda mobil oyun geliştirici sayısı da gündem güne artmaya başladı. Son dönemin popüler alanlarından biri olan mobil oyun geliştirme konusu bu kadar popüler olunca bu alanda izlenmesi gereken yolların ise neler olduğu merak konusu haline geldi. En çok araştırılan konulardan biri olan mobil oyun geliştiriciliği alanına yeni başlıyorsanız bilmeniz gerekenler neler? Bu alanda nasıl bir çalışma yapmak gerekiyor? Oyun geliştirmek için ilk aşama ne olmalı? Daha detaylı bakalım.
Senaryo Belirleme ve Ön Hazırlıklar
Mobil oyun geliştirme alanına giriş yapacaksanız bu alanda kodlama ve program kullanımı gibi konulardan önce bir karar vermeniz gerekiyor. Oyuna başlamadan önce mutlaka oyunun tüm detaylarına hakim olmanız gerek. Oyunda geliştirme aşamalarının nasıl yapılacağı, hangi kademelerden geçileceği gibi konular için öncelikle tam anlamıyla ne istediğinizi bilmeniz gerekiyor.
Oyun geliştirme aşamasında ilk olarak yapacağınız oyunun senaryosunu belirlemeniz. Oyun senaryosunu belirlerken ise planlı gitmek oldukça önemli. Sadece belirli bir taslak oluşturmak yerine yapacağınız oyunun tüm hikayesini oluşturmanız ve bu hikayeye göre levellerin nasıl olacağından oyun aşamalarına kadar parçaları belirlemeniz çok daha planlı çalışmanızı sağlayacaktır. Bu şekilde planlı çalışmanın yanı sıra oyunun aşamalarında yaşayacağınız sorunlara da anında müdahale etme imkanı elde etmiş olacaksınız.
Oyun geliştirme aşamasına geçmeden önce tüm bu artıları nedeniyle ve tabi ki oyununuzu planlamanız için oyun objelerinizi de belirlemeniz gerekiyor. Örneklerle bu durumu açıklayalım. Diyelim ki bir yarış oyunu yapmak istiyorsunuz. Oyuna başlamadan hatta hiçbir teknik detaya girmeden önce oyunun tüm taslağını oluşturmanız gerekiyor. Yarış oyununun kuralları neler olacak? Yarış pistleri nasıl olacak? Kullanıcılara araç kontrollerini nasıl sağlayacak? Oyunda hangi zorluk seviyeleri kullanılacak? Oyun içerisinde yer alacak araçlar hangileri?
Level sistemi nasıl çalışacak? Gibi birçok sorunun cevabını henüz ilk aşamadan vermeniz gerekiyor. Tüm bu sorular ve çok daha fazlası oyun aşamalarını ortaya koymanız için oldukça önemli. Bu şekilde oyunun tüm özelliklerini belirlemeniz ve yapacaklarınızı aşama aşama ele almanız çok daha başarılı bir çalışma düzeni otaya koymanıza, hatalarınızı çok daha kolay tespit etmenize ve hatalarınızın kolay çözmenize olanak sağlayacaktır. Bu nedenle teknik detaylara geçmeden önce oyunlarınızın istediğiniz düzende taslaklarını hazırlayarak istediğinizi tam olarak ortaya çıkarın.
Oyunun Türüne Karar Vermek?
Diğer bir aşama ise yavaş yavaş teknik kısımlara giriş yaptığımız aşama. Bu aşamada da öncelikle yapacağınız oyunun türüne ve özelliklerine karar vermeniz gerekiyor. Yapacağınız oyun sadece Android platformlarında mı kullanılabilecek yoksa iOS üzerinden de mi oynanabilecek? Bunu belirlemeniz gerekiyor. Yani platformunuzu belirlemeniz gerekiyor. Çünkü kullanacağınız tüm kodlama ve kullanacağınız tüm programlar seçiminize göre değişiklik gösterecek. Bunun için öncelikle platform seçimlerine dikkat ediyoruz.
Tüm bunları ilk aşamada belirlemeniz gerekiyor. Aksi halde oyunun ilerleyen aşamalarında değişiklik yapmanız çok daha zor olacaktır. Bunun dışında seçim yapmanız gereken bir başka konu ise 2D mi yoksa 3D oyun mi oyun yapacağınız. Yine kullanacağınız programlarda bu konuya göre değişiklikler gösterecek. 2D oyunlar için farklı sistemler ve farklı teknolojiler kullanılırken 3D oyunlar içinde farklı teknolojiler ve farklı programlar kullanılıyor. Tabi ki her iki alanda da kullanılan ortak programlarda yok değil. Tüm bu seçimleri de belirledikten sonra artık bir sonraki aşamaya geçebilirsiniz.
Mobil Uygulama Alanında Dil Seçme
Şimdi ise yavaş yavaş teknik detaylara giriş yapalım. Mobil alanda oyun geliştirmek istiyorsanız bilmeniz gereken bazı kodlama diller var. Her alanda olduğu gibi bu alanda da uygulama geliştirirken kullanıcıların seçebileceği farklı kodlama dili seçenekleri var. Oyun geliştirme konusunda kullanıcılardan en çok mesajlarda dil seçimi konusunda geliyor. Kodlama dili seçiminde ise mobil alanda genelde iki farklı dil gündeme geliyor. Bunlardan birisi kullanım alanı oldukça geniş olan C# bir diğer ise mobil alanda lider olan Java. Her iki dili kullanarak da mobil alanda oyun geliştirme işlemini gerçekleştirebilirsiniz. Bunun için her iki dilden birini tam anlamıyla bilmek başlı başına yeterli gelecektir.
Fakat oyun geliştirme alanına yeni girecekseniz ve herhangi bir tecrübeniz yoksa sıfırdan başlayacaksanız bu durumda da önerimiz Java dilini seçmeniz. Java sadece mobil oyun alanında değil tüm mobil uygulama ve geliştirici platformlarında geçerli olan bir kodlama dili. Kullanım alanları da oldukça geniş. Özellikle mobil alanda en çok tercih edilen kodlama dili olarak karşımıza Java çıkıyor. Bu nedenle seçimini mobil oyun olacaksa dil olarak Java çok daha avantajlı. Fakat C# biliyorsanız bu dille de oyun geliştirmeniz mümkün. Bunun için ekstra dile ihtiyacınız kalmıyor.
Kullanılacak Olan Programların Belirlenmesi
İşte mobil oyun geliştirme konusunda dikkat edilecek olan ana noktaya geldik. Eğer mobil oyun geliştirmek istiyorsanız kullanacağınız programlar sizin bir nevi kağıt ve kalemini olacak. Bu nedenle çalışmalarınıza başlamadan önce ilk aşamada kullanacağınız tüm programları baştan sona belirlemeniz gerekiyor. Mobil oyun geliştirme konusunda en çok kullanılan uygulamalar ise oyun motorları. Bilgisayar oyunlarında kullanılan oyun motorları son yıllarda mobil alanda da çok sık kullanılmaya başlandı.
Oyun motorlarının sağladığı avantajlar ise saymakla bitmez. Oyun motorları sayesinde oyun içerisinde kullanacağınız animasyonları program içerisinde rahatlıkla oluşturabiliyorsunuz. Bunun yanı sıra oyun içerisinde kullanılacak olan fiziklerde yine sorunsuz bir şekilde tek program üzerinde düzenlenebiliyor. Basit şekilde model çizimi oluşturabileceğiniz oyun motorları üzerinde sahnelerinizi oluşturabiliyor, levellerinizi düzenleyebiliyor ve hatta belli denemeler yaparak oyununuzun her aşamasında sorun var mı yok mu aşama aşma kontrol edebiliyorsunuz.
Bunun için kullanılan oyun motorları arasında da geniş bir seçim yelpazesi bulunuyor. Kullanıcıların bu aşamada seçebilecekleri farklı oyun motorları bulunuyor. Bu oyun motorlarından ve özelliklerinden bahsedelim. En çok bilinen oyun motorlarından bahsedeceğiz ama bu noktada öncelikle hatırlatmamız gereken bir nokta var. Yapacağınız oyun 2D ise farklı 3D ise farklı oyun motorları işinizi görecektir. Öncelikle 3D oyunlar için kullanılan oyun motorlarını ele alalım. 3D oyun motorlarında tercih edeceğiniz oyun motorları şöyle;
Unity: Oyun motoru alanında en başarılı uygulamalardan biri olan Unity oyun motoru kullanıcılara birçok avantaj sunmakta. Mobil oyun yapımını desteklediği gibi bilgisayar oyunlarında da oldukça sık kullanılan bir motor olan Unity oyun motoru sayesinde çok kolay bir şekilde oyunlarınızı derleyebiliyorsunuz. Program model üzerinden doğrudan kodlama imkanı sunduğu gibi bunun dışında anlık olarak oluşturduğunuz sahneleri de derleyebiliyorsunuz.
Tek tek modelleri ayrı ayrı ayrı ele almanız mümkün. Oluşturduğunuz modellerden kolaylıkla istediğiniz sahneleri ve levelleri de yine Unity üzerinden oluşturabiliyorsunuz. Sahneler ve sahneler içerisinde kullandığınız objeleri de tek tek ele almanız mümkün. Söz konusu oyun motoru kolay kodlama imkanı sunduğu gibi animasyonlarınızı da tek bir program üzerinden oluşturmanıza imkan veriyor. Ayrıca yaptığınız oyunları mobil platformlara uygun olarak derleyip yüklemeye hazır olarak alabiliyorsunuz.
Unreal Engine: Mobil oyun programlama için kullanabileceğiniz bir diğer oyun motoru ise Unreal Engine oyun motoru. Yine bilgisayar oyunlarında da en çok kullanılan oyun motorlarından biri olan Unreal Engine oyun motoru animasyon oluşturmaktan tutunda oluşturduğunu animasyonları sahneler içerisinde kullanmanıza da izin veriyor. Yine modellerin tek tek ele alınarak kodlana bildiği oyun motorunun kendi kodlama dili olduğunu da belirtelim.
Blueprint adı verilen kendi görsel programlama diline sahip olan oyun motorunun bu şekilde hiçbir kodlama bilgisi olmayan geliştiricilerin bile belli bir ölçüde oyun oluşturmalarına izin veriyor. Zemin harita oluşturma gibi ekstra özellikleri de bulunan oyun motorunun son dönemde VR desteğini de aldığını belirtelim. Yine oyun motorlarının en büyük avantajlarından biri olan oyunları önceden deneme imkanı bu oyun motorunda da olduğu gibi geçerli. Oyunlarınızı yayınlamadan önce doğrudan oyunlarınızı derlemeye hazır şekilde test edebiliyorsunuz.
Bunun için ekstra olarak bir kurulum yapmanıza ya da yeni bir programa da ihtiyacınız olmuyor. Doğrudan Unreal Engine yeterli. Ayrıca son olarak oyun motorunun bir platform için geliştirilen oyunları hemen her platforma hazır halde dönüştürme imkanı da bulunuyor. Geliştirdiğiniz oyunları bu şekilde hem web üzerinden çalışabilecek bir oyun hem de farklı platformlarda çalışabilecek bir oyun haline getirebiliyorsunuz. Ayrıca yine Unity programında olduğu gibi bu programda da oyun projelerinin doğrudan kullanıma hazır paket dosyalar olarak yayınlanabildiğini de belirtelim. Zaten bu yönü ile oyun motorunun çok daha fazla tercih edildiğini de söylemek yanlış olmaz.
3 boyutlu mobil oyun geliştirecek olan kullanıcılar için bu programların oldukça yeterli programlar olduğunu söyleyebiliriz. Eğer oyununuzu 2D olarak geliştirecekseniz bu durumda da kullanacağınız programlar değişiklikler gösterecek. Bu alanda Android platformlar için en çok tercih edilen uygulamalardan birinden bahsedeceğiz. AndEngine olarak yayınlanan bu program sayesinde yine çok kolay bir şekilde oyunlarınızı oluşturabiliyorsunuz.
Oyun içinde yer alan objelerin kolaylıkla kodlanabilmesini sağlayan program sayesinde. Oyun dosyalarınızı da hazır hale getirebiliyorsunuz. Animasyon hareketlendirme ve benzer birçok özelliği olan AndEngine programının fizik bölümünde ise yardımcı programlara ihtiyacı olabiliyor. Bu konuda da genelde AndEngine ile beraber Box2D programı kullanılmakta. Yardımcı programlar sayesinde fizik motoru bölümünde de sorunsuz bir şekilde destek alabiliyorsunuz.
Model Çizimi Nasıl Yapılır?
Oyun motorlarından kodlama dillerinden bahsettikten sonra oyun geliştirme konusunda bir diğer önemli konuya geçiş yapalım. Bu noktada önem verilen diğer bir konu oyun içerisinde yer alacak olan nesnelerin nasıl modelleneceği. İster 2D bir oyun yapın isterseniz de 3D bir oyun yapın mutlaka oyun içerisinde kullanılacak olan nesneleri modellemeniz gerekiyor. Yine bu aşamada da yapacağınız oyunlara göre değişiklikler ortaya çıkmakta. Eğer 3 boyutlu bir oyun yapıyorsanız bu durumda modelleme için 3DS Max, Maya gibi profesyonel model programları üzerinden çizimler yapmak gerekiyor.
3 boyutlu nesneler bu şekilde çizimlerle beraber oyun içerisinde kullanılabilecek şekle getirilebiliyor. 3 boyutlu nesneleri bu programları kullanarak çizdikten sonra ise yapmanız gereken oyun motorlarına aktararak bu modelleri kodlamak olacaktır. Kolay bir şekilde çizim yaptığınız tüm nesneleri oyun içerisinde kullanabiliyorsunuz. Bunun dışında oyun içerisinde animasyonlarda 3D modelleri kullanmak ya da modellerin hareketini gerçekleştirmek istiyorsanız da bu noktada öncelikle modelleri çizerken belli noktalara dikkat etmeniz gerekiyor.
Hareket edecek olan bölümlerin özel olarak çizilmesi ya da parçacık sisteminde yapılması gerebilir. Özellikle karakter modellemelerinde ise kullanılan iskelet sistemleri bulunuyor. Kullanılan tüm bu iskelet sistemleri sayesinde istediğiniz şekilde karakterlerin hareketlerini gerçekleştirmeniz mümkün hale geliyor.
Ayrıca iskelet sisteminde yer alan her bir parçacığı bu şekilde kodlamanız ve farklı hareketler oluşturmanız da daha kolay hale geliyor. Bütün modeli hareketlendirmenin yerine sadece hareket etmesini istediğiniz bölümleri hareketlendirebiliyorsunuz. 3D modelleme sisteminde gelen olarak işleyiş bu şekilde olsa da 2D modelleme de ise farklı teknikler kullanılabiliyor. 2D modellemelerde genelde resimler üzerinden animasyonlar oluşturuluyor.
PNG formatında resimlerin yapacakları hareketler tüm halile çizilerek ardı ardına eklenip ardından da hareket edermiş gibi bir görüntü veriliyor. Yardımcı programlarla yapılan bu düzenleme ile beraber resimlerden kolaylıkla animasyon oluşturma işlemi gerçekleştirilebiliyor. Tümleşik resim adı verile bu teknik ile beraber hareket edecek olan nesnenin tüm hareketlerinin resimlerde gösterilmesi ve ardından da hareketlendirme işleminin gerçekleştirilmesi sağlanıyor.
2D modelleme tekniğinde kullanılan bir diğer yöntem ise parçacık modelleme tekniği. Parçacık modelleme tekniğinde de hareket edecek olan modeli parçalar halinde çizmeniz gerekiyor. Parçalar haline oluşturulan modelin hareketlere göre birleşimlerini yapıp yine bu teknik ile modellerinizi oluşturabiliyorsunuz. Hareketlendirme sisteminde de Flash gibi programlardan yararlanılıyor.
Oyunların Yayınlanması
Tüm bu aşamalara göre oyunlarınızı oluşturup oyun motorunuzdan da çıktı aldıktan sonra yapmanız gereken işlem artık çok basit. Sadece oyunu geliştirdiğiniz platforma göre geliştirici hesabı açmanız yeterli oluyor. Android işletim sistemi için Google Play Store üzerinden geliştirici hesabı açmanız iOS işletim sisteminde ise App Store geliştirici hesabınızı açıp oyunlarınızı yüklemeniz yeterli oluyor.