Destek ve ders arşivi sitesi...
DESTEK VE DERS ARŞİVİ SİTESİ
Yeni sayfanın başlığı
AŞAMA 4: OYUN YAPIMINA GİRİŞ VE TEMEL KAVRAMLAR
Artık sıkıcı kısımlardan sonra yavaş yavaş önemli yerlere
geliyoruz. Bu konu çok önemli. Bu yüzden 2D-3D oyun yapanlar veya yeni
başlayanlar olsun, herkesin buraya bakmasını tavsiye ederim. Diğer motorlarda
farklı şekillerde adlandırılan bazı kavramlar var. Bu yüzden oyun yapanlara da
bu aşamayı verdim.
Şimdi oyun yapımıyla ilgili kısa bir konuşma yapalım. Çoğunluk olarak yeni
başlayanlara söylüyorum. Şimdi siz oyun yapmaya başlıyorsunuz. Öncelikle
kendinize bazı sorular sormanız gerek:
- Bunu yapacak yeterli bilgisayar bilgisine sahip miyim?
- Matematik, geometri ve fizik konularında ne kadar iyiyim? (Basit matematik,
vektörler, uzay analitiği ve uzay geometri vb.)
- Oyun yapacak zamanım var mı?
- Yeterli isteğim ve kararlılığım var mı?
- Bilgisayar oyunları hakkında yeterli bilgi birikimine sahip miyim?
Arkadaşlar bu soruları kendinize kesinlikle sorun. Çünkü oyun yapımı başta size
kolay gelecektir. Çünkü en başta panelmiş, resimmiş öyle şeylerle
uğraşacaksınız. Fakat 3D dünyaya geçtiğinizde işler değişir. Bu yüzden 3D oyun
yapmak gerçekten zor, zaman ve kararlılık gerektiren bir iştir. Şimdi ilk soru
çok önemli. Bir kere bilgisayar bilgisine sahip değilseniz hiç girişmeyin. Sonra
beni de kendinizi de yormayın. İkinci soruda aslında söylediğim derslerdeki bazı
konuları temel seviyede bilmeniz de yeter. Yani öyle aman aman bir seviyede
olmanız gerekmez. Üçüncü ve dördüncü sorularda ise kendiniz buna hazır mısınız
bunu düşünün. Tekrar söylüyorum; oyun yapmak zaman ve kararlılık ister. Bunu
atlamasanız iyi olur. Bu kısmı atlayıp da sonradan bırakıp gidenleri çok gördüm.
Son soru aslında o kadar önemli değil. Çünkü bilgisayar oyunu yapmak için bu
dersleri okuyan birisi mutlaka bilgisayar oyunları hakkında belli bir bilgi
birikimine sahiptir diye düşünüyorum.
Bir de son bir konuya daha değinmek isterim. Şimdi bu işe başlıyorsunuz. Belli
bir yere geldikten sonra hemen bırakın oyun yapmayı, grup kurmaya
çalışıyorsunuz. Bakın ben bu seneyi saymazsak yaklaşık 4-5 senedir bu işle
uğraşıyorum. Hadi yine 1-2 senesi uğraşıyor gibi geçmedi de neyse... Çeşitli
gruplara girdim. Bazen ben de kurmaya çalıştım. Zaten sitenin isminden de bunu
anlamışsınızdır. Ama kurduğum veya girdiğim grupların hiç birinden de adam gibi
bir oyun çıkmadı. Neden? Çünkü biz de aynı hataya düştük. Hemen çok şey
öğrendiğimizi zannedip, grup kurduk ve oyun yapmak istedik. İşte buna dikkat
edin arkadaşlar. Yani grup kurmanız için kendinizi baya bir geliştirmeniz gerek
ve ekip arkadaşlarınızın da aynı seviyede olması gerek. Kodlama yapan kişi,
kodlamaya hakim olmalı. Modelleme yapan kişi kullandığı programda ustalaşmalı.
Birleştirici, Photoshop'çu, animasyoncu, ses düzenleyicisi, ışık ve shader
düzenleyici... Hepsi ama hepsi işlerinde usta elemanlar olmalı. Ancak o zaman
bir oyun çıkartabilirsiniz. Şimdi geçelim oyun yapımıyla ilgili kavramlara.
Oyun ve Oyun Yapımıyla İlgili Kavramlar
Entity(Varlık):
Game Studio'da genellikle üzerine aksiyon verilebilen(sublevel hariç) ve harita
bloklarından farklı olan her şeye entity(varlık) denir. Model, sprite, sublevel
ve terrain gibi alt bölümlere ayrılır. Şimdi bu bölümlerden bahsedelim:
1) Model (Model): Genel olarak üzerine animasyon ve
iskelet koyulabilen, 3D varlıklara denir. Game Studio'da modeller MED
programında düzenlenir ve ".MDL" formatında
kaydedilirler. Fakat model yapımı bakımından MED pek tercih edilmez.
MED'e FBX, 3DS, X, OBJ, ASE veya MD2 formatlarında
modeller import edilebilir.
2) Sprite: Normalde bu kelimenin
"Peri" ve "Hayalet" gibi anlamları olmasına
rağmen Game Studio ve oyun yapımındaki anlamı bundan biraz uzaktır. Sprite'lar 2
boyutlu animasyonlu varlıklara denir. Game Studio'nun
desteklediği Sprite formatları: PCX, BMP, TGA, DDS...
3) Sublevel (Level Altı Varlıklar): Normalde WED'de
yapılan bir haritayı derlediğinizde ".WMB" uzantılı
bir dosya elde edersiniz. Fakat bu ".WMB" dosyası sadece levellerde kullanılmaz.
Level Altı Varlıklar, ".WMB" formatına sahip olan
ve tek bir nesneden oluşan yapılardır. Mesela bir bloğun üstüne ev modelleri
yerleştirdiniz, bir karakter yerleştirdiniz ve buna kod ekleyip bunu derlediniz.
Sizin oluşturduğunuz ".WMB" uzantılı dosya bir
level dosyasını belirtir. Fakat siz bu levele WED bloklarından yapılma bir şey
koyarsanız ve buna kod vb. şeyler eklemeyip, bunu derlerseniz; elde ettiğiniz
".WMB" uzantılı dosya bir "Level Altı Varlık"
olur.
4) Terrain (Arazi): Genel yapısı modellere benzeyen,
fakat modellerden biraz farklı bir amaçta kullanılan varlıklardır. Araziler
üzerinde dağlar, tepeler, çeşitli kaplamalar ve çukurluklar gibi kısımları
içeren ve diğer varlıklara bir zemin oluşturan varlıklardır. Game Studio'nun MED
programında yapılabildikleri gibi, çeşitli Terrain düzenleyici programlarla
yapılıp, MED'e atılabilirler. Game Studio ".HMP" olarak
arazi uzantısını destekler.
Map(Harita,Level):
Bütün oyunun üzerine kurulu olduğu ve harita bloklarından meydana gelen iskelet
kısma denir. Level blokları üzerlerine herhangi bir aksiyon verilmeyen
nesnelerdir. Sadece kaplama ve bazı özelliklere sahip olabilirler. 3D dünyanın
taşları gibidirler. Işık, kod, varlıklar ve daha birçok şey haritalar üzerinde
toplanır ve burada bizim bir önceki dersimizde bahsettiğimiz derlemeye benzer
bir işlem olan "Build" yapılır.
Texture(Kaplama,Doku):
3D dünyada neredeyse her nesne bir kaplamaya sahiptir. Kaplama yapmak, 2D bir
resmi 3 boyutlu bir modelin yüzeylerine entegre etme işlemidir. Yüzeylerle tek
tek uğraşıp veya tek bir tıklayışla otomatik ayarlama yapıp kaplamayı bu yüzeye
yerleştirebilirsiniz. Tabi ki 2. yöntem daha kolaydır. Game Studio'da da ister
Model, ister Terrain, ister Level Bloğu olsun hepsine kaplama
uygulayabilirsiniz. Hatta siz kaplama uygulamazsanız (örneğin level bloklarında)
Game Studio kendi default kaplamasını bunların üzerine yerleştirecektir.
Game Studio'nun şu anki en son sürümünün desteklediği
kaplama formatları: ".BMP", ".PCX", ".TGA", ".DDS", ".JPG", ".PNG", ".JPE",
".PPM", ".DIB", ".HDR"...
Import-Export:
Türkçe karşılıkları ithalat ve ihracattır ve belirttikleri eylemler de buna
benzerdir. Farklı dosya uzantısına sahip olan Level, Model veya Terrain
dosyalarını programınıza almaya veya programınızdaki bu tip dosyaları o dosya
uzantılarına dönüştürüp kaydetmeye yararlar. Mesela MED'in
".MDL" tipi dosyaları desteklediklerini biliyoruz. Fakat MED,
".FBX" ve daha bir çok farklı dosya uzantısına
sahip modelleri Import yoluyla alır ve yine aynı şekilde bu dosyalara Export
yoluyla dönüştürür. Bu dönüşümler sırasında eğer modelin yapılmış olduğu
modelleme programındaki bir özellik, yeni aktarılan modelleme programında yoksa,
o özellik silinir. Yine aynı şekilde kaplama stilleri uyuşmuyorsa veya animasyon
biçimleri uyuşmuyorsa bu kaplama ve animasyonlar silinerek model yeni programa
aktarılır. Maalesef MED çok gelişmiş bir modelleme programı olmadığı için bu
olaylar çok sık yaşanıyor. MED ve WED'in İmport-Export
dosya formatlarını "File"
menüsünden "Import"
veya "Export"
başlıklarına gelerek öğrenebilirsiniz.
Frame Animation(Kare Animasyonu):
Bildiğiniz gibi animasyonlar çeşitli karelerin birleşmesiyle oluşmuş
görüntülerdir. İşte kare animasyonu da tam olarak bunu ifade eder. Yani mesela
bir adamın kolu ilk karede 10, sonra 20, sonra 30 derece şeklinde düzenli olarak
dönsün. Bu kareleri kayıtlayıp belirli bir hızda yürüttüğünüzde, bir kare
animasyonu elde edersiniz. FPS(Frame Per Second - Saniye Başına Kare) Oranı ise
bu karelerin oynama hızı ile ilgili bir terimdir. FPS bilgisayar hızına göre
kare animasyonlarının hızını organize eder. Mesela yavaş bilgisayarlarda oyunlar
kasılır ve FPS oranı düşer. Bu durumda kareler arası zamanlar açılır ve
animasyonun gerçekçiliği azalır. Bu gibi durumlarda oyunun kalitesini düşürerek
veya başka yöntemler kullanarak bu FPS oranını yükseltmek gerekir. Aksi takdirde
aşırı performans kaybından dolayı oyununuz çekilmez hale gelir.
Bone Animation(Kemik Animasyonu):
Bu tip animasyonlar kare animasyonlarından çok daha karmaşık ve profesyoneldir.
Kemik animasyonları, modelleme veya animasyon programlarında kemik (bone) adı
verilen hayali modellerin birleştirilmesi ile yapılan bir çeşit animasyondur. Bu
tip animasyonlarda, animasyonlar çok daha profesyonel olur. Çünkü bir adamın
bacağının animasyonunu ayrı, kolunun ayrı ve başka bir yerinin de ayrı
animasyonunu çıkarabilir ve bunları dilenen zamanlarda birbirine karıştırarak
oynatabilirsiniz. Evet, işte kemik animasyonunun görevi budur; aynı anda birden
fazla animasyonu oynatmak... Fakat yapımı son derece zordur. Öncelikle kemik
modellerini modelle çok iyi bağdaştırmak gerekir. Tabii bunun kodlama kısmı da
vardır. Fakat basitten zora doğru düzenli çalışmalarla başarıya ulaşılabilir.
Polygon(Çokgen):
Bu terim oyun yapımının, hatta bilgisayar grafiklerinin en can alıcı ve en
önemli terimidir. Çünkü bu terimi dikkate almazsanız oyununuzu performans
bakımından çekilmez hale getirebilirsiniz. Evet arkadaşlar polygon, çokgen
anlamına gelen, fakat çoğu kez bir üçgeni belirten bir bilgisayar grafiği
terimidir. Mesela bir küpün 6 yüzü vardır. Her yüz karelerden oluşur ve kare bir
dörtgendir. Dörtgenler ise 2 üçgenden meydana gelir. Dolayısıyla basit bir küp
modeli "6x2=12" polygon'a sahiptir. Oyununuzdaki kameranın gördüğü polygon
sayısı arttıkça oyun performansı ve FPS düşer ve oyununuz yavaşlar. Bu nedenle
oyununuza koyacağınız modellerde bu sayıya dikkat etmelisiniz.
MED'den porlygon sayısına; "File"
menüsünden "Model Properties"a girip, oradaki
"Numper of Face" sayısına bakabilirsiniz. Unutmayın ki
oyunlarınızda grafik-performans dengesini çok iyi sağlamalısınız.
Kamera:
Bizim ekranımızın uzaydaki pozisyonudur diyebiliriz. Mesela gerçek hayatta bir
dijital kamerayı ele alalım. Bu kamerayı nereye çevirirsek, hangi pozisyona
sokarsak LCD ekrandaki görüntüde objektifin gördüğü görüntü olacaktır. Yani biz
de oyunumuza bir kamera yerleştirip, bu kamerayı bir varlığa bakacak şekilde
ayarladığımızda, oyuna girdiğimizde ekranda o varlığı görürüz. Olay bu kadar
basit aslında... Game Studio'da kamera kod ile ayarlanabilir veya WED'den
eklenebilir.
Build Etme:
Build'in anlamı "İnşa Etmek" olduğundan buradaki
anlamı da hemen hemen aynıdır. Haritayla bütün işiniz bitince onu Build
edersiniz. Bu ne demektir? Build, haritanıza bütün modelleri, blokları ve
ışıkları ekleyip; bunların pozisyonlarını ayarlayıp bu haritayı en sonunda
derleme işlemidir. Yani bu işlemin amacı da programlamadaki
"Derleme" ile eşdeğerdir denebilir. Build süresi
haritalara göre farklılık gösterebilir.