10 Aşamada Oyun Geliştirme Yaşam Döngüsü

10 Aşamada Oyun Geliştirme Yaşam Döngüsü

Oyun, eğlendirme amacı ile geliştirilen bir yazılım türüdür. Herhangi bir oyunu geliştirmeyi planmaya başladığınızda, yazılım geliştirme yaşam döngüsü (SDLC) modelini örnek almak, maalesef hiçbir oyun geliştirici için pek de uygun değil. Çünkü oyun geliştirme yaşam döngüsünde, oyun geliştiriciler çoğu yazılımdan çok daha fazla, farklı zorluklar/alanlar ile karşılaşır. (grafikler, görseller, sesler, animasyonlar, fizik, çarpışma tespiti, yapay zeka, kullanıcı girdisi vb.)

Her oyun geliştiricinin karşılaştığı problemi çözebilmek için, yeni, daha detaylı bir yaklaşım olan “Oyun Geliştirme Yaşam Döngüsü/Game Development Life Cycle” (GDLC) yaklaşımını inceleyeceğiz.

Bu makalede, bir oyunun sıfırdan, yayınlanana kadar olan geliştirme sürecini inceleyeceğiz. Yeni bir oyun projesine başlayacak her geliştirici, başarılı bir proje geliştirebilmek için bu makaledeki adımları takip edebilir, ya da en azından kendi yaklaşımı/modeli için bir iskelet/taslak olarak kullanabilir.


Aşama 1 - Hikaye/Fikir

Hikaye/fikir, bu bağlamda oyunun konsepti ve projenin gereksinimleridir. Projenin dokümanında bu kısımlara yer verilmelidir. Fikirler, oyununuzun ufak bir kısmını temsil eder. Oyununuzun tüm fikirleri uyguladığınız versiyonu ise, prototipidir. Fikir gruplarına ise “Game Concept/Game Story” (“Oyun Konsepti/Oyun Hikayesi”) denir.

Aşama 2 - Konsept Analizi

Hikaye ve konseptlerin, her birinin gereksinimini, derinlemesine analiz etmeniz gerekir.

Yapılabilirlik/uygulanabilirlik araştırması, oyun projenizi geliştirmeye başlamadan önce yapmanız gerekir. Birçok alanı bu araştırma dahilinde analiz edebilirsiniz:

  • Asıl gereksinimler,

  • Fiyatlandırma,

  • Teknik yeterlilikler,

  • Kurumsal, kültürel ve yasal sorunlar ve çözümleri,

  • Gereken yetenekler ve projenin ölçeği.

Projenizin geleceği için kritik detayları atlamamak için, bu araştırma sırasında, hiçbir kısayol uygulamaya çalışmayın ve taviz vermeyin.


Aşama 3 - Planlama

Önceki adımlardaki gerekli verileri topladıktan sonra, sıra oyununuzun geliştirme sürecini planlamakta.

Proje planınızı/taslağını oluşturmalısınız. Bütün fikirleri, gerekli özellikleri ve yerine getirilmesi gereken görevleri doküman veya şema üzerinde listeleyin.

  • Yapılacaklar listesi oluşturun. (grafikler, animasyonlar, sesler, programlanacak mekanikler/sistemler vb.)

  • Zaman çizelgesi oluşturun, yapılacaklar listesindeki görevleri ve her birinin tahmini bitiş zamanını dahil edin.

  • Dokümanlar ve akış şemaları oluşturun.

  • İş akışınızı, test senaryolarınızı ve test planlarınızı belirleyin.

  • Görevlendirme akışının nasıl ilerleyeceğini belirleyin.


Aşama 4 - Ekip Oluşturma

Tasarıma ve geliştirmeye başlayıp, tasarladığınız konseptleri gerçeğe dönüştürebilmek için bir ekibe ihtiyacınız var. Programcı, tasarımcı, tester gibi ekip üyelerinizi oyununuzun gereksinimlerine göre seçmelisiniz.


Oyun geliştirme alanında farklı ve spesifik alanlarda çok fazla rol mevcut. Oyunlarda sıklıkla görev alan, daha genel rolleri aşağıda listeledik.


Aşama 5 - Konsept Tasarımı

Konsept tasarımı, ana gereksinim/fikir/hikaye’nin tasarım prototipi anlamına gelir. “Game Design/Oyun Tasarım” olarak da bilinir.

Oyun tasarım, herhangi bir oyunun merkezinde yer alan süreçtir. Bir fikri, gerçeğe/ürüne dönüştürebilme yeteneğidir.

Bir oyundaki en zor, yenilikçi ve karmaşık süreçtir. İyi ve yüksek kalite oyunlar geliştirebilmek için gerekli bir süreçtir. Eleştirel interaktif düşünme yetisi gerektirir. 

Oyun geliştirilmeye başlamadan önce, oyun tasarımcı, “Game Design Document/Oyun Tasarım Dokümanı” olarak adlandırılan belgeyi oluşturmak ile sorumludur. GDD nedir, bilmiyorsanız, buradan öğrenebilir ve ücretsiz bir örneğine erişebilirsiniz.

GDD, soyut fikirleri ve tasarıları açıklayan, oyunun/ürünün geliştirilmesinde kullanılacak, ekibe yol gösterici taslak belgedir.

Oyun tasarım öğeleri:

  • Kullanıcı arayüzü,

  • Oyun verisi,

  • Oyuncu verisi ve özellikleri,

  • Seviye tasarımı,

  • Oynanış ve mekanik tasarımı,

  • AI (yapay zeka),

  • Ses/müzik vb.

Aşama 6 - Geliştirme

GDD’yi tamamladıktan sonra, sıra oyun tasarımcının yönergelerine göre asıl oyun fikrini/konseptini geliştirmekte.

Desteklediği modüller, plug-in’ler, framework’ler ve platformları göz önünde bulundurarak bir oyun motoru seçmek geliştirmenin programlama sürecini başlatmak için ilk adımınız olabilir.

Lead (baş) programcının, oyun geliştirme sürecinin sağlıklı bir şekilde ilerlemesi ve belirli bir kalite üzerinde ürün çıkartılması üzerine önemli sorumlulukları bulunur. Yerine getirilmesi gereken, üzerinde çalışılan ve tamamlanan, görevlerin, projedeki geliştirici başına listesini tutmalıdır. Projede çalışan her programcı/geliştirici, üzerinde çalıştıklarını lead programcıya teslim etmelidir. Lead programcı da, bir kod inceleme sistemi kullanarak kendisine teslim edilen kodların, seçmiş olduğu oyun mimarisine uygun olup olmadığını kontrol etmelidir.

Bir programcı için veri girdisi ve çıktısı basit olabilir, ancak sanat, görsellik, özel efektler, çarpışma, fizik, ses, sahne/seviye yönetimi, yapay zeka, dinamik obje oluşturma ve yok etme, kaynak yükleme, boşaltma, shader’lar, görüntü işleme, CPU ve GPU kullanımı takip edip, hedef kullanımın altında tutma, çoklu platform desteği, reklam entegrasyonu gibi birçok uygulama ve daha fazlası, oyun geliştirmeyi karmaşıklaştırır.

Lead geliştirici/programcı, sistem programlama yeteneğine sahip olmalıdır ve bu yetenek için gerekli olan terminolojiye hakim olmalıdır. Aşağıdaki konseptler örnek sayılabilir:

  • Soyutlama (abstraction).

  • Modülarite.

  • Tasarım örüntüleri.

  • Yazılım/oyun mimarisi.

  • Kod yapıları/yapısal programlama.

  • Nesne tabanlı programlama (OOP).

  • Güçlü kod.

  • Daha az kaynak kullanarak daha fazla sonuç üretmek.

  • Kullanıcının deneyimine hakim olmak.


Aşama 7 - Test Etme

Test etme aşaması, oyuncunun deneyimleyeceği, ürünün son halinin aynasıdır.

Oyun geliştirme yaşam döngüsünün en önemli kısmı test etme aşamasıdır. her oyun/konsept geliştirme mimarisinde, oyunu tasarlamaya ve test etmeye eşit derecede zaman ve kaynak ayrılması gerekir.

Test etme aşaması, oyunu oynamaktan ibaret değildir. Oyununuzu test ettiğinizde, kullanıcı deneyimini öngörmüş olursunuz. Kalite kontrolün test etme ve hata tespit ekibi, iki doküman üzerinde çalışmalıdır:

  • Test Senaryoları Dokümanları (Test Cases Documents)

  • Test Planları Dokümanları (Test Plans Documents) 

Kalite kontrol ekibi, bazı belgelerin ve dosya sistemlerinin her test etme sürecine dahil olmasını sağlamalıdır.

  • Kusur/hata,

  • Hatayı tekrar ortaya çıkarma,

  • Modül,

  • Sıklık,

  • Hata log numarası,

  • Meydana gelme,

  • Ekran görüntüleri,

  • Hatanın meydana geldiği platform/platformlar,

  • Tarih/saat.

Kalite kontrol ekibinin üstleneceği farklı test yöntemi türlerine: 

  • Functional (Fonksiyonel) Test, 

  • Interruption (Kesinti) Testi, 

  • Modül Testi, 

  • Performans Testi, 

  • Load (Yük) Testi, 

  • Memory (Hafıza) Testi, 

  • Compatibility (Uyumluluk) Testi

gibi test yöntemi türlerini örnek gösterebiliriz.

Aşama 8 - Ön-Yayınlama (Alpha/Beta Sürümleri)

Ön-yayınlama, projenin iyi bir yönetici/yönetmen tarafından yönetildiğinin göstergesidir.

Asıl yayınlamadan önce, her ürün, ön-yayınlama aşamasından geçmelidir. Bu aşamada, oyununuzu alpha/beta sürümü olarak yayınlayarak, hataları ve kullanıcı deneyimini gerçek zamanlı takipi etmelisiniz.

Alpha/Beta sürümlerini yayınlamak, kullanıcıların ürününüz ile olan deneyimini öğrenebilmenin en iyi yollarından biridir. Test etme aşamasında hata yaptıysanız bile, ön-yayınlama sayesinde bu hataları yayınlama öncesi, kullanıcı geri bildirimi aracılığıyla tespit edebilir ve düzeltebilirsiniz. Böylece ürününüzü asıl yayınlamaya hazırlamış olursunuz.

Aşama 9 - Yayınlama

Yayınlama aşamasında oyununuz için kısa bir tanıtıcı video hazırlayıp, ilgi çekici birkaç ekran görüntüsü almalısınız. Son olarak da, yayınla butonuna basarak, ürününüzün hedeflediğiniz mağazada yer almasını sağlayabilirsiniz.

Aşama 10 - Satışlar ve Pazarlama

Ürünün asıl versiyonunu yayınladığınıza göre, pazarlama ekibinizin yeni bir görev üstlenme vakti geldi.

Pazarlama ekibiniz, yayındaki oyununuzun veri raporunu devamlı inceleyerek, kullanıcı deneyimi ile alakalı raporlar hazırlamalı.

Pazarlama ekibiniz aynı zamanda kullanıcıların ürününüzle alakalı değerlendirme ve incelemelerini inceleyerek, kullanıcılara uygun cevaplar vermeli ve sorularını cevaplamalı. Ardından sorulardan rapor hazırlayıp bu raporu kalite kontrol ekibine yönlendirmeli ve kalite kontrol ekibi de raporu değerlendirerek, içeriğe bağlı olarak alakalı departmanları bilgilendirerek eyleme geçmeli.

Pazarlama ekipleri aynı zamanda online ve offline pazarlama teknikleri kullanarak, kullanıcıların dikkatini çekmeyi, ürünün bilinirliğini arttırmayı hedeflerler. 

Pazarlama ekibiniz aynı zamanda rakiplerinizin ne yaptığını ve yayınladıklarını gözlemlemeli ve ürününüzün rakiplerinizin gerisinde ise, önlerine geçmek için nasıl iyileştirmeler yapılması gerektiğini tespit etmelidir. Bunların yanı sıra, oyunun gelirini ve satışlarını arttırmak için yeni fikirler/stratejiler düşünüp, uygulamak da, pazarlama ekibinin görevleri arasındadır.



Kaynak

Yorumlar