Demo Mu Oyun Mu?
Retro bilgisayarSelamlar. Özellikle demoscene ile yeni tanışan insanların kafasında sıkça oluşan sorulardan biri hakkında fikir cimnastiği yapalım. Son yıllarda oyun yapmak niyetiyle ortaya çıkan insan sayısının arttığını görüyoruz. Genellikle çoğunluğunu amatör ruhlu gençlerin oluşturduğu bu kitle içinde, demoscene ile tanışan kesimin aklına gelen ilk sorudur bu.
kadar çaba sarf edilmişken neden bir insan oyun yapmak yerine demo yapar?"
Her şeyden önce bu tamamen keyfi bir seçim olabilir. Bu durumda konunun çok fazla tartışılacak bir yönü de kalmaz. Zaten bu yazıdaki amacım, bir yazılımcının emeğini demolara yatırmasının, oyunlardan farklı olarak, ne avantajlar sağladığını anlatmak olacak.
Aslında bu soruyu soranların çoğu ortak bir yanılgıdan hareket ediyor. Yanılgı, bir demo projesi ile bir oyun projesinin büyüklüklerini doğru karşılaştıramamaktan ileri geliyor. Bunun sebebi de, genelde bitmiş bir oyunu çıkartmanın ne kadar iş yükü gerektirdiğini insanların doğru öngörememesi. Aslında bitmiş bir oyun demek, ilk ekranı, son ekranı, bütün menüleri ve bütün oyun unsurları tamamlanmış, içinde oynanışa etkiyen hiçbir "bug" kalmayacak şekilde temizlenmiş, düzgün ve performanslı çalışan oyun demektir. Yani hayır, şu geçen hafta sonu yaptığınız 3 odalı mekandaki FPS denemesi, bitmiş oyundan bir hayli uzak.
Genelde tecrübesiz yazılımcılar arasında 3D grafik motoru çalıştığı anda, oyunun bitirilmesine çok yaklaşıldığını düşünmek gibi de bir yanılgı var. Oyunu asıl oluşturan öğelerin, Game Logic'in, yani oyun dünyasını nesneler ve o nesnelerin birbirleriyle etkileşimleri cinsinden doğru ifade edilmesinin bünyesinde olduğunu gözden kaçırıyorlar.
Aslında pek çok oyunda, projenin grafik ayağını çalıştırdığınızda, oyunun yaklaşık %25-30'luk bölümünü bitirmiş olursunuz.
Demolarda ise grafik tarafı oyunlardakine yakın miktarda iş gerektirebilecekken, programcılık tarafındaki durum farklıdır. Bir demo yazmak bir oyun yazmak kadar zor olabilir. Fakat zorluk efektlerdeki algoritmalardadır. Bir oyunda ise nesne modelinin ne kadar iyi tasarlandığı ve proje boyunca yazılacak kodun büyüklüğünün hayli fazla olması, temel zorluk kaynaklarıdır. Bu yüzden belli bir ölçüden daha büyük oyunlar için, fazla sayıda kişinin uzun süreler disiplinli şekilde çalışması gerekir. O oyunda hiç engin matematik zeka gerektiren algoritmalar olmasa bile (ki çoğu zaman öyle algoritmalar da olur oyunlarda. Fakat burada anlatılan olay oyun projelerinde daha fazla disiplin ve organizasyon gerekmesi).
Demoların çoğunlukla interaktif olmayan ve sadece zamana bağlı değişen yazılımlar olmaları, onları bazen tek kişi tarafından bile yapılabilir kılar. İyi algoritmalar bulan, akıl eden bir programcı çarpıcı demoları çok uzun olmayan sürelerde programlayabilir.
Öte yandan demolar da sonu belli olan projelerdir. Yani bir demo projesi bir noktada biter. Hedefin ne olduğu belli ve ölçülebilirdir. Dolayısıyla bir projeyi bitirebilmek için gereken zorlamaların hepsi demo yapımcılarının başından da geçer.
Bu yüzden demolar, hem bazı teknik ve ekipsel bilgileri kazanabileceğiniz platformlar teşkil ederler, hem de bir oyunu tamamlamak için gerekenden daha az kaynak ve proje yönetimi tecrübesi ile kotarılabilirler.
Bundan dolayı, özellikle "oyun mu geliştirsem demo mu?" diyorsanız, kendinize şunu sormalısınız. Bir oyun projesindeki zorlukları anlıyor muyum? Bu zorlukları aşabilmek için gereken devamlılığı gösterebilecek miyim? Daha önce bu büyüklüğe yakın işler yaptım mı? Eğer bu sorulara cevabınız evet ise hiç durmayın oyun projelerine girin, şirketler kurun. Ülkemiz, şu an Hollywood'un beş katı büyüklüğe gelmiş olan oyun sektörüne, kıyısından köşesinden girmeye başlasın sayenizde.
Fakat bu sorulardan bir veya birkaçına cevabınız hayır ise, o zaman demoscene'de tecrübe kazanmak sizin için çok daha faydalı olabilir. Çözdüğünüz problemlerin matematiksel zorlukları daha az olmamakla beraber, uğraşmanız gereken yazılım mühendislik problemlerinde hayli azalma olacaktır. Bu da sizin için ekip çalışması ve temel yazılım bilgisi konularına daha iyi bir odaklanma imkanı sağlar.
Eğer hard diskinizde veya eski CD'lerinizde bir sürü başlanıp yarım kalmış 3D motorlar, oyun kütüphaneleri, deneme kodları vs. varsa ve siz şu an yeni FPS projenize başlamaya hazırlanıyorsanız, bir daha düşünün. Yapacağınız ve bitireceğiniz üç adet demo, böyle başlayıp da bitirmeyeceğiniz on tane yarım kalmış oyundan fazla şey öğretecektir size. Üç dört demo projesi bitirdikten sonra, bir oyun projesine bakışınız çok daha olgun bir hale gelecek ve oradaki problemleri öngörü ve çözme kabiliyetiniz artacaktır.
Hem yaptığınız demoların (iyi olmaları halinde) yurt içi ve dışından iyi tepkiler aldığını görmek ve zaman içinde uluslararası platformda takip edilen ve yeni demoları beklenen birisi olmak da size çok büyük keyif verebilir.