Bu doküman "The Mouse Smarty" oyun geliştirme projesinin genel proje planını ve iş akış süreçlerine yönelik detayları kapsamaktadır. Oyun geliştirme sürecine yönelik planlar, tanımlamalar ve süreç takipleri, ilgili başlıklar altında detaylandırılmışlardır.
*Uyarı: Ortalama oyun projelerine kıyasla daha küçük ölçekli olan bu proje için hazırlanmış olan bu doküman, daha büyük ölçekli başka oyun projeleri için hazırlanmış olan dokümanlarla tutarlılık göstermeyebilir yada kılavuz olarak kullanılması sakıncalı olabilir.
Oyun geliştirme süreci birçok karmaşık aşamadan oluşmaktadır. Dolayısıyla tüm süreçlere yönelik detaylandırılmış planlar oluşturulması ve bu süreçlerin zaman çizelgeleri ile takvimlendirilmesi, iş akış sürecini daha net ve takip edilebilir bir formata sokacaktır. Çoğu geliştirme süreci diğer süreçlerle bağlantılı olacağından, iş akışın iyi bir şekilde planlanması ve şemalarla ifade edilmesi, üretim sürecinde oluşacak olan karışıklıkları ve iş kayıplarını minimuma indirecektir.
Proje dahilinde gerçekleşecek olan süreçler aşağıdaki listede belirtilmiştir:
Yukarıda belirtilen süreçler birbirinden tamamen bağımsız olabileceği gibi, doğrudan diğer süreçlere bağlı da olabilir. Dolayısıyla tüm süreçleri çok iyi bir şekilde tanımlayarak planlar oluşturmak, en verimli iş akış sürecinin ve en kısa zaman çizelgesinin oluşturulabilmesine imkan verecektir. Bu süreçlerin tanım ve kapsamları aşağıda yer almaktadır:
Oyun süreçlerine yönelik ihtiyaç duyulacak her türlü bilgi ve kaynağın incelenerek, hem oyun geliştirme süreçlerinin planlanmasına yardımcı olacak, hem de en verimli ürünün ortaya çıkmasına faydası olabilecek kaynakların bir araya getirilmesi sürecidir. Bu süreçte toplanan bilgiler doğrultusunda iş akış planlarına, kullanılacak olan yazılımlara, iş standartlarına ve üretim tekniklerine yönelik kararlar alınıp dokümanlar oluşturulur.
Araştırma sürecinde toplanan veriler doğrultusunda ihtiyaç duyulan dokümanların oluşturulması sürecidir. Bu süreçte proje ölçeğine göre ihtiyaç duyulacak olan her türlü doküman oluşturulur. Bu dokümanlardan bazıları, oyun tasarım raporu, proje planı, iş akış süreci dokümanları, standartlara yönelik dokümanlar, proje zaman çizelgesi ve test süreçlerine yönelik dokümanlardır. Rapor oluşturma süreci birçok sürece yönelik karışlıklıkları ortadan kaldıracağı için önemli bir süreçtir ve titizlikle sürdürülmesi gerekmektedir. Rapor oluşturma sürecine proje başlangıcında başlanır ve ihtiyaç duyulduğu sürece devam edilir.
Oyun geliştirme süreçlerine kılavuzluk edecek ve tüm süreçlerin tutarlı bir şekilde sürdürülmesine imkan tanıyacak olan çok önemli bir aşamadır. Sanatçıların bir araya gelerek yaratıcılıklarıyla birlikte projenin ve son ürünün genel hatlarını oluşturduğu süreçtir. Kısaca projenin sahip olduğu konsept bu aşamada yaratılır. Oluşturulan konseptler çoğunlukla görsel elemanlardan oluşur. Gerektiği durumlarda ses, animasyon ve özel efektler de bu süreç içerisine dahil edilebilir.
yun ortamının doğası gereği tüm oyun öğelerinin 3D elemanlardan oluşması gerekmektedir. Bu elemanlar oluşturulan genel konsept dahilinde olmalı ve önceden belirlenen standartlara uymak zorundadır. Dolayısıyla oldukça karışık ve yüksek derecede beceri gerektiren bu süreç, oyuncunun deneyimini doğrudan etkiler ve özenle sürdürülmesi gerekir. Bu süreçte oluşturulan ürünler oyunda yer alan ana karakterler olabileceği gibi oyun ortamını oluşturan çevresel elemanlar da olabilir.
Ana menü oyunu kullanıcıya tanıdan ilk arayüz olması sebebiyle önemli bir oyun elemanıdır. Burada ihtiyaç duyulan elemanlar ve ana menü dahilinde olması gereken özellikler, araştırma süreçlerinde toplanan bilgilerle şekillenen genel oyun konsepti sonucunda belirginleşir. Dolayısıyla oyun geliştirme süreçleri içerisinde tamamen farklı bir dallanmayla ifade edilebilir. Oyun arayüzüne dahil olan tüm elemanlar oyuncunun ihtiyaç duyacağı bilgileri sunan ve oyuncu etkileşimlerini mümkün kılan öğelerdir. Dolayısıyla kendi başına oldukça zahmetli ve karışık bir süreç olduğundan titizlikle sürdürülmesi gerekmektedir.
Oyunda yer alacak tüm elemanların hazırlanmasından sonra bu elemanların oyun ortamı içerisinde bir araya getirilerek oyunun gerçekleşeceği ortamın oluşturulması gerekmektedir. Tüm elemanların hazır olmasından dolayı oyun ortamını ve aşamaların oluşturulması kolay bir süreçmiş gibi algılanabilse de, aslında birçok tekniğe bağlı kalarak tamamlanması gereken bir süreçtir. Mümkün olan en pratik teknikler uygulanmalı ve performans hedefleri yakalanmalıdır. Ayrıca oyuncunun deneyimleyeceği ortam bu süreçte oluşturulduğundan, genel oyun konseptini mümkün olduğunca iyi yansıtılabilmesi hedeflenmelidir.
Oyun etkileşimleri, görsel efektler, fiziksel efektler, skor mekanizmaları ve genel oyun işleyişi bu sürece dahildir. Dolayısıyla oyun konseptinde oluşturulan genel karakter programsal olarak da bu süreç içerisinde desteklenmelidir. Oluşturulan her mekanizma titizlikle ve çok karmaşık yöntemlere gidilmeden sürdürülmelidir. Oyunun çalışma performansını doğrudan etkileyen bir süreç olduğundan performansa yönelik denetlemeler ve testlerin sık sık yapılması gerekmektedir.
Bir oyunun oluşturulması için birbirinden farklı ve oldukça karışık süreçlerin bir araya gelerek ortak bir ürün oluşturması gerekmektedir. Dolayısıyla bu süreçlerin her birinde sorunlar ve hatalar oluşmaktadır. Ayrıca birbiri ile ilişkili olan her süreç için de tutarsızlıklardan ve teknik sıkıntılardan dolayı hatalar oluşabilmektedir. Tüm bu hataların tespit edilerek giderilmesi ve oyuncunun iyi bir oyun deneyimine sahip olabilmesini garanti altına almak için oyun testleri mümkün olan her süreçte sık sık yapılmalıdır.
Bir önceki başlıkta tanımlanan oyun geliştirme süreçleri dahilindeki proje zaman çizelgesinin grafiği aşağıda yer almaktadır:
Yukarıdaki grafikten de görülebildiği gibi toplam proje süreci 10 haftadır. Proje süreçlerinin bazıları birbirinden bağımsız gerçekleşebildiği gibi bazı süreçlerin başlatılabilmesi için bir önceki sürecin tamamlanması gerekmektedir.
Üretim süreçlerinin başlatılabilmesi için araştırma ve raporlama süreçlerinin tamamlanması gerekmektedir. Çünü genel standartların ve üretim süreçlerine yönelik tasarımların yapılıp dokümantasyonunun oluşturulması sonraki süreçlerin sağlıklı bir şekilde sürdürülebilmesi için çok önemlidir.
3D modelleme ve arayüz elemanlarının oluşturulma süreçlerinin başlatılabilmesi için bu süreçlere ilişkin dokümanların tamamlanmış olması ve genel oyun konseptinin oluşturulmuş olması gerekmektedir. Bu iki süreç bir birinden bağımsız olarak eş zamanlı gerçekleştirilebilir. Her iki sürece yönelik ürünlerin büyük oranda tamamlanması ile oyun ortamı ve aşamaların oluşturulması süreci başlatılabilir. Böylece oyun son halini yavaş yavaş almaya başlamış olur.
Programlama sürecinin kapsamı sadece oyun ortamına ve oynanırlığa yönelik olduğundan, aşamaların oluşturulması süreciyle paralel yürütülebilmektedir. Dolayısıyla algoritmaların oluşturulması, programlanması ve testlerin yapılması ancak bu sürecin başlangıcıyla mümkün olmaktadır.
Oyun geliştirme sürecinde öngörülen aşamalara yönelik iş akışı aşağıdaki grafikte belirtilmiştir.
Yukarıdaki grafikte ifade edilmiş süreçler arasında en çok vurgulanması gereken rapor oluşturma sürecinin proje boyunca sürdürülmesi ve raporların güncel tutulmasıdır. Her sürece ait raporların güncel tutulmasıyla takip eden süreçlerde sorun yaşanma ihtimali önlenmiş olur.
Grafiğe göre programlama ve oyun ortamı oluşturulması süreçleri önceki tüm süreçlere bağlıdır. Böylece bu sürecin başlatılabilmesi için önceki süreçlerin çok iyi planlanması ve takvimlendirilmesi gerekmektedir.
Son olarak vurgulanması gereken detay ise test sürecinin tek bir aşamadan oluşmamasıdır. İlgili her sürecin içerisinde test önemli bir yer tutar ve son test sürecinde yenilenmek üzere test süreçleri rapor edilir. Son testlerde önceki testler tekrarlanır ve herhangi bir düzenlemenin yeni sorunlar oluşturmadığından emin olunur. Son test süreci kendi başına komple bir süreçtir ve projenin kalite kontrolünü temsil eder.
Geliştirme ortamı kolay anlaşılır ve karışık olmayan bir dizin yapısına sahip olmalıdır. Her geliştirme elemanının konumu ve formatı, geliştirme sürecinin aksatmadan veya iş kaybına yol açmadan iş görecek şekilde düzenlenmelidir. Bu çerçevede proje için hazırlanan plan doğrultusunda çalışma ortamınını dizin yapısına ait şema aşağıda yer almaktadır.
Yukarıdaki şemada da belirtildiği gibi dizin yapısı proje süreçlerine paralel bir yapıda oluşturulmuştur. Bu dizin yapısında yer alacak her elemanın konumu net bir şekilde dizin adıyla ifade edilmektedir. Dizinler altında yer alan her proje geliştirme eleman türü için ayrı bir alt dizin oluşturulmalıdır. Yani farklı işlevlerde kullanılacak elemanların karışık bir halde bulunmasının önüne geçilmelidir. Örnek vermek gerekirse ana menü çalışmaları için hazırlanan tasarım dokümanları "Görsel Tasarım Çalışmaları" dizininin altında bulunmalı, Flash formatındaki kaynak dosyalar "Menü ve Arayüz Dosyaları" dizininde yer almalı ve kaynak dosyaları içerisine dahil edilecek olan görseller ise "Menü ve Arayüz Dosyaları" dizini altında "Ana Menü Görselleri" dizini altında yer almalıdır.
Oyun ortamının oluşturulması için oyun paketlerinin bulunacağı ayrı bir dizin yapısı gerekmektedir. Bu dizin yapısı oyun motoru altında yer alan dizin yapısına dahil edileceğinden farklı bir standartta oluşturulmalıdır. Oyun paketlerinin yer aldığı dizin yapısına ait şema aşağıda yer almaktadır:
Yukarıdaki şemada belirtilen dizin yapısı geliştirme ortamındaki dizin yapısından farklı bir düzende olsa da oyun geliştirme süreci açısından oldukça verimli bir yapıdır. Oyun motoru içerisinde oyun elemanlarının daha kolay algılanıp, aşama oluşturma sürecinde sorunsuz bir çalışmaya imkan vermesi için yukarıdaki yapı standardına uyulması gerekmektedir. Bu standarda göre arayüz elemanları ana oyun dizininde yer alan "Flash" dizini altında yer almalıdır. Bu dizin altında sadece ".swf" formatlı arayüz dosyası ile birlikte tüm arayüz görselleri bulunmalıdır. Arayüz dosyasının adı görseller klasörüyle tamamen aynı olmak zorundadır. Örneğim "AnaMenu.swf" adlı bir arayüz dosyasının görselleri "AnaMenü" adlı bir dizin altında yer almalıdır.
Oyun elemanlarının tümü tek "Game_Items" adlı tek bir dizin altında kendilerine ait alt klasörlerde yer almalıdır. Böylece 3D modeller, materyaller, texture'ler ve ses dosyaları gibi farklı oyun elemanları karışıklığa izin vermeden aynı alanda saklanabilecektir. Tüm oyun elemanlarına ait referansların yer aldığı paket dosyaları (.upk) "Packs" dizini altında yer almalıdır. Böylece bazı paketler farklı oyun projelerinde kullanılmak istenirse tüm içeriğin taşınmasına gerek kalmadan diğer projelere dahil edilebilir. Son olarak "Maps" dizininde oyun geliştirme sürecinde oluşturulan tüm aşamalar yer alır.
Bu başlık altında kullanılmasına karar verilen yazılım ve teknolojiler hakkında genel bilgi yer almaktadır. Hangi yazılım veya teknolojinin hangi sürece katkıda bulunacağı da kısaca belirtilecektir.
Oyun geliştirme sürecinde kullanılması planlanan yazılımlar:
Oyun motoru ve aynı zamanda birçok editörü sayesinde oyun elemanlarının düzenlenmesine imkan tanıyan çok kapsamlı bir yazılımdır. Oyun geliştirme sürecinde ihtiyaç duyulan her türlü imkanı sağlayan ve aynı zamanda da ücretsiz olan bu oyun motoru, tasarım raporunda belirtildiği gibi tüm hedef platformları desteklemektedir.
3D modellerin oluşturulması ve istenen formatlarda “Export” edilmesi için kapsamlı teknik altyapıya sahip olup oyun geliştirme süreçleri için sıkça tercih edilen bir yazılımdır. 3D modelleme, "Unwrap", "Normal Map" oluşturma ve bazı materyal işlemleri bu yazılımla tamamlanabilmektedir. "ASCII" ve "FBX" formatlarında “Export”u desteklemektedir.
Oyun geliştirme sürecinde ana menü ve arayüz elemanlarının oluşturulmasında kullanılması gereken yazılımdır. "Scaleform" standartlarına uyarak arayüz elemanları oluşturmak için tercih edilebilecek en verimli sonucu sunan yazılımdır. AS3 ile programlama imkanı sayesinde oldukça etkili ve görsel olarak çarpıcı menüler oluşturulabilir.
Her türlü grafik işlemi için kullanılması gereken benzeri olmayan bir yazılım. Sanatsal süreçler, tasarımsal süreçler, arayüz elemanlarının oluşturulması, materyal ve “Map” oluşturulması gibi iş akış sürecinin neredeyse her aşamasında kullanılması gerekmektedir.
Görsel süreçler ve format dönüştürmeleri için oldukça etkili olan bu yazılım, sonradan yüklenen birçok eklentiyi desteklemektedir. Oyun geliştirme süreci için en önemli eklenti "Normal Map" oluşturma imkanı sağlayan ve bu işlemi oldukça pratik hale getiren eklentidir.
Oyun içi müziklerin bestelenmesi ve oluşturulması için kullanılabilecek oldukça verimli bir şekilde dijital müzik oluşturmaya imkan veren yazılımdır. Oluşturulan müzikler proje olarak saklanabilir ve yüksek kaliteli mp3 formatında “Export” edilebilir.
Bestelenen veya kütüphaneden elde edilen ses dokümanları üzerinde işlemler yaparak uygun hale getirme süreci için ideal yazılımdır. İstenen işlemler son derece pratik şekilde yapılabilirken istenen her formatta “Export” mümkündür.
Doküman oluşturma ve rapor süreçlerinin takibi için kullanılması tercih edilen yazılımdır. Diğer doküman oluşturma yazılımlarının formatlarını desteklerken aynı zamanda da ücretsiz bir yazılımdır.
Oyun geliştirme sürecinde oluşturulan her türlü ürünün yedeklenmesi ve tarihleriyle birlikte kolayca saklanabilmesi için kullanılan yazılımdır. Küçük ölçekli projeler için oldukça yeterli olan bu versiyonlama yazılımı, işletim sistemi içerisinde hazır gelmektedir.
Oyun geliştirme sürecinde kullanılması planlanan donanımlar:
IOS Mobil oyun geliştirme süreci içerisinde kullanılması zorunlu olan elemanların başında Apple OSX işletim sistemli Mac bilgisayar gelmektedir. Bu zorunluluk dolayısıyla geliştirme süreçlerinin çoğunu aynı işletim sistemi içerisinde sürdürmek daha verimli ve daha pratik sonuçlar sunmaktadır. İşletim sistemiyle birlikte gelen uygulamalar geliştirme süreçlerine katkı sağlamaktadır. Ayrıca 27" ekran ve yüksek çözünürlük imkanı sayesinde birçok yazılımda gerçekleşen geliştirme süreçleri, daha hızıl ve akıcı bir şekilde tamamlanabilmektedir.
UDK'in tek desteklediği çalışma ortamı Windows işletim sistemi olduğu için oyun geliştirme süreçlerini destekleyen ekran kartına sahip bir PC bilgisayar kullanmak, iş akış süreçleri için en iyi sonucu vermektedir. Ayrıca UDK dışındaki birçok ek yazılım ve eklenti de çoğunlukla sadece Windows ortamını desteklemekte olduğundan bir adet PC kullanmak neredeyse kaçınılmazdır.
Oyun geliştirme süreçlerinden en hayati olan donanım testlerinin yapılabilmesi için oyunun geliştirildiği platformda test edilmesi gerekmektedir. Hedef platformun en düşük donanımlı temsilcisi iPhone 4 olduğundan testler çoğunlukla bu aygıt üzerinde yapılarak oyunun performansı ve çalışması konusunda fikir edinilir.
Sanat, tasarım, texture oluşturma ve “Map” oluşturma süreçlerinin daha verimli tamamlanabilmesine imkan veren oldukça etkili bir donanım. A5 boyutundaki çizim tableti birçok grafik işleminde bir farenin sağlayamayacağı hız ve kesinliği sağladığı için son ürüne doğrudan katkısı olan en önemli donanımlardan biridir.
Ses işlemleri ve müzik besteleme süreçlerinde dış seslerden etkilenmeden çalışma imkanı sağlayan, yüksek kalitedeki ses çıkışı sayesinde daha keskin ses işleme imkanı tanıyan bir donanımdır. Ayrıca ses monitörleri gibi yüksek kalite stüdyo elemanları imkanının olmadığı durumlar için en iyi alternatiflerden biridir.
Tasarım ve sanat çalışmaları oyun geliştirme sürecinin en az teknik işlem ve en çok yaratıcılık gerektiren sürecidir. Dolayısıyla bu oyun geliştirme projesinin başlangıcında oyun karakteri, oyun ortamı ve arayüz elemanlarının oluşturulması için yoğun bir şekilde hem tasarım hem de yaratıcılık süreçlerine yoğunlaşılmıştır. Ortaya çıkan genel oyun konsepti doğrultusunda bazı görseller ve müzikler oluşturulmuştur.
Oyunun genel hikayesine kara verildikten sonra oyunun geçeceği ortamın görsel bir şekilde ifade edilebilmesi için bazı karalama çalışmaları yapılmıştır. Bu karalamalarda oyunun hangi öğelerden oluşacağı ve bunların görsel karakterleri kabaca şekillenmiştir. Oyun ortamını kapsayan tek bir mekan mevcuttur. Bu mekana yönelik hazırlanmış konsept çalışmaların görselleri aşağıda yer almaktadır:
Yukarıdaki çizimde birçok farklı oluşumu bir arada barındıran fantastik veya karikatüristik olarak tanımlanabilecek bir ortam oluşturulmuştur. Çizimde yer alan öğeler genelde doğada bir arada bulunmayan, yani örnekleriyle farklı coğrafyalarda karşılaşabilecek oluşumlardır. 3D bir ortamı doldurabilmek için her açıda nesnelerin bulunması gerektiğinden, sahne elemanları ana karakterin etrafını kaplayan bir yuvarlak şeklinde ortama yerleştirilmiştir. Sırasıyla bu elemanları listelersek; sarı kumlardan oluşan bir plaj, tepesinde kale olan bir yamaç, dev buz tepeleri, gök yüzünde bulutlar, sık döşenmiş ağaçlardan oluşan bir orman ve dev bir dağdır.
Yukarıdaki çizimde, ana sahnede yer alan kale ve yamaç elemanlarının detaylarını sunmaktadır. Bu yamaç, plajın hemen yanında yer alır ve denizde çok yakınında bir “Iceberg” bulunmaktadır. Kaleye bakıldığında bulutlar arasından görülebilmektedir.
Yukarıdaki çizimde orman görselinin detayları yer almaktadır. Orman oldukça sık bir yapıya sahiptir ve derinlerine doğru gölgelerin karanlığı hakim olmaktadır. Ağaç ve çalılardan oluşmaktadır. Orman, plajın hemen yanında yer alan ve toprak kaymaları tarafından şekillenmiş bir tepenin üstünde yer almaktadır.
Yukarıdaki çizimde yüksek dağ ve eteklerinde kalan nesnelerin detayları yer almaktadır. Dağın tepesi karlıdır ve hoş eğimlerle pasta kremasını andıran bir görüntüye sahiptir. Dağın eteklerinde ufak bir kulübe ve yer yer çalılıklar yer almaktadır. Plajı ile dağ arasında kalan kısım yer yer ağaçlar ve çalılarla doldurulurken, yerde de çim ve yeşil otlardan oluşan desenler yer almaktadır.
Aşağıda yer alan çizimde oyunun açılışıyla birlikte gelen ana menü ekranının genel görünümü yer almaktadır. Bu görsel oyunun genel ortamında yer alan elemanlar baz alınarak oluşturulacaktır. Hem oyun ortamının görsel havasını ana ekranda kullanarak oyuncuyu oyunun genel fantastik havasına ısındırmak, hem de oyun tasarım raporunda belirtilen görsel motivasyon faktörlerini yakalayabilmek için bu görsel sunum tercih edilmiştir. Ana ekranda kullanılmak için oluşturulacak olan görsel çok detaylı bir anlatıma ihtiyaç duyulmadan oluşturulacaktır, çünkü zemin görseli olarak işlev görecektir.
Tasarım süreci dahilinde oluşturulması gereken bir görsel de oyuna ait bir uygulama ikonudur. Bu ikon uygulama indirildikten sonra mobil cihazın ekranında yer alacaktır. Dolayısıyla ufak bir ikon alanı içerisine oyunu temsil edecek bazı görsellerin çekici bir şekilde yerleştirilmesi gerekmektedir.
Oyunun genel hikayesi ve oyun mantığı çerçevesinde en iyi anlatım ana karakter üzerinden yapılabilmektedir. Dolayısıyla ikon ana karakter ve arkasında yer alacak bir zemin görselinden oluşmaktadır. Karakterimiz olan "Smarty" adlı farenin en sevdiği ve sürekli peşinde koştuğu şey peynir olduğu için uygulama ikonu tasarımı bu iki görsel üzerinden hazırlanmıştır.
Yukarıdaki görselde hazırlanan ikon çalışmasının farklı boyutlardaki örnekleri görülebilmektedir. İkon çalışması 2000x2000 px boyutlarında hazırlanmış olup, toplam dosya boyutu 29.5MB'tır. Tek bir ".PSD" dokümanında hazırlanmış olan bu çalışma, IOS için talep edilen tüm boyutların en az 4 kat üzerindedir. Böylece tüm mobil cihazlar ve web süreçleri için gereken işlemlerde kullanılabilir.
Uygulama ikonunda yer alan fare görseli "Vector" ağırlıklı olmak üzere 10 katmandan oluşmaktadır ve diğer tasarım süreçlerinde de kullanılabilecek şekilde üretilmiştir. Zeminde yer alan peyni görseli 14 katmandan oluşmaktadır ve her iki görselin harmanladığı bazı renk düzeltme katmanları da bu iki görselin üzerinde bulunmaktadır. Böylece ikon dışındaki süreçler için uygun bir yapı formatı sağlanmaktadır.
Oyunda yer alması planlanan iki müzik elemanı bulunmaktadır. Bunlardan ilki ana menüde döngüsel çalacak olan ana menü müziğidir. Bu müzik oyunun genel fantastik havasıyla tutarlı olarak oluşturulmuş ve çok fazla enstrüman barındırmayan bir çalışmadır. Toplam çalma süresi 1 dakika 12 saniyedir, ancak müziğin son bölümü başlangıcıyla tutarlı olacak bir şekilde bestelendiğinden döngüsel çalmada herhangi bir kopukluk oluşmamaktadır.
Ana menü müzik çalışmasının "Apple Garage Band" içerisindeki proje görünümü aşağıda yer almaktadır:
Çalışmanın son “Export” formatı ".wav" olarak düzenlendikten sonra son boyutu 12.7MB'tır. “Export” dosyası çift kanal, 44100Hz ve 16Bit'tir.
Oyunda kullanılacak ikinci müzik çalışması oyun sırasında çalacak olan aşama zemin müziğidir. Bu müzik çalışması oldukça sakin ve sade bir yapıya sahip olmalıdır çünkü oyuncunun dikkatini dağıtmamalı ve uzun dinlemenin ardından bıkkınlık hissi uyandırmamalıdır. Dolayısıyla oldukça az enstrüman ve sakin melodilerle aşama zemin müziği oluşturulmuştur. Bir aşamanın ne kadar süreceği kesin olmadığı için döngüsel şekilde oluşturulması gereklidir. Yani ana menü müzği gibi başı ve sonu uyumlu olan bir yapıya sahiptir. Çalma süresi 1 dakika 15 saniyedir.
Aşama zemin müziği çalışmasının "Apple Garage Band" içerisindeki proje görünümü aşağıda yer almaktadır:
Çalışmanın son “Export” formatı ".wav" olarak düzenlendikten sonra son boyutu 13.2MB'tır. “Export” dosyası çift kanal, 44100Hz ve 16Bit'tir.
Oyun geliştirme süreçleri çok teknik aşamalardır ve bu başlık altında tüm bu aşamaların iş akış süreçleri, uyulması gereken standartlar ve sürecin içerisinde üretilen oyun elemanları ilgili başlıklar altında açıklanmıştır.
Oyun ortamında kullanılacak olan 3D modellerin oluşturulması oldukça önemli bir süreçtir. Hem performans hem de görselliği etkileyen bu oyun elemanlarının titizlikle üretilmesi gerekmektedir. Bu oyun geliştirme projesinde herhangi bir animasyon elemanı bulunmadığından 3D modellerin üretimiyle alakalı süreçler ve standartlar sadece sabit 3D modellerin üretimini kapsamaktadır.
3D model üretim süreci kullanım amacı ve detay seviyesine göre dallanmalar gösterebilmektedir. Mobil platforma yönelik oluşturulan 3D modellerin uyması gereken standartlar çok sıkı olduğundan bu proje kapsamında bu dallanmalar minimumda bulunmaktadır. Dolayısıyla tek bir iş akış süreci yeterli olmaktadır.
Aşağıda 3D model oluşturma iş akış süreci maddeler halinde ifade edilmiştir:
3D model üretim sürecinde donanım kısıtlamaları ve performans kaygıları sebebiyle dikkatlice uyulması gereken bazı standartlar mevcuttur. Bu standartlar aşağıda maddeler halinde verilmiştir:
Oyun geliştirme süreci içerisinde üretilen ve oyun ortamında kullanılan tüm 3D modellerin listesi aşağıdaki tabloda yer almaktadır:
Eleman Adı |
3D Model |
Wireframe |
Materyal |
1.Beach Poly: 156 Tri: 305 Map: 512px |
|
|
|
2.Bush Poly: 76 Tri: 138 Map: 256px
|
|
|
|
3.Castle Poly: 356 Tri: 635 Map: 512px
|
|
|
|
4.Cheese Poly: 239 Tri: 402 Map: 256px
|
|
|
|
5.Cliff Poly: 461 Tri:792 Map: 512px
|
|
|
|
6.Cloud_1 Poly: 868 Tri: 1736 Map: 256px
|
|
|
|
7.Cloud_2 Poly: 748 Tri: 1496 Map: 256px
|
|
|
|
8.Cloud_3 Poly: 818 Tri: 1636 Map: 256px
|
|
|
|
9.Clover Poly: 214 Tri: 370 Map: 256px
|
|
|
|
10.Clover Group Poly: 1498 Tri: 2590 Map: 256px
|
|
|
|
11.Cottage Poly: 146 Tri: 264 Map: 256px
|
|
|
|
12.Fence Poly: 154 Tri: 280 Map: 256px
|
|
|
|
13.Forest_Hill Poly: 318 Tri: 544 Map: 512px
|
|
|
|
14.Iceberg Poly: 231 Tri: 292 Map: 256px
|
|
|
|
15.IcebergWall Poly: 228 Tri: 421 Map: 1024px
|
|
|
|
16.LadyBug Poly: 544 Tri: 948 Map: 256px
|
|
|
|
17.Leaf Poly: 163 Tri: 308 Map: 256px
|
|
|
|
18.LeafGroup Poly: 652 Tri: 1232 Map: 256px
|
|
|
|
19.Mountain Poly: 434 Tri: 818 Map: 512px
|
|
|
|
20.Mouse_Smarty Poly: 844 Tri: 1542 Map: 256px
|
|
|
|
21.Mushroom Poly: 256 Tri: 488 Map: 256px
|
|
|
|
22.Stone_1 Poly: 224 Tri: 224 Map: 256px
|
|
|
|
23.Stone_2 Poly: 128 Tri: 224 Map: 256px
|
|
|
|
24.Stone_3 Poly: 960 Tri: 960 Map: 256px
|
|
|
|
25.Target_Sign Poly: 152 Tri: 304 Map: 256px
|
|
|
|
26.Tree Poly: 124 Tri: 226 Map: 256px
|
|
|
|
27.TreeGroup Poly: 992 Tri: 1808 Map: 256px
|
|
|
|
28.Triangle Poly: 22 Tri: 44 Map: 256px
|
|
|
|
Oyunun ön yüzü olarak görev yapacak olan ana menü ve arayüz elemanlarının oluşturulması diğer geliştirme süreçlerinden oldukça farklıdır. Bunun sebebi tamamen farklı bir ortamda ve farklı teknikler kullanılarak oluşturulmasıdır. Son yıllarda yapılan güncellemeler doğrultusunda birçok oyun motoru için "Scaleform" ortak bir ortam oluşturmuştur ve arayüz elemanlarını oluşturma konusundaki standartları önemli oranda etkilemiştir.
Ana menü ve arayüz oluşturma süreci birkaç alt süreç içerisinde gerçekleşmektedir. Bunlardan ilki ana menü ve arayüzün tasarımının yapılıp görsellerinin oluşturulmasıdır. Bu süreç Adobe Photoshop içerisinde gerçekleştirilir. Ana menüde ve arayüzde görev yapacak olan her eleman kendi başına tek tek hazırlanmalı ve uygun dosya formatlarında (".PNG") "Export" edilmelidir.
Tüm görsel elemanların hazırlanmasıyla bir sonraki süreç olan ".FLA" formatındaki dosyanın hazırlanması Adobe Flash içerisinde başlatılabilir. Tüm elemanlar "Import" edildikten sonra planlanan görselliği oluşturmak için gerekli animasyonlar ve programlama süreçlerinin yapılması gerekmektedir. Buradaki öncelik görsellik ve animasyonlardadır. Çünkü hedeflenen görsel çekiciliğin ve motivasyon faktörlerinin elde edildiğinden emin olunmalıdır.
Son olarak de ana menü ve arayüz elemanlarının planlanan şekilde çalışması için gerekli programlamanın yapılmasıdır. Programlama süreci titizlikle planlanıp sürdürülmesi gereken bir süreçtir. Çünkü oyunun geri kalan mekanizmaları ile sorunsuz çalışabilecek bir mimariye sahip olması ve hatalara imkan tanımaması gerekmektedir.
Programlama sürecinin tamamlanmasıyla Ana menü ve arayüz elemanlarının üretim süreçleri tamamlanır ve uygun formatta "Export" edilerek bir sonraki oyun geliştirme sürecine dahil edilir.
Ana Menü ve Arayüz elemanlarının oluşturulması süreci birkaç alt süreçten oluşmaktadır ve her sürecin kendi içerisinde birçok standardı bulunmaktadır. Bu standartlar aşağıda tek bir liste dahilinde bulunmaktadır:
Ana menü tasarımının oluşturulması taslak çalışma doğrultusunda yüksek çozünürlüklü bir tasarımın oluşturulmasıyla başlar. Bu tasarım kullanıcının göreceği ve her türlü detayı içinde barındıran bir çalışmadır. Aşağıdaki örnek oluşturulan ilk tasarım çalışmasıdır:
Yukarıdaki çalışma 2272x1280 boyutlarında ve 69.6MB boyutunda tek bir ".PSD" dosyasından oluşmaktadır. Tüm menü elemanları 27 adet ".PNG" dosyasıyla export edilmiş ve bir sonraki sürece dahil edilmiştir.
Ana menü oluşturma sürecinin bir sonraki aşaması Adobe Flash Professional içerisinde gerçekleşmiştir. Ana menü boyutları 960x640'dir ve 30fps'de üretilmiştir. 27 adet görsel ("PNG Texture") kullanılmıştır ve toplamda 76 kütüphane elemanı oluşturulmuştur. Programlama sürecinde oyunun tüm kontrollerinin dahil edilebilmesi için birçok fonksiyon oluşturulmuştur ve toplam 567 satır program kodu yazılmıştır. Programlama sürecinin sonunda toplam 26 adet "Method" oluşturulmuştur. Son dosya boyutu 2.325MB'tır. Ana menü ekranı, aşama seçme ekranı, tercihler ekranı, yardım ekranı ve hakkında ekranı olmak üzere toplam 5 adet ekrandan oluşmaktadır.
Ana menü üretiminin tamamlanmasıyla aşağıdaki görsel ".SWF" formatında elde edilmiştir:
Yukarıdaki ana menü ekran görselinde yer alan seçenekler doğrultusunda aşağıdaki görsellerde yer alan ekranlar gözlenmektedir. İlk ekran aşama seçme ekranıdır ve ana menüdeki "Play" butonu kullanılarak aşağıdaki ekrana ulaşılır.
Yukarıdaki ekran görselinden oyuncu istediği aşamayı seçebilmektedir. Aşama üzerine tıkladıktan sonra ekranın alt kısmında yer alan "Play" butonuna basarak aşamayı başlatır. Eğer ekranda yer alan aşamaların dışında bir aşama oynamak isterse sağ ve sol altta yer alan okları kullanarak sayfalar arasında geçiş yaparak oynamak istediği aşamaya ulaşabilir. Bir önceki ekrana dönmek için sol üstte yer alan "Back" butonu kullanılır.
Aşağıdaki tercihler ekranına ait görseldir ve ana menüden "Options" butonu ile bu ekrana ulaşılır:
Yukarıdaki ekranda 3 adet müzik ayarı ve en altta da oyundaki tüm ilerlemeyi sıfırlama seçeneği görülebilmektedir. Oyuncu tercihlerine göre dilediği gibi bu ayarları düzenleyebilir ve oyun kapanıp açıldıktan sonra bile bu ayarlar hatırlanır. Bir önceki ekrana dönmek için Sol üstte yer alan "Back" butonu kullanılır.
Aşağıda yer alan ekran yardım ekranıdır ve ana menüde yer alan "Help" butonu ile bu ekrana ulaşılır.
Yukarıdaki görselde oyuna ait kontrollerin ifade edildiği bir grafik yapısı gözlenebilmektedir. Kontrollerin ufak birer temsili görseliyle birlikte birkaç kelimeden oluşan açıklamalar gözlemlenebilmektedir.
Oyun esnasında oyuncuya geri bildirimlerde bulunabilecek veya oyuncuya ek kontroller sağlayan bir arayüz ekranı bulunmaktadır. Bu arayüz ekranının tasarımı ana menü tasarım sürecine paralel yapılmıştır. Daha az görsel elemana sahip olan bu ekran toplam 8 adet "Export" edilen ".PNG" görselinden oluşmaktadır. Ana menü ile aynı çözünürlükte oluşturulan arayüz ekranı 960x640 px boyutlarındadır ve 30fps tazeleme hızına sahiptir. Toplam 37 kütüphane elemanından oluşmaktadır. Programlama sürecinde 175 satır program kodu yazılırken 18 adet "Method" oluşturulmuştur. Son dosya boyutu 213KB'tır.
Arayüz ekranının ".SWF" formatındaki görseli aşağıdaki gibidir:
Yukarıdaki arayüz ekranı incelendiğinde oldukça az elemana sahip olduğu görülmektedir. Sol üstte yer alan bildirimler sırasıyla aşama numarası ve roplanması gereken peynir parçası sayısıdır. Sağ üstte iki adet ek kontrol yer almaktadır. Bunlardan ilki aşamayı tekrar oynama, ikincisi de oyunu duraklatma butonlarıdır. Oyun duraklatıldığında ekran bir ölçek karartılır ve bir menü belirir. Bu menü oyuna devam etmek, aşamayı yeniden oynamak ve aşamadan çıkmak seçeneklerine sahiptir.
Aşamanın başarıyla tamamlanmasının ardından ekranda son bir bildirim belirir. Aşağıdaki ekranda aşamanın başarıyla tamamlandığı belirtilmektedir. Ayrıca oyuncunun başarı seviyesi 3 yıldız üzerinden notlandırılır. Aşama geçme hızı doğrultusunda oyuncu en fazla 3 ve en az 1 yıldız alabilir. Bu ekran oyuncuya yaklaşık 2 saniye boyunca görüntülendikten sonra ana menü ekranında yer alan aşama seçin ekranına geçiş yapılır.
Oyun geliştirme sürecinde oyun ortamının ve aşamaların oluşturulması önceki süreçlerde üretilen oyun elemanlarının bir araya getirilmesiyle gerçekleşmektedir. Dolayısıyla önceki süreçlerin doğru şekilde tamamlanmış olması bu süreci daha akıcı ve hatasız kılacaktır.
Oyun ortamı ve aşama yapısı, oyun geliştirme sürecini en pratik ve kısa zamanda tamamlamaya imkan vermesi için şu şekilde tasarlanmıştır: Tek bir ana aşama içerisine ("Persistent Level") oyunun bulmacalarını temsil eden aşamaların dinamik olarak yüklenmesi ve aşamanın tamamlanmasıyla beraber dinamik olarak silinmesi. Böyle bir yapıda standart bir çevre görünümü kullanılır ve her aşama için tekrar tekrar oluşturulmaz. Kısaca aşama sayısı ne olursa olsun tek bir çevre ortamı bulunduğundan, aşama oluşturma süreci çok pratik ve hızlı bir hale gelmiş olur. Her aşama için çevre oluşturmak, muhtemelen aşama oluşturma sürecini en az 3 katına uzatacaktır.
Oyun ortamı ve aşamaların oluşturulması iş akış süreci aşağıda maddeler halinde verilmiştir:
Oyun ortamı ("Persistent Level") ve aşamaların genel görünümü ile birlikte bazı teknik detayları aşağıdaki tabloda yer almaktadır:
Aşama Adı |
Aşama Görünümü |
1.Persistent Level Peynir Parçası: - Asansör: - Toplam Eleman Sayısı: 49 DrawCall: - Vert: 27593 Tri: 31178
|
|
2.Puzzle_1 Peynir Parçası: 5 Asansör: 0 Toplam Eleman Sayısı: 44 DrawCall: 58 Vert: 10634 Tri: 12618
|
|
3.Puzzle_2 Peynir Parçası: 7 Asansör: 0 Toplam Eleman Sayısı: 61 DrawCall: 71 Vert: 14209 Tri: 15794
|
|
4.Puzzle_3 Peynir Parçası: 7 Asansör: 0 Toplam Eleman Sayısı: 85 DrawCall: 61 Vert: 17052 Tri: 19590
|
|
5.Puzzle_4 Peynir Parçası: 6 Asansör: 1 Toplam Eleman Sayısı: 55 DrawCall: 70 Vert: 12856 Tri: 15052
|
|
6.Puzzle_5 Peynir Parçası: 8 Asansör: 1 Toplam Eleman Sayısı: 82 DrawCall: 71 Vert: 17588 Tri: 19542
|
|
7.Puzzle_6 Peynir Parçası: 7 Asansör: 1 Toplam Eleman Sayısı: 76 DrawCall: 63 Vert: 14597 Tri: 15900
|
|
8.Puzzle_7 Peynir Parçası: 7 Asansör: 2 Toplam Eleman Sayısı: 84 DrawCall: 67 Vert: 18317 Tri: 18538
|
|
9.Puzzle_8 Peynir Parçası: 8 Asansör: 2 Toplam Eleman Sayısı: 94 DrawCall: 77 Vert: 16196 Tri: 17980
|
|
10.Puzzle_9 Peynir Parçası: 8 Asansör: 2 Toplam Eleman Sayısı: 102 DrawCall: 82 Vert: 21078 Tri: 23268
|
|
11.Puzzle_10 Peynir Parçası: 8 Asansör: 3 Toplam Eleman Sayısı: 118 DrawCall: 76 Vert: 20678 Tri: 23490
|
|
12.Puzzle_11 Peynir Parçası: 8 Asansör: 3 Toplam Eleman Sayısı: 132 DrawCall: 84 Vert: 21107 Tri: 24024
|
|
13.Puzzle_12 Peynir Parçası: 8 Asansör: 3 Toplam Eleman Sayısı: 107 DrawCall: 78 Vert: 19540 Tri: 20158
|
Oyun geliştirme sürecindeki programlama süreçleri UDK dahililndeki "Kismet" görsel programlama dili aracılığıyla gerçekleşmektedir. Standart birçok "Script" dilinden farklı olarak "Kismet" içerisinde algoritmalar görsel elemanlar üzerinden gerçekleşmektedir. Bu yapı oyun aşamalarının üretimi söz konusu olduğunda oldukça hızlı ve verimli sonuçlar doğurmaktadır.
“Kismet” ile programlama ve algoritma iş akış süreçleri aşağıda maddeler halinde verilmiştir:
"Kismet" ile algoritma oluştururken dikkat edilmesi gereken noktalar aşağıdaki listede belirtilmiştir:
Oyun geliştirme sürecindeki dinamik oyun elemanlarına yönelik oluşturulmuş algoritmalar iki kısımda incelenebilir. Bu aşamalar, genel oyun algoritmaları ve aşamaların içerisindeki dinamik algoritmalardır. Genel oyun algoritmaları oyunun başlatılmasıyla çalışmaya başlarlar ve sürekli aktif haldedirler. Ancak bazı durumlarda aşamalardaki süreçlerle de aktif hale gelebilmektedirler.
Aşağıdaki listede genel oyun algoritmalarının ekran görüntüleri yer almaktadır:
Yukarıdaki görselde oyunda yer alana global seviyedeki değişkenler görülmektedir.
Yukarıdaki görselde oyun ortamının ilk yüklenmesiyle başlatılan işlemler görülmektedir.
Yukarıdaki görselde kayıtlı verilerin okunması ve ardından da eksik değerler için ilk değerlerin atanması görülmektedir.
Yukarıdaki görselde oyunun ana menüsünün ilk değerleriyle oluşturulup ekrana eklenmesi süreçleri görülmektedir.
Yukarıdaki görselde ana menüye ilk değerlerinin verilmesi ve başlangış fonksiyonlarının tetiklenmesi görülmektedir.
Yukarıdaki görselde tüm aşamaların başlatılması sürecini kontrol eden yapı görülmektedir.
Yukarıdaki görselde aşamanın bitimiyle ana ekrana ve "Persisten Level"e dönüş sürecinin başlatılması görülmektedir.
Yukarıdaki görselde ana menü dahilindeki oyuncu tercihlerinin yönetim mekanizması yer almaktadır.
Yukarıdaki görselde oyundaki tüm gelişmeleri sıfırlayan yapı görülebilmektedir.
Aşamalardaki etkileşimlere ve işlemlere yönelik "Kismet" algoritmaları aşağıdaki listede yer almaktadır:
Yukarıda aşamanın tamamen yüklenmesiyle birlikte tüm değişkenlerin ilk değerlerinin atanması ve birçok işlemin sıfırlanması yapısı görülebilmektedir.
Yukarıdaki görselde aşama içerisinde kullanılan global değişkenler yer almaktadır.
Yukarıdaki görselde aşamanın başlamasıyla birlikte başlatılan zaman sayacı görülebilmektedir.
Yukarıdaki görselde aşama içerisindeki gelişmeleri kaydeden mekanizma görülebilmektedir.
Yukarıdaki görselde aşama mekaniklerinden sorumlu mekanizmalardan oluşan ağ görülebilmektedir.
Yukarıdaki görselde aşama içindeki kamera işlemleri ve kamera butonlarının yönetiminden sorumlu mekanizma görülebilmektedir.
Yukarıdaki görselde tepe açısı butonlarının görünümü/gizlenmesi süreçlerini yöneten mekanizması görülmektedir.
Yukarıdaki görselde asansörlerin yönetiminden sorumlu algoritma görülmektedir.
Yukarıdaki görselde aşamanın sonunda gerçekleşen değerlendirme mekanizması görülmektedir.
Oyun geliştirme süreci ve proje sonlandırma sürecine yönelik testler aşağıdaki ana başlıklar altında gerçekleştirilmektedir:
*Not: Yukarıda bahsedilen test süreçleri test raporları altında detaylı bir şekilde tanımlanmış ve takip edilmiştir.
Oyun geliştirme süreçlerine yönelik araştırmalar ve oyun elemanı kütüphaneleri için aşağıdaki kaynaklardan faydalanılmıştır.