11.05.2010

Bir Oyunda Olması Gereken Temel Yapılar

Merhaba arkadaşlar,

Bir önceki giriş yazımda oyun programlamaya başlamadan önce yapılması gereken analiz adımlarından bahsetmiştim. Ayrıca bir oyun geliştirme ekibinde bulunabilecek temel karakterlerden de bahsetmiştim. Bu yazımda ise bir oyunda olması gereken temel yapıları inceleyerek devam edeceğiz. Aslında bu öğeler bir çoğumuzun bildiği sıradan ve basit şeyler. Fakat gel gelelim oyun kodlamanın büyüsüne kapılıp bu tarz şeylerin varlığını bile unutabiliyoruz. Bu yapıların iyi bilinmesi oyun geliştirme sürecinin daha en başında neyin, nerede ve nasıl yapılması gerektiğini belirlememizi sağladığı için çok önemlidir. Şimdi bu kavramlara kısaca bir bakalım...


Amaç


Öncelikle her oyunun mutlaka bir amacı olmalıdır. Mesela Super Mario oyununu örnek vermek gerekirse, onlarca bölümü geçmek için uğraşıyoruz. Peki amacımız ne ? Prensesi kurtarmak. Dolayısıyla oyuncuyu oyuna bağlayan bir amaç olmalıdır.

Sonlandırıcı Etkenler ve Kaydetme

Oyunun amacının yanında bu amaca ulaşmak o kadar da kolay olmamalı. Mutlaka oyuncuyu zorlayan durumlar olmalıdır. Bu aynı zamanda ulaşılması gereken amacı daha da değerli bir hale getirir. Hatta gerekirse karakterinizin belli bir hakkı olmalı ve bu hak tükendikten sonra oyun orada sonlanmalıdır. Daha sonra oyun belli bir yerden tekrar başlamalıdır. İşte bu noktalara SavePoint (Kayıt Noktası) diyoruz. Bu noktalarda oyun kaydedilir ve bir sonraki kayıt noktasına kadar geçen sürede eğer oyun sonlanırsa, oyun ulaşılan en son kayıt noktasından tekrar başlar. Bu mantık özellikle platform tabanlı oyunlarda sıkça görülür. Mesela aynı mantık Mario 'da vardır. Haritada sürekli ilerliyorsunuz ama öldüğünüz zaman, öldüğünüz yere göre, oyuna tekrar belli bir noktadan başlıyorsunuz. Ya en baştan ya da haritanın ortasındaki bir yerden...

Bir de bir çok oyunda gördüğümüz, istediğimiz anda oyunu kaydetme özelliği vardır. Oyuncu oyunun herhangi bir anında oyunu kaydedip, daha sonra oyuna oradan devam edebilir. Bu iki farklı teknikten hangisini seçeceğimizi belirleyen unsur ise genelde oyunun türüdür. Eğer SavePoint mantığı kullanılacaksa iki savepoint arası çok uzak olmamalıdır. Aksi halde karakter ölürse veya görev başarısız sonuçlanırsa, oyuncu aynı şeyleri çok fazla tekrar etmekten sıkılacaktır. Bu da kısa bir süre sonra oyuncunun bir daha oyununuzu oynamaması anlamına gelir.

Gerçekçi Bir Hikaye

Oyunun hedefine giden yolda, oyunun oyuncuyu taşıyabilmesi için gereken en önemli öğelerden biri de gerçekçi bir hikayedir. Aslında oyunun tarzı ve sizin verdiğiniz farklı bir karar ile siz oyunu çok gerçek dışı yapabilirsiniz. Fakat oyun gerçek dışı dünyasında, kendi içinde çelişmeyecek bir realiteye sahip olmalıdır. Oyundaki bölümler de bu hikayenin gidişatına göre şekillenmelidir. Karşınıza çıkacak her şey hikayenin gidişatına göre doğru zamanda çıkmalıdır. Aksi taktirde oyuncu her an şaşırabilir. Bu durum da insanların oyununuzdan soğuması için yeterli bir sebeptir.

Oynanabilirlik

Oynanabilirlik bir çok oyun dergisi tarafından oyuna verilecek atı puanlara etki edecek kadar önemli bir kriterdir. Oynanabilirlik dediğimiz kavram, oyunu daha basit nasıl oynatabiliriz sorusunun cevabıdır. Bir başka deyişle geliştirdiğiniz oyun mümkün olduğu kadar basit bir oynanışa sahip olmalıdır. Buna klavye kısayollarından tutunda, ekrandaki nesnelerin kullanılabilirliğine kadar bir çok etken etki edebilir. Oynanabilirlik neden bu kadar önemli peki. Bunu basit bir örnek ile kısaca özetleyelim. Bir oyun geliştirdinizi düşünelim. Oyun çıktığı zamanın en iyi 3D grafiklerine sahip olsun. Ses efektleri çok iyi sanatçılar tarafından yapılmış olsun. Hatta bu oyunu orta seviye donanıma sahip bir bilgisayar bile rahatlıkla çalıştırabilir olsun. Dolayısıyla daha oyun çıkar çıkmaz bir sürü potansiyel müşteriniz var demektir. Fakat oyunda ufak bir sorun var. 3D' nin ilk çıktığı dönemdeki oyunları hatırlayın mesela. Siz tam bir hamle yapacakken kamera öyle bir şekilde döner ki istediğiniz hamleyi bir türlü yapamazsınız. Veya oyuna standart bir klavye kontrol düzeneği atamışsınızdır fakat bunun ayarlar panelinden kişiselleştirilebilir olmasını sağlamamışsınızdır... gibi bu örnekler çoğaltılabilir. Bu tarz hatalar veya eksikler olacaktır belki ama oyunun geneline yayılmış bir durum söz konusu ise emin olun oyuncunun ilk yapacağı iş oyunu bilgisayardan kaldırmak olacaktır. Bu şu demektir; insanların oynaması için bir oyun geliştiriyorsunuz fakat bunu onlara oynatamıyorsunuz. Bu nedenle oynanabilirliği elinizden geldiği kadar basit ve kullanışlı tutmaya çalışmalısınız.

Tekrar Oynanabilirlik

Bunu açıklamak için size şöyle bir soru sormak istiyorum. Öncelikle bir oyun geliştirdiğinizi ve bu oyunu da bir arkadaşınızın oynadığını düşünün. Arkadaşınız bu oyunu oyanamaya başlıyor ve 1 hafta gibi bir sürede bitiriyor diyelim. Şimdi arkadaşınıza öyle bir neden söyleyin ki bu oyunu oturup 1 hafta daha oynayıp bir kez daha bitirmek istesin. İşte bu sorunun cevabı ne kadar geniş olursa oyununuz da o kadar tekrar oynanabilecek bir potansiyele sahip demektir. Burada oyuna yön verecek karakter sayısını fazla tutup, her birine farklı özellikler vermek ilk akla gelen yöntemlerden biridir. Veya Red Alert gibi bir strtaji oyununu ele alalım. Kırmızı güçler ile mavi güçlerinin sahip oldukları üniteler tamamen birbirlerinden farklıdır. Bu şu demek oluyor; oyunu oynayacak kişi bu oyunu en az 2 farklı şekilde bitirebilir. Burada tabi hikayede ön plana çıkan bir başka detaydır. Bu sefer her farklı güce, karaktere ve bu gibi öğelere özel hikaye akışı ve senaryolar olmalıdır. Bu geniş ve detaylı bir şekilde kurgulanması gereken bir konudur ama emin olun oyununuzun daha başarılı olmasını garanti eder.

Denge

Oyunun mutlaka sahip olması gereken bir dengesi olmalıdır. Şöyle özetlemek gerekirse, oyundaki karakterimiz geliştikçe, karşımıza çıkan düşmanların da güçlenmesi gerekir. Aksi halde oyunun seviyesinde gözle görülür bir şekilde düşüş görülür. Bu da her şeyin kolaylaşması demektir. Ya da oyunun daha başında çok zor bölümlere sahip olması oyun dengelerini altüst edebilir. Dolayısıyla da bu dengenin mantıklı bir şekilde sağlanıp korunması gerekir.

Ödül

En önemli öğelerden biri de ödüldür. Ödül oyunun türüne göre değişkenlik gösterebilir. Ödülleri fazladan can, enerji, para veya diğer kaynaklar gibi düşünebilirsiniz. Mesela bir bölüm sonu canavarını öldürdükten sonra mutlaka bir ödül verilmesi gerekir. Bunun dışında ödül illa ki bir başarının sonucunda gelmeyebilir. Mesela oyun dünyasında gizli yerlere çeşitli ödüller koyabilirsiniz. Oyuncunun böyle bir durumdan haberdar olması demek, tüm haritayı didik didik etmesi demektir. Sonuçta bu durum da oyunun oynanabilirlik süresini uzatır. Diğer bir deyişle oyununuzun ömrü uzar. Ayrıca burada verilen ödüllerde yine dengeli davranılması gerekir. Bir bölüm sonu canavarını öldürünce verilen ödül ile rastgele bir kutudan çıkan ödül aynı olmamalıdır.

Çevre

Günümüzde oyunlar sadece bir eğlence unsuru olarak ele alınmıyor. Bunun yanında artık oyun dünyası sosyal bir platform haline gelmiştir. Günümüzde oyunların fanlarının toplandığı, görüşlerini paylaştıgı hatta oyun içi eşyaların satıldığı forumlar ve internet siteleri mevcuttur. Dolayısıyla bu gibi altyapılara da destek vermeniz gerektiğini unutmamak gerekir. Bunların yanında bir de belli dönemlerde güncellemeler veya genişleme paketleri çıkarmanız yine oyunun ömrünü uzatan bir başka yöntemdir.

Sonuç olarak bir oyunda olması gereken en temel yapılar bu şekilde özetlenebilir. Bunlar oyunun türüne ve sizin hayalinizdeki oyun dünyasına göre çeşitli farklılıklar gösterebilir tabiki.

Kaynak : Beginning XNA 2.0 Game Programming

Mehmet Aydın Ünlü

0 yorum:

Yorum Gönder