Global Game Jam 2018

Global Game Jam 2018


GGJ'den taze taze çıkmışken bu etkinlik hakkında bir yazı yazmak istedim. Benim için çok kişisel bir tecrübe olduğu için ne yazıkki daha çok kendi perspektifimden anlatabileceğim, yapım aşaması hakkında bilgi verebileceğim tek oyun da kendiminki olacak. Başlayacak olursak, daha önce duymamış olanlar için etkinlik hakkında bir özet geçelim.

Global Game Jam

Global Game Jam bu sene onuncusu düzenlenen küresel çapta ülkemiz dahil dünyanın birçok ülkesinde gerçekleşen 48 saatlik bir oyun geliştirme etkinliği. Benim içinse her sene en çok beklediğim etkinlik. Türkiye'de Ankara, İstanbul, İzmir ve daha birçok şehirlerdeki merkezlerde yıllardır düzenleniyor. Ankara'dan örnek verecek olursam hem ODTÜ'de, hem Hacettepe Üniversitesi'nde merkezleri var. Türkiye'deki merkezlerden benim bildiğim en büyüğü ODTÜ'deki GGJ ATOM. ODTÜ'deki GGJ ATOM etkinliğine son birkaç yıldır her sene en az 200 geliştirici geliyor. ATOM, Türkiye'deki ilk GGJ merkezi olmakla da ünlü. Demeden geçemeyeceğim önemli bir yanı da kesinlikle harika bir atmosfere sahip olması; senin gibi oyun geliştirmekle ilgilenen 200 kadar insanla birlikte uykusuz kalıp haftasonu boyu oyun geliştirmek inanılmaz bir deneyim. Benim de bu inanılmaz deneyimi son 4 yıldır tattığım merkez burası, diğer merkezlerde geliştirilen oyunlar hakkında pek bir bilgim yok ama bizim merkezde her sene içlerinden çok yaratıcı veya kendi çapında çok komik olan bir çok oyun çıkıyor.
Bir noktaya parmak basmam lazım: normal bir oyun asla 48 saatte tamamlanamaz. Burada geliştirilen oyunlar küçük çaplı oyunlar ve prototipler, ve emin olun ki aşırı amatörce ve aceleyle hazırlanmış oyunlar. Peki ya bu gerçek bu etkinliği daha sıkıcı mı yapıyor? Kesinlikle hayır, hatta daha eğlenceli kılıyor. Bu kısıtlı süre içinde ekiplerin aklına koyduğu oyun fikrini elle tutulur bir oyun prototipine çevirmek için sadece bir haftasonları var. Ve tabiki, etkinliğin sonunda herkes birbirinin haftasonu boyunca emek harcayarak yaptığı oyunları oynayabiliyor. "Indie" diye adlandırdığımız oyunların fikirlerinin belli bir kısmı bu etkinliklerde ortaya çıkıyor.

Prototipler, aslında oyun fikrinizin eğlenceli olup olmadığını test etmenizin en hızlı yolu. Yani başka bir açıdan bakacak olursanız bu etkinliğin eğlenceli olmak dışındaki diğer yararı da bu.

GGJ 2018

GGJ hakkında başka sorusu olan kalmadıysa bir sonraki konuya geçeceğim: GGJ 2018. GGJ 2018 için herkesin geliştirdiği oyunlar için uymaları beklenen tema "Transmission" yani "İletim" idi. Önceki seneler "Dalga", "Ritüel", "Şimdi Ne Yapalım?"(Asıl biz bu temayla ne yapalım?), "Yanıltma" gibi temalar olmuştu. GGJ'yi birbirine benzer oyunlar çıkmaması için temaları olabildiğince ucu açık bıraktığı için tebrik ediyorum. Ama aynı sene içinde 5 tane karpuz oyunu çıkar mı? Bizden çıktı. Temadan olabildiğince uzaklaşmak isteyen Türk arkadaşlarımızın aklına en çok gelen fikir tabiki de kamyondan manava karpuz fırlatmaca oyunu yapmak oldu. Açıkça söyleyeyim, benim de aklıma gelen ilk fikirlerden biriydi.

Renegade Squad

Önceki sene geliştirdiğim oyunun kaliteli gözükmesi için ne kadar emek harcamış olsam da fikri sıkıcı bulduğum için diğer GGJ'lere kıyasla o kadar eğlenememiştim. Bu sene geçen senenin tecrübesiyle kendime fikir aşaması için daha fazla zaman verdim. Bir de başka bir kuralım vardı: Ben de modelleme yapacaktım.

Cuma akşamı saat 5'te açıklanan tema üzerine fikrimi belirleyip oyunuma başlamam doğru hatırlıyorsam gece 1'i buldu. Ve ne dersin? Bu sefer tek başımaydım, en azından görsel ve kod konusunda. Daha önce hiçbir GGJ'de kendi başıma oturup bir oyun yapmaya kalkmamıştım, yetişip yetiştiremeyeceğimi bilmiyordum. İşte tam da istediğim şey buydu: Zor bir GGJ. Oyunum artık GGJ bittiği için yapması başta gözüktüğü kadar zormuş gibi gelmiyor, ama kısa bir özet geçmek istiyorum.

RTS/MOBA tarzı kontrollere sahip tüm haritadaki etkinlikleri gözlemleme şansı olan bir Uzay Kruvazörü oyunda kendinden daha küçük ama mobiliteleri ve ateş etme hızları daha yüksek "X-Wing" tarzı savaşçılara emir vererek kontrol etmek zorunda. Ama bu oyunu diğer oyunlardan ayıran şey savaşçıların insanlar tarafından kontrol ediliyor olması. Kumandan konumundaki oyuncu daha güçlü ama daha yavaş gemisiyle hem diğer savaşçıları korumakla yükümlü, hem de onları sektörler konusunda bilgilendirmekle. Oyunda kumandanın yanında 4 tane savaşçı var, yani oyunu oynayabilmek için toplamda 5 kişi lazım. 4 savaşçı oyun kolları kullanarak oyunu dörde bölünmüş bir ekrandan oynuyorlar. Kumandan ise kendine ayrılmış farklı bir ekranda oynamak zorunda. 4 savaşçı için bir Arcade Aksiyon oyunu dönüyorken, kumandan için bir RTS/MOBA türü bir oyun dönüyor.

Oyunun diğer detaylarına geçmeden önce aklınıza gelebilecek bir soru dizisini cevaplayayım: "1. Bu oyunu kim oynar? 2. NASIL OYNAYACAKLAR? 3. KİMİN 2 MONİTÖRÜ VAR?". Bu soruları aklımdan geçirecek olsaydım bu GGJ'de muhtemelen bu kadar eğlenemezdim. Yine de o sırada aklımdan geçen cevapları verecek olursam: "1. GGJ Merkezindeki herhangi 5 kişilik bir grup. 2. Benim bilgisayarımdan. 3. BENİM!! (Bir de muhtemelen kod yazan bir çok kişinin. Neyse...)".

Bu noktada oyunun yapısından bahsetmezsem haksızlık olacak. Oyun, birbirine eşit 8 sektörden oluşan dikdörtgen bir haritada geçiyor. 4 sektör bizim tarafa, diğer 4 sektör de düşmana ait. Her sektörde bir tane uzay istasyonu var ve görevimiz bu istasyonları korumak. İstasyonlar herhangi bir düşman tarafından(Savaşçı veya kruvazör) hasar alabiliyorlar ve kendilerini korumak için herhangi bir sistemleri yok, istasyonları korunması tamamen oyuncuların sorumluluğunda. Eğer ki tüm istasyonlarımız yok olursa oyunu kaybediyoruz, aynı durum karşı taraf için de geçerli. Yani kazanmak için karşıdaki 4 istasyonu da yok etmemiz lazım. Oyunun tasarımının temeli bu mekaniklerden oluşuyor. Daha da fazla karmaşıklaştırmaya gerek yok, en azından 48 saatlik bir prototip için.

Geliştime süreci

Modelleme öğrenmeye başlamamın temel bir sebebi vardı: Sanatçılarla anlaşmakta zorluk çekiyordum. Kimi zaman oyunu zorlayamayacak seviyede basit model almak için bin türlü takla atmam gerekiyordu, kimi zaman dediğimi yaptırmakta zorlanıyordum(Evet! Bir diktatörüm), bazen istediğimi anlatamıyordum, bazen de sadece yaptıkları işler istediğim stile uymuyordu. Sanatçılarla anlaşabilmeye başlasam benim için işler çok daha kolay olacaktı.

Fikre karar verdikten sonra, oyuna direk Unity üzerinden 4 kişilik kontrol ve RTS/MOBA kontrollerini çalıştırmaya uğraşarak başladım. 4 kişilik kontrolleri belli bir seviye çalıştırmayı başardıktan sonra kruvazör ve savaşçı modellerini yaptım. Kısıtlı modelleme becerilerim tam istediğim basit stili yakalamaya yetiyordu. 4 savaşçı da aynı modeli kullanacaktı. Bunlar, oyun için yeterliydi. Karşı taraf da aynı model uzay gemilerine sahip olacağı için sadece 1 kruvazör modeli ve 1 savaşçı modeli yapmam yetti. Bu sıralarda temanın uzay olduğu belliydi, o yüzden boş bir vaktini bulduğum anda müzikçi bir arkadaşa bu oyuna da tema yapması için hemen danıştım. Kırmadan birkaç dakika içinde daha sonradan tamamlanmış bir şekilde vereceği müziğin temeli niteliğinde bir örnek yarattı. Kendisi de Nintendocudur, not etmek istedim. (Arada Nintendo muhabbeti çevirebildiğin biri bulmak güzel oluyor)

RTS kontrolleri ile kafayı yemek üzereyken cumartesi sabahı ya 9'du, ya 10'du tam hatırlamıyorum. 25 saattir uyanıktım. Bu durum eve dönüp akşam 5'e kadar uyumamla sonuçlandı. Uyandıktan sonra bir 25 saat daha ayakta kalacaktım. En azından, uyandıktan sonra RTS kontrollerini halletmeyi başardım. Tam bu sıralar ismi belirlemiş olmak gerekiyordu. Oyunun aklımdaki ilk ismi "He is such a Bad Boy! I like him" idi (Anlayan anladı). Neyse, daha sonra kumandanı dinlemeyen oyuncuları anlatacak benzer bir isim olarak "Renegade Squad" ismini tercih ettim. Sonrasında ateş etme sisteminlerini de hızla aradan çıkardım. Oyundaki düşman/dost mantıklarını da çirkin* bir yolla olabildiğince az kod yazarak hallettim. Ne yaptığımı pek hatırlamıyorum da, kruvazörler üzerinde baya bi test yürütmem gerekmişti.

Belli bi aşamadan sonra oyun arayüzleri ile uğraştım. Bahsetmeye üşendiğim mesaj yollama sistemini ve informatik buton görsellerini koyunca yapacak pek bir şey kalmadı. Ha! Can göstergelerini daha sonra eklemiştim. Arayüzü de aşırı kötü bir şekilde hallettiğim için oyun muhtemelen sadece 1080p ekranlarda düzgün gözüküyor olmalı, ne de olsa sadece bir prototip. Bunların hepsinin arasında Ana Menü'yü de aradan çıkarttım. 3D modellerin olduğu zaman Ana Menü'yü hızlıca az çok çekici bir hale sokmak kolay oluyor.

Maratonun sonu yaklaşırken, oyuna eklemem gereken belli birkaç kilit özellik kalmıştı. Hala hiç anlamıyorum ama maratonun sonlarında zaman konusunda bir darlık hissetmiyordum. Sürekli çözdüğüm birçok "bug" ile birlikte herşey tıkırında ilerliyordu. Bir tek düşmanın yapay zekası, can göstergeleri, bir de uzay istasyonlarıyla oyunun kazanma kaybetme koşulları kalmıştı. Zamanı bol bulmuşken iki tane uzay istasyonu modeli yaptım. Biri ana istasyon içindi, diğeri de normal istasyonlar için. Uzay istasyonlarının kodlarının temeli aynı ünite mekaniğine dayandığı için oyuna eklemesi baya kolay ve hızlı oldu. 4 tane bina birden yok olduğu zaman "YOU WIN", "YOU LOSE" diye yazı çıkaran bir kod yazmak zaten ne kadar zor olabilir, değil mi? Merak etmeyin onları da olabildiğince çirkin yazdım.

Düşman yapay zekası dendiği zaman akan suların falan durmasını bekliyorsunuz değil mi? Yok. Ne kadar kolay, o kadar iyi. Bakın size yapay zeka: her 10 saniyede bir haritada rastgele bir nokta seçip ona doğru ilerleyen. Düşmanı gördüğü zaman da 2 saniyede bir defa ateş eden bir savaşçı. Kruvazör içinse aynısının daha yavaşı, ama daha güçlüsü. Oyuna biraz zorluk mu lazım? Hemen getiriyim; mermiler bizi takip etsin, bir de düşman sayısını arttır. İşte kolaylık, işte tembellik. İşte azıcık aklı olan ve kullanıcıyı hafiften zorlayan bir yapay zeka. Bunu da yazması kısa sürdü.

Oyunu oynanabilir formata çektiğim zaman istasyonlara dönme animasyonu eklemeyi unuttuğumu fark ettim. Video falan da çekmek gerektiği için o özellik de arada kaybolmuş oldu. Yoksa 1 satırlık kod. Neyse, video da ayrı bir komedi zaten.
..
En son kimseye oynatamadım.
Evde arkadaşlarla oynadık bir kez en azından.
..
Oyunu yaparken aslen bundan çok güzel Wii U oyunu olur demiştim. Oyunlarımın çoğunda olduğu gibi bunda da farklı bir Nintendo referansı olmuş oldu.
..
Biraz düzensiz yazmış olabilirim. Hikaye tepe taklak bile olabilir. Aslen neyi ne zaman yaptığımı o kadar da net hatırlamıyorum, her şey bir anda oluverdi.

 

Linkler

Bir sürü oyun denemek isterseniz,

GGJ ATOM'daki oyunların listesi: https://globalgamejam.org/2018/jam-sites/atom/games

Oynamak isteyene de benim oyun: https://globalgamejam.org/2018/games/renegade-squad

 

*Çirkin kod: Hızlı kod yazmak ile düzenli kod yazmak arasında seçim yapmak gerekir. Genelde hızlı yazılan kodla aylarca uğraşılamaz. Hata bulunduğu zamansa, hatanın nedenini tespit edip düzeltmek de kod düzensiz olduğu için daha zordur.