Bu site emekli olmuştur. Arşiv amaçlı olarak BT AKADEMİ sponsorluğunda yayın hayatına devam etmektedir.




C#nedir?com
 
YAZAR HAKKINDA
Mehmet Aydın Ünlü
Mehmet Aydın Ünlü
http://www.csharpnedir.com/
İletişme geçmek için tıklayın.
3 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler: analiz farkli gamers gelistirme gereken gerekir. mesela mutlaka oldugu olmalidir. olmasi oyuncu oyunda oyunun yazilim C# / VC#/.NET Mehmet Aydın Ünlü
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Orta
Kategori : C# / VC#/.NET
Yayınlanma Tarihi : 6.1.2009
Okunma Sayısı : 35714
Yorum Sayısı : 1     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
Silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer
Conda install environment.yml Package 21.11.2024
Turhal Temizer
Mac OS/X Removing CUDA 21.11.2024
Burak Selim Şenyurt
Rust ile ECS Yaklaşımını Anlamak 21.11.2024
Burak Selim Şenyurt
Birlikte Rust Öğrenelim Serisi 21.11.2024
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
XNA İle Oyun Programalama - 1
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
Merhaba arkadaşlar, bu yazıyla birlikte öncelikle bir oyun projesine başlamadan önce analiz aşamasında belirlenmesi gereken bazı temel kavramları inceleyeceğiz. Ardından oyun geliştirme takımında yer alacak olan karakterleri tanıyacağız. Son olarakta bir oyunda olması gereken temel yapıları inceleyeceğiz.


ANALİZ

Oyun geliştirme işi birçok farklı adımdan oluşsada özünde bir yazılım çalışmasıdır. Her yazılım çalışmasına da başlamadan önce yapılması gereken bazı şeyler vardır ve bunların en önemlisi de iyi bir analiz çalışmasıdır. Analiz çalışmaları uygulama geliştirme aşaması için hayati derecede önem taşır. Oyun geliştirme gibi uzun soluklu projelerde, eksik yapılmış bir analiz projenin başarısız olmasına kadar çok büyük negatif etkiler yaratabilir. Bu bağlamda, bir oyun geliştirme projesinde yapılması gereken temel analiz adımlarına bakalım isterseniz.

Hedef Kitle Seçimi

Öncelikle yazacağınız uygulama tipi bir oyun olduğu için, hedef kitlesi ilk aşamada çok doğru bir şekilde tespit edilmelidir. Bu yüzden hedef belirleme aşaması oyunun geleceği için son derece hayati önem taşır. Bunun nedeni ise, yazacağınız programın bir işin olmasına, bir ticari amacın gerçekleşmesine veya bu tarz bir şeye hizmet etmeyecek olmasıdır. Yani ortada sizin anlaştıgınız, sizin projenizi bekleyen bir kimse yoktur. Bir başka deyişle siz bir ticari ihtiyacı kapatmak için yazılım geliştirmeyeceksiniz. Evet yine bir ihtiyacı karşılayacaksınız ama bu ihtiyacın adı eğlence olacak. Buradan yola cıkarsak, yazacağınız oyunlardan insanların tek bir beklentisi olacak oda eğlenmek. Hedef kitle seçiminede işte tam bu noktada ihtiyac duyuluyor çünkü her insanın eğlence anlayışı farklıdır. Eskiden oyunlar küçüklere hitap etsede artık günümüzde yaş faretmeksinizin hemen hemen bir cok insan bilgisayar oyunu oynuyor. Ama yinede ortada yaş farkından doğan seçimler mevcuttur. Mesela SuperMario oyununu ele alalım. Bu oyunu her ne kadar bir çoğumuz hala seve seve oynasada oyunun asıl hedef kitlesi cocuklardır. Her oyunun hedef kitlesi belli bir yaş grubu olmalı demiyorum tabiki ama eğer herkesi hedef alacaksanızda ona göre bir analiz yapıp çalışmanızada o yönde yol vermeniz gerektiğinide unutmamanız gerekiyor.Şimdi geliştireceğiniz oyunları oynayacak olan oyuncu profilerini kısaca tanımaya çalışalım isterseniz.

Araştırmalara göre bilgisayar oyuncuları 6 profile ayrılıyor;

1. Heavy Gamers (Ağır oyuncular)
2. Console Gamers (Konsol oyuncuları, PlayStation, XBOX, WII)
3. Mass Market Gamers (Sadece çok etkileyici oyunları tercih edenler)
4. Prefer Portable Gamers (Taşınabilir cihazlarda oyun oynamayı tercih edenler)
5. Secondary Gamers (İkincil oyuncular, oyun almazlar sadece cevresindekilerden buldukları herhangi bir oyunu alıp türüne bakmaksızın oynarlar)
6. Infrequent Gamers (Nadir oyuncular, ara sıra oyun oynayanlar)

Bu 6 profil ise, 2 tür altında toplanıyor.

1. Infrequent Gamers

Bu tarz oyuncular gelişigüzel oyun oynarlar. Yani canları istedikleri zaman. Bu nedenle kısa sürede eğlenmek isterler. Bu tarz oyuncular için oyunun çok basit olması gerekir. Ayrıca karmaşık bir hikayesi olmaması gerekir, hatta oyunun bir hikayesi olmasa bile olur. Oyun bölümlerinin kısa aralarla geçmesi gerekir. Yani bir bölüm saatlerce sürmemeli.Bunun yanında oyuncuya başarma hissinin yansıtılması hem gerekli hemde çok önemlidir. Çünkü oyuncu dediğim en kısa zamanda en fazla eğlenceyi almak ister. Eğlence ise oyun oynamak ile geçirdiği sürenın dışında bu sürenin bir ödülle desteklenmesidir. Çok basit bir örnek mesela mario oynarken, 100 altın’a sahip olduktan sonra ekstra’dan 1 can verilmesi.

Bunların dışında oyunda çok abartı 3D efektlerin veya cok etkileyici ses efektlerinin olması çokta önemli değildir. Şunu asla unutmayın, yazdıgınız şey bir bilgisayar oyunu ve sadece oynayanı eğlendirmeyi hedefliyor. Böyle bir hedefe saf 2D görüntüler ilede ulaşabilmeniz mümkündür. 3D olması şart değildir. Örnek vermek gerekirse yine mario’ u gösterebiliriz.

2. Heavy Gamers

İşte büyük oyunların hedef kitlesi arkadaşlar. Bu arkadaşlara "hardcore gamers" derler. Oyunları çok ciddi bir şekilde ele alırlar. Hatta eminim bunu yaşam tarzı olarak görenler bile vardır.Bu profildekiler için oyunun son derece gerçekçi olması gerekir. WarCraft cıkacagı günden bir gün önce magaza önünde sabahlayanları görmüştük haberlerde, işte bu profildeki arkadaşlar onlar oluyor. Bunun dışında bu oyuncuların oyundan etkilenmesi ve oyunu benimsemesi için oyunun bir hikayesi olması gerekir. Hikaye’nin de gerçekçi olması çok önemli değildir, ama hikaye kendi içinde yani kendi dünyası içinde realist olmalıdır. Mesela Yüzüklerin Efendisi son derece gerçek dışıdır ama kendi evreni içinde her karakterin kendine özgü bir yapısı ve dünyanın da kendine ait bir gerçekçiliği vardır. Ayrıca dikkatinizi bir noktaya çekmekte fayda var, eskiden filmlerin oyunları yapılırdı, ama artık günümüzde oyunların filmleri yapılıyor. Buda oyun sektörünün ne kadar geliştiğinin en güzel göstergesidir. Bakınız Tomb Raider, Max Payne, Resident Evil ilk aklıma gelenler. Bu ufak notlardan sonra bu tarz oyuncuların istekleri kutu kutu düşmanlar, düz mavi zemin üzerinde yuvarlak yuvarlak bulutlardan oluşan 2D bir dünya asla değildir tam aksine son derece detaylara sahip olan, o dünyanın içinde olduklarını onlara hissettirebilecek son derece gerçekçi 3D grafiklere sahip bir oyundur.Ayrıca bu görsellik, yine cok gerçekçi ses efektleri ve o anki oyun içinde gerçekleşen duruma özel müziklere sahip olmalıdır.Oyunun başında çalan eğlenceli müziğin, karakteriniz öldükten sonra da çalması CD’leri kırmak için yeterli bir sebeptir. Ve bu tarz oyuncuların bir beklentiside uzun oyun zamanıdır. Bir bölümü geçmek için günlerce uğraşabilirler. Bundan sıkıldıklarını sanmayın aksine zevk alırlar. Ama bu çabalarını mutlaka ama mutlaka bir şekilde ödüllendirmeniz gerektiğinide asla unutmayın.Bu ödüllerinde adil ve mantıklı dağıtmanız gerekiyor tabiki. Mesela karakteriniz sıradan bir düşmanı öldürünce 100 altın kazanıyorsa, bir boss’u öldürdüğünde cok daha büyük ödüller kazanmalıdır.

Bugüne kadar hiç oyun geliştirme üzerine kafa yormadıysanız buraya okuduklarınız farklı gelmiş olabilir.Bunlar daha başlangıç tabiki. Bunları asla bir CRM, ERP veya bu tarz uygulamalar geliştirirken düşünmezsiniz. İşte bu yüzden oyun geliştirmenin çapı çok daha büyüktür. Bu yüzdendir ki, sizin programcılıga bakışınızı değiştirir ve ufkunuzu açar.

Evet hedef kitlemizi seçtikten sonra bir sonraki önemli analiz aşamasına geçebiliriz.

Oyun Türü Seçimi

Az önce yazdıgımız, "uygulamanın bir tek hedefi var ve oda eğlendirmek" demiştik. Şimdide "her insan farklı şekilde eğlenir" dediğimiz noktaya geliyoruz. Oyun geliştirmeye başlamadan önce vermeniz gereken bir karar da oyunun türüdür. Bazı oyun türlerini örnek vermek gerekirse;

Tür Oyun
Strategy Red Alert, WarCraft, StarCraft
Shoter (kendi içinde 4 ’e ayrılır)  
Shot’em up DuckHunt, Virtu Cop
LightGun Shoter Shot’em up’ın tabanca ile oynananı

Firs Person Shooter(FPS)
DOOM, Quake, Half-Life, CounterStrike
Third Person Shooter MaxPayne, GTA 3
Tactical Shooter TomClany’s RainbowSix, GhostRecon, OperationFlashpoint
Role-Playing Game (RPG) Diablo, NeverWinterNights
Adventure Alone In The Dark, Monkey Island
Action
Unreal Tournament
Sports
FIFA, NBA
Racing NeedForSpeed, GranTourismo
Fighting StreetFighter, Tekken
Uygulama geliştirme sürecinde, uygulamanın sınırlarını en net belirleyen aşama oyun türünün belirlendiği bu aşamadır. Bu yüzdende çok önemlidir. Şöyle düşünün siz FPS tarzında bir oyun geliştiriyorsunuz diyelim. Bu tarz bir oyunda kimse sizden flight simulator’da kullanılan, fizik motoruna benzer bir fizik motoru yazmanızı beklemez. Yani bir FPS’de kullanacagınız fizik motoru ile bir uçuş simülasyonunda kullanacagınız fizik motoru arasında büyük farklar vardır. İşte bu ve bunlar gibi kararların verilmesindeki önemli etken oyun türüdür. Tabi bu kalıpların dışına çıkıp, kendi yaratıcılığınız doğrultusunda çok farklı türden oyunlarda yaratabilirsiniz. Listede en temel türler verilmiştir.

Oyun geliştirmenin analiz aşamasında yapılması gereken en temel adımları bu şekilde özetleyebiliriz. Bunların yanına bir sıradan bir yazılım projesinin, analiz aşamasında yapılması gereken real ögeleri çok rahat bir şekilde burayada ekleyebiliriz tabiki.


Oyun Geliştirme Ekibini Tanımak

Geliştirdiğimiz uygulama bir oyun olduğu için, oyunun türüne uygun takım içinde her biri kendi alanında uzman bir çok farklı karakterler olmalıdır. Bu karakterlerin hepsi saf oyun programcısı olmak zorunda değildir. Şimdi gelin bu karakterler neler olabilir bunlara kısaca değinelim.

Project Management (Proje Yöneticisi)

Geliştireceğimiz uygulama özünde bir yazılım projesidir. Ve her profosyonel yazılım geliştirme sürecinde oldugu gibi oyun geliştirme süreci içinde takımı, motive edecek, kontrol edecek, iletişimi ve koordinasyonu sağlayacak, kaynak yönetimini yapacak bir proje yöneticisi şarttır. Olmazsa ne oluru hiç düşünmeyin bile.

Script Writers (Senarist)

Eğer oyununuz bir hikayeye sahipse bir senaryosu vardır. Karakterler arasında belli diyaloglar geçer. Kimi zaman bu diyaloglara oyuncu da müdahale edebilir ve bunun sonucunda oyun farklı bir şekilde yol alabilir. İşte senaristler oyunun hikayesini belirleyen ve hikayenin ön plana cıktıgı özellikle adventure tarzı oyunlardaki en önemli karakterdir.Bir futbol oyununda senariste gerek yoktur belki ama bir adventure’ da mutlaka olması gerekir.

Ayrıca AgeOfEmpires gibi oyunlarda, takım içinde tarih bilgisi çok yüksek, oyunun geçtiği çağlardaki dönemleri çok iyi bilen mimarlar, sanat yönetmenleri gibi hikayeye ortak olacak bir çok karakterde bulunabilir.

Level Designers (Bölüm Tasarımcıları)

Hikayenin akışına göre veya bölümün hedeflerine yönelik o bölümde kullanılacak araçların tanımlanması gibi işlemleri yaparlar. Bölümün hedefine uygun oyun akışını düzenlerler. Mesela bölüm sonunda bir BOSS’u öldürmeniz gerekiyor ama elinizdeki silahla onu öldürmeniz çok zor. Fakat oyunda kenarda köşede kalmış bir karakteri öldürünce onun silahını alıp, o silahla cok rahat bir şekilde BOSS’u öldürebilirsiniz. İşte bu gibi kararları (tabi hikaye dışına taşmadan) Level Designer’lar verir.

Bir oyunun yapısı hızlı işliyorsa çok uzun bölümler genelde oyuncuyu sıkar. Herşey çok hızlı ilerliyordur oyun çok eğlencelidir ve hemen bölüm sonuna gelinmek istenir. Yine bir Mario örneği, bölümler asla uzun değildir. Bu noktada Level Designer’ ın önemi daha net görülmektedir.

Artist

Oyun menülerinin tasarımı, 3D karakerler için dokuların hazırlanması gibi aşamalarda yer alırlar.Mesela bir otelin lobisinde geçen dövüş bölümü için lobi’nin tasarımı gibi şeyelere karar verirler. Gereksiz yerlerde gereksiz nesneler konulması oyuncuyu oyundan sogutur.Oyunun gerçekçi olmasını engeller. Lobi’de buzdolabı olması çok saçma bir örnek kabul ediyorum ama öyle olsada çok saçma ve gerçek dışı olurdu.

Modelers (Modelleyiciler)

Çeşitli 2D veya 3D tasarım programları ile oyun içindeki karakterleri, binaları, köprüleri kısaca nesneleri modelleyen kişilerdir. Bir oyun için görsel zenginlik çok önemlidir, bu bağlamda modelleyicinin ortaya koydugu modeller çok önemlidir.Siz bir uçuş similasyonu için çok iyi bir fizik motoru yazmış olabilirsiniz ama modelleyiciniz, bir boeing 737’yi , kutu gibi tasarlar ise oyununuzun pek tutmayacagını rahatlıkla söyleyebilirim.

Animators (Animatörler)

Tasarımcıların yaptıgı animasyon işinden bahsetmiyoruz. Bölümlerin başında, sonunda veya hikayenin gidişatına göre ortaya çıkan izlenme amaçlı yapılmış animasyonları hazırlayan kişilerdir. Hikayenin akışını tamamen destekleyen oyuncuyu oyuna bağlayan en önemli öğelerden biridir. Siz oyunun menülerine hikayenin okunabileceği bir menü koyup, düz text şeklinde hikayeyi oyuncuya sunabilirsiniz ama bu kadar uzun yazıyı herkes okumak istemez.İşte bunu hikayeyi özetleyen kısa animasyonlarla gerçekleştirebilirsiniz.Bunuda animatörler yapar.Hikayenin pekiştirilmesi ve daha net anlaşılması için çok önemlidirler.

Musicians (Müzisyenler)

Müzikler oyuncuyu oyuna çeken, grafikten sonraki en önemli etkendir.Gerçekçi ve dogru zamanda oluşan ses efektleri ve duruma uygun fon müziği oyunun çok daha iyi olmasını sağlar. Bu müzikleri ve ses efektlerinide müzisyen arkadaşlar hazırlar. Oyunun tarzına uygun müzik seçilmeside ayrı bir özen ister. DOOM’daki ateş etme efektini asla mario ’da aramazsınız mesela.

Programmers (Programcılar)

Bu arkadaşlar bizler oluyoruz işte :) Ortada bu kadar fazla öğe varken, bu kadar öğenin koordine bir şekilde nerde ne zaman işleyeceğini belirleyenlerdir.Bir karakterin can sayısından tutunda, bir strateji oyunundaki kaynak yönetimine kadar arka plandaki tüm mantıksal işlemleri programlayan kişilerdir. Yukarda saydıgım karakterler olmadan oyun yazılabilir ama programcı yoksa oyunda yoktur ama hiç bir oyun diğer karakterler olmadan türündeki en iyi oyun olamaz.

Testers

Her yazılım çalışması bittikten sonra mutlaka testi yapılır. Oyun geliştirmedede durum farklı değildir. Oyunun her anının tek tek testleri yapılmalıdır.Gözden kaçan çok ufacık bir bug oyun cıkar cıkmaz ardından bir patch yayınlamanıza neden olur. Buda ekstra maliyet demektir. Böyle olsa iyi, birde bazı durumlarda oyununuz oyuncuların gözünden düşebilir. Bu yüzden test aşaması en az analiz aşaması kadar detaylı yapılmalıdır.Bu aşamada oyundaki hatalar tespit edilir ve düzeltilir.Tüm hatalar düzeltildikten sonra oyun piyasaya sürülür. Ne varki her yazılım çalışmasında oldugu gibi buglar mutlaka olacaktır, bunları kapamak için patch’ler yayınlanır. Bu süreçtede testlere devam edilir.Test yapan kişilerin testi iyi yapmasıda bu noktada hayati önem taşır.


Takım arkadaşlarımızıda tanıdıktan sonra bu kavramlar hakkında son birşey söylemek istiyorum. Bu işe yeni başlayan veya amatör hislerle bu işle ilgilenmek isteyen kişiler için bu bilgiler hiç bir anlam ifade etmeyebilir. Fakat ben bir işi en temelinden öğrenilmesi gerektiğine inanıyorum. Profosyonel bir oyun geliştirme süreci içinde bulunmadıgınız sürece, hiç bir durumda bu karakterle belki karşılaşmayacaksınız ama bu işin dünyada profosyonel şekilde bu tarz kişilerle bu şekilde yapıldıgını bilmek önemlidir. Bu karakterler ve kavramlar en temel ortak ögelerdir. Oyunun türüne tarzına göre yeni özelliklere sahip karakterlerde eklenebilir tabiki.


Bir Oyunda Olması Gereken Temel Yapılar

Aslında bu öğeler bir çoğunuzun bildiği sıradan şeyler ama ilk başlarda oyun kodlamanın büyüsüne kapılıp bu tarz şeylerin varlığını bile unutabiliyoruz. Ama bunlar daha en başında neyin, nerede ve nasıl yapılması gerektiğini belirten analiz aşamasının en önemli adımlarından biridir. Bu yüzden bunlara değinmekte büyük fayda var diye düşünüyorum. Faydalı olması dileğiyle şimdi bu öğeleri kısaca inceleyelim isterseniz.

Amaç

Öncelikle her oyunun bir amacı olmalıdır. Mesela Mario örneğinden gidersek yine, onlarca bölümü geçmek için uğraşıyoruz değilmi, bu kadar uğraşmamızın tek nedeni prensesi kurtarmak değilmi :)

Sonlandırıcı Etkenler ve Kaydetme

Oyunun amacının yanında bu amaca ulaşmak okadarda kolay olmamalı değilmi. Mutlaka oyuncuyu zorlayan yerler olmalıdır. Bu aynı zamanda ulaşılması gereken amacı daha da cazip bir hale getirir. Hatta gerekirse karakterinizin belli bir hakkı olmalı ve bu hak tükendikten sonra oyun orda sonlanmalıdır. Daha sonra oyun belli bir yerden tekrar başlamalıdır. İşte bu noktalara SavePoint diyoruz. Bu noktalarda oyun kaydedilir ve bir sonraki save pointe kadar gecen sürede eğer oyun sonlanırsa, oyun ulaşılan en son save pointten 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 yada haritanın ortasından gibi.

Birde 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ı teknik, oyunun türüne göre seçilmelidir. Eğer SavePoint mantıgı kullanılacaksa iki savepoint arası cok uzak olmamalıdır. Aksi halde karakter ölürse veya görev başarısız sonuçlanırsa, oyuncu aynı şeyleri uzun uzun tekrarda yapmaktan sıkılacaktır.

Gerçekçi Bir Hikaye

Oyunun hedefine giden yolda, oyunun oyuncuyu taşıyabilmesi için gereken en önemli noktalardan biride gerçekçi bir hikayedir. Aslında daha önceden bahsettiğim gibi oyunun tarzı ve sizin verdiğiniz farklı bir karar ile siz oyunu çok gerçek dışı yapabilirsiniz. Ama oyun gerçek dışı dünyasında, kendi içinde çelişmeyecek bir gerçekçiliğe sahip olmalıdır. Oyundaki bölümlerde 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 heran, "bu ne alaka şimdi", "bu nerden çıktı" tarzında cümleler kurabilir ve bu da insanların oyununuzdan soğuması için yeterli bir nedendir.

Oynanabilirlik

Gelelim bence en önemli olan noktaya. Oynanabilirlik bir çok oyun dergisi tarafından oyuna verilecek puan’a etki edecek en önemli kriterlerden biri olarak ele alınır. Oynanabilirlik dediğimiz kavram tamamen, oyunu daha basit nasıl oynatabiliriz sorusunun altında yatan cevaptı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ştirdiniz diyelim. Oyun cıktığı zamanın en iyi 3D görseline sahip. Sesler mükemmel.Hatta bu oyunu orta seviye bir pc bile rahatlıkla çalıştırabilir. Bu yüzden daha oyun cıkar cıkmaz bir sürü potansiyel müşteriniz var. Fakat oyunda ufak bir sorun var. Kamera acıları bazen cok kötü bir şekilde oyunun oynanmasını engelliyor. 3D’nin ilk cıktıgı dönemdeki oyunları hatırlayın. Siz tam bir hamle yapacaksınız ama kamera öyle bir şekilde dönüyorki bir türlü istediğinizi yapamıyorsunuz. Bu tarz buglar olacaktır illaki ama oyunun geneline yayılmış bir durum söz konusu ise emin olun oyuncunun ilk yapacagı işlem oyunu pc ’den kaldırmak olacaktır. Yani insanlar oynasın diye oyun yapıyorsunuz ama oynatamıyorsunuz. Sorun tam olarak budur. Ve en önemli sorunlardan biridir. Bu nedenledirki 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 yazdıgınızı ve bu yazdıgınız oyunuda benim oynadıgımı düşünün. Ben bu oyunu oyanamaya başlıyorum ve 1 hafta gibi bir sürede bitiriyorum. Şimdi bana öyle bir neden söyleyinki, ben bu oyunu oturup 1 hafta daha oynayıp bir kez daha bitireyim. İşte bu sorunun cevabı ne kadar geniş olursa oyununuz okadar tekrar oynanabilecek potansiyeli olan bir oyundur. Burada oyuna yön verecek karakter sayısını fazla tutup, her birine farklı özellikler vermek ilk akla gelen yöntemdir. Veya RedAlert gibi bir strateji oyununu ele alalım. Allied gücleri ile Soviet 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 cıkan başka bir 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 bence, oyununuzun en az 2 kat daha güzel olmasını garanti eder. İnsanlar yıllar sonra oturup Diablo’yu tekrar oynuyorsa eğer, bu sadece oyunun tekrar oynanabilen bir yapıya sahip olmasından dolayıdır.

Denge

Oyunun mutlaka sahip olması gereken bir dengesi olması gerekir. Şöyle özetlemek gerekirse oyundaki karakterimiz geliştikçe, karşımıza cıkan düşmanlarında güçlenmesi gerekir.Aksi halde oyunun seviyesinde gözle görülür bir şekilde düşüş görülür. Buda herşeyin kolaylaşması demektir ve bu durum oyuncunun oyunu bırakması için yeterli bir sebeptir. Veya oyunun daha en başında çok zor bölümlere sahip olması oyun dengelerini altüst eden hatalardandır. Mümkün olduğu kadar bu dengenin sağlanması gerekir.

Ödül

En önemli öğelerden biride ödüldür tabiki.Bu ödül oyunun türüne göre değişkenlik gösterebilir. Ekstra can, enerji, para, veya diğer kaynaklar gibi düşünebilirsiniz. Mesela bir boss’u öldürdükten sonra mutlaka bir ödül verilmesi gerekir. Bunun dışında ödül illaki bir başarının sonucunda gelmeyedebilir. 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, buda oyun süresinin uzaması demektir.Yani oyununuzun ömrü uzar. Tabi olayı abartmamak gerektiğini söylememe gerek yok herhalde. Ayrıca burada ödüllerde yine dengeli davranılması gerekir. Bir boss’u öldürünce verilen ödül ile rastgele bir kutudan cıkan ödül aynı olmamalıdır.

Çevre

Günümüzde oyunlar artık sadece bir oyun olarak ele alınmıyor. Bunun yanında artık oyun dünyası bir sosyal platform haline geldi desek abartmış olmayız sanırım. Artık oyunların fanlarının toplandıgı, görüşlerini paylaştıgı forumlar, internet siteleri, komiteler mevcuttur.Hatta oyun dünyasına ait materyallerin satıldıgı, paylaşıldıgı ve bu işin artık bir ticarete döndüğünüde söylemek gerekiyor.Bu gibi altyapılara destek vermeniz gerektiğini unutmayalım. Bunların yanında birde belli dönemlerde update’ler veya expansion pack’ler çıkarmanız yine oyunun ömrünü uzatan bir başka yöntemdir.

Evet arkadaşlar bir oyunda olması gereken temel yapılar bu şekilde özetlenebilir.Bu yapılar oyunun türüne ve sizin hayalinizdeki dünyaya göre farklılık gösterebilir tabiki.

Kaynak : APress, Beginning XNA 2.0 Game Programming: From Novice to Professional


Mehmet Aydın Ünlü
[email protected]
http://aydinunlu.blogspot.com

Makale:
XNA İle Oyun Programalama - 1 C#, Visual C# ve .NET Mehmet Aydın Ünlü
  • Yazılan Yorumlar
  • Yorum Yaz
Bu konu hakkında yayınlanan yorum bulunmamaktadır.
"Yorum Yaz" tabını kullanarak sizde yorumlarınızı yazabilirsiniz.
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor