Tasarım Tasarlama Araçları Designing Design Tools

advertisement
Tasarım Tasarlama Araçları
Designing Design Tools
Özkan MISIRLI
A0260122
Giriş
• Bir oyun için zorunlu olan içerik iyi bir oyunun
geliştirme sürecinin bir parçasıdır. İyi bir içeriği
oluşturmak için tasarım ekibi iyi tasarlanmış
sağlam oyun yaratma araçlarına ihtiyaç duyar.
• Geliştirme ortamları, programcıların oyunun
kodlarını derlemek için kullandıkları ve
ressamların grafik paketlerini oyunun sanatsal
kısmını oluşturmak için kullandıkları ortamlardır.
En yaygın oyun yaratma aracı seviye
editörleridir(level editör).
Giriş
• Her oyunun seviyeleri
bulunmamaktadır.
• 1980’lerin başlarında Missile
Command or Space Invaders
gibi klasik arcade oyunları gibi
birçok oyunda seviye
bulunmamaktaydı.
• Defender gibi ilk oyunlarda
karmaşık bir seviye
editörlerine ihtiyaç yoktu.
Beklenen İşlevsellik
• Seviye editörleri hangi tür işlevselliği
içermelidir?
• Bir seviye editöründen beklenen en önemli
özellik kullanışlı olmasıdır.
• Bir editörün tam olarak parlaması,
tasarımcıların en iyi çalışmayı yapmalarını
desteklemesi için hangi özellikleri
içermelidir?
Seviyenin
Görselleştirilmesi
• Bir dünya yaratma aracının en önemli hedefi
tasarımcıya, değişiklikler yaparken aynı
zamanda dünyayı görmesine izin vermelidir.
• Bu genelde “Gördüğün şey uğraştığın/sahip
olduğun şeydir(What You See Is What You Get
(WYSIWYG))” olarak adlandırılan kelime
işlemcileri alanını kapsar ama seviye editörleri
evrensel olarak daha iyidir
• WYSIWYG görünümü oyuncunun gördüğüdür.
Seviyenin
Görselleştirilmesi
• Dünya tasarımcıları burada oyuncunun kullandığı
motoru aynen kullanmaktadır. Bu bir seviye
editörünün en önemli özelliği olarak ortaya
çıkmaktadır.
• Bir tasarımcı oyun ayarlarına ilk defa ince ayar
yaparsa nasıl iyi bir oyun yaptığını ümit edebilir
ve sonra başka bir uygulamayı oyun içinde nasıl
gözüktüğünü görmek için çalıştırabilir?
Seviyenin
Görselleştirilmesi
• Tasarımcı kolayca kamerayı oyuncunun
bakışından kolayca hareket ettirebilmelidir.
Böylece seviyedeki bir iş için görmeye ihtiyacı
haritadaki herhangi bir bölgeye kolayca manevra
yapabilir.
• Bu en kolay tasarımcının basit hareket ve yön
tuşlarını kullanarak kamera pozisyonu kontrol
ettiği uçuş(Flight) modu ile yapılabilir. Böylece
her şeyin içinden geçebilir
Seviyenin
Görselleştirilmesi
• Seviye oynarken mükemmel gözükür ama
editördeyken tasarımcılar aydınlatmanın nasıl
gözükeceğini ve yaptığı değişikliklerin son
seviyeyi nasıl etkileyeceğini tahmin etmek
zorundadırlar.
• Her zaman dünyanın oyun içinde görünmesi
dünyayı düzenlemek için en iyi bakışı
vermeyebilir. Bu nedenle seviye editörleri sık sık
oyuncunun görünümüne ek olarak “düzenleme
görünümü”ne ihtiyaç duyarlar.
Seviyenin
Görselleştirilmesi
• 3 boyutlu oyun
dünyalarının
düzenlenmesi için üç
görünüş(tri-view) (X,Y,Z
eksenleri)sağlayan
düzenleme araçları
bulunmaktadır.
• Bu üç kenar görünümü
oyuncunun görünümüne
ek olarak gözükmektedir.
Half Life Ekran Görüntüsü
Seviyenin
Görselleştirilmesi
• Örneğin Quake
motoru düzenleme
aracı olan Worldcraft,
Half-Life seviyelerini
yaratmak için
kullanılmıştır
Quake IV Ekran Görüntüsü
Seviyenin
Görselleştirilmesi
• Bazı durumlarda ayrı
bir editör ve oyuncu
görünümüne ihtiyaç
olmayabilir.
• Örneğin Odyssey,
Legend Of Nemesis
gibi 2 Boyutlu
oyunlarda oyuncu
görünümü seviyeleri
düzenlemek için
mükemmel olarak
yerleştirilmiştir
Odyssey seviye editörü
Büyük Resim
• Bir oyun editörünün tasarımcıya seviyenin
yaratılmasına yardım edecek seviye ekstra bilgi
göstermesi oldukça kullanışlı olabilir.
• Örneğin bir oyunda bir seviyede çeşitli
canavarlar daha önce belirlenen yollarda hareket
ettiğini varsayalım.
• Bu yolların nereye gittiğini açıkça görmek
seviyenin fonksiyonlarını anlamanın anahtarıdır
ve bu yolları düzgün bir biçimde
ayarlanıldığından emin olmayı sağlar
Büyük Resim
• Çoğu seviye editöründe bu tür seviye
işlevsellik bilgisi düzenleme görünümü ile
iletişim içinde olup oyuncu görünümünde
yoktur.
• Bu verinin ikisinde de olması anlamlı kılar.
• Oyuncu görünümünde bu tür bilgilerin
açılıp kapatılabilmesi daha faydalı olur
Büyük Resim
• Centipede 3D üzerinde
çalışırken bir programcı
oyuncuların dik yamaçları
tırmanmalarını
engelleyecek bir kod
eklemiştir.
• Bu kodun hatalarını
düzeltmek için seviye
editörüne manzaradan
oluşan farklı üçgenlerle
ayrılan, açılıp
kapatılabilen çizgilere izin
veren bir işlevsellik
eklemiştir.
Centipede 3D Ekran Görüntüsü
Büyük Resim
• Programcının asıl amacı
burada kodunun
hatalarını düzeltmekti
ama seviye
tasarımcılarına nasıl
yardımcı olduğunu fark
etmemişti.
• Şimdi tasarımcılar
oyuncuların nereye gidip
nereye gidemeyeceğini
açıkça görebilmektedir.
Centipede 3D Ekran Görüntüsü
Büyük Resim
• Dünya üzerindeki nesnelerin sınır
bilgilerinin gösterilmesi çok yardımcı
olabilir ve böylece tasarımcı sınır bilgisinin
oyuncular ve NPC’lerin oyun dünyasında
gezinmesini nasıl etkileyeceğini kolayca
gözlemleyebilir.
• Bunların yapılması buton, kısa yol tuşları
gibi kolayca erişilebilir olmalıdır.
Oyunun İçine Sıçrama
• Seviyelerin gezinme(dolaşma için nasıl
hissedildiğini kolayca bilmek önemlidir.
• Tasarımcılar oyuncuların S” eğrisi biçimde
bir sıçrama yapmalarını ve belli bir
karakterin bir dizi basamağı yumuşak
biçimde çıkıp çıkmayacağını nasıl
hissedileceğini de test etmelidir
Oyunun İçine Sıçrama
• Bungie’s Marathon motoru için Vulcan editörü tasarımcıların seviyeyi
test ederken nasıl bir his oluştuğunu anlamalarına izin verir.
• Görsel modda tasarımcı son(final) oyundaki gibi tasarımcı hareket
edebilir
Oyunun İçine Sıçrama
• Bir sonraki mantıksal adım tasarımcıya oyuncu
görünümünde oynamasına izin vermek olacaktır. Bu
tasarımcının farkı mekanizma işlevlerinin nasıl
çalıştıklarını görmelerini sağlar ve hangi tür düşmanlarla
mücadele edeceğini gösterecektir.
• Tasarımcılar verilen bir durumda seviyenin hızlı biçimde
test etmek ve tekrar oynanmamış duruma getirmek
isterler. Bunu başarmanın en iyi yolu da tasarımcının hızlı
biçimde test moduna girmesine izin vermek ve çabucak
çıkarak seviye editörüne girmesini sağlamaktır.
Dünyayı Düzenlemek
• Bir oyun için en iyi geliştirme araçları tescilli
editörler ve raf programların(3D MAX gibi) özenli
karışımından oluşur.
• İyi bir takım kendi programcıları ile karmaşık
araçlar geliştirmeye gerek kalmaksızın hangisini
ne kadar kullanacağın bilecektir
• Seviye editörünün tasarımcıya bir seviyedeki tüm
oyun mekaniği kritik yönlerini değiştirmeye izin
vermesi önemlidir.
Dünyayı Düzenlemek
• Bazı takımlar 3D Studio MAX ve bağımsız
editörler kullanarak kendi oyun geometrisinin
tümün yaratabiliyorlar.
• Oyun editörü sadece bu programlarda
oluşturulanları almaya(import) ve yerleştirmeye
yaramaktadır.
• Bu tür işlemler oyun geometrisinin çok fazla
bükülmesini sağlamakta ve son ortaya çıkan
oyun iyi gözükmemekte ya da iyi
oynanamamaktadır
Dünyayı Düzenlemek
• Centipede 3D oyununun editörü de malesef
bağımsız varlık düzenleyicisi konumundadır.
Dünyayı Düzenlemek
• Çoğu şanssız sanatçılar sadece karakterleri ya
da diğer nesneleri modellemeleri için tescilli
modelleme araçları kullanmalarına izin verilmiştir.
• Oyun tasarımcılarını ya da sanatçıları her oyun
elemanını seviye editörlerini kullanarak
modellemeye zorlamak büyük hatadır.
• Sanatçılar örneğin ağaçlar, silahlar ya da çöp
kutularını kendi favori model paketinde yapmalı
ve oyuna almalıdır(import)
Senaryo(Yazarlık) Dilleri
ve Nesne Davranışları
• Oyunlar için tasarımcıların
düşman, silah ve diğer oyun
davranışlarını özellikle ihtiyacı
olanları programcı olmadan
dengeleyebileceği,
ayarlayabileceği yer olan
sistemler norm haline gelmeye
başladı.
• Oyunların çoğu göreli olarak
basit, karmaşık varlıkların oyun
motorunda tekrar derlenmesine
gerek kalmadan izin veren
senaryo dillerini içermektedir.
• Örneğin Half Life oyununda
Half Life Ekran Görüntüsü 2
Senaryo(Yazarlık) Dilleri
ve Nesne Davranışları
• Düzgün biçimde tasarlanan senaryo sisteminin
bir büyük faydası diğer sistemler için tamamen
taşınabilir olmasıdır.
• Sağlam bir senaryo sistemi ayrıca C dilinde
programlamadan daha istikrarlı biçimde çalışır.
• Senaryo dilleri senaryo yazarına eksiksiz biçimde
oyunda çarpıtma olasılığını düşürür ve senaryo
bir şeyi kurala aykırı yapıyorsa oyun kilitlenmek
yerine düzgün biçimle çalışan bilgi verici
mesajlar verebilir.
• Çoğu sistemlerde senaryo isteğe bağlı olarak
yüklenmektedir ve oyun daha az bellek kullanır.
Senaryo(Yazarlık) Dilleri
ve Nesne Davranışları
• Çoğu zaman senaryo çalışma zamanında
derlenir ve bunun sonucu olarak C/C++
kodlarından anlamlı biçimde daha yavaştır.
• Geliştirici senaryonun performansını iyileştirmek
gibi bir derdi yoktur ve diğer programlama
dillerinin derleme hızları ile ilgilenmez.
• Senaryo dillerinin en büyük avantajı programcı
olmayanlar tarafından kullanılabilir olmasıdır
Senaryo(Yazarlık) Dilleri
ve Nesne Davranışları
• Senaryonun temel avantajlarından biri de oyun
mekaniğinin dengelenmesini büyük ölçüde
basitleştirmesidir.
• Programcının bir çok kodu değiştirip yeniden
derlemesi yerine tasarımcı senaryodaki bir
değeri değiştirerek oyunu çalıştırabilir.
• Bir kişi bu faydayı bir senaryo sistemine sahip
olmadan başarmak, tasarımcılar davranışsal
parametreleri editörün kendi içinde ayarlamak
isteyebilir.
Senaryo(Yazarlık) Dilleri
ve Nesne Davranışları
Surreal Software’s Riot
Engine’nin seviye editörü
• In Surreal’s seviye
editöründe tasarımcıların
tüm ayarlara ya da verilen
AI, silah ya da oyun
dünyası varlığı için
davranışsal değişkenlere
erişebilir.
• Davranışlar C++
kodlanmıştır.
• Bu tasarımcılara güçlü bir
C++ derleyicisi ve
düzenleyicisi hızında
oyunun değiştirilmesine
olanak verir.
Senaryo(Yazarlık) Dilleri
ve Nesne Davranışları
• Her zaman bu tür editörlere ihtiyacınız yoktur. Çoğu oyun
tasarımcıların oyun mekaniği değişkenlerini metin
dosyalarında tutar ve bunlar herhangi bir metin
editöründe düzenlenebilir ve oyun çalıştırıldığı zaman
okunurlar.
• Seviyelerdeki senaryolaştırılmış olaylar(Scripted
events ) oyun senaryo dillerinin başka yapılmasıdır.
• Oyundaki her seviye ayrı bir senaryoya sahiptir bunlar
değişik davranışları tetiklemek üzere ayarlanırlar.
• Half Life oyunun çok sayıda senaryolaştırılmış olayı
vardır ama bunları ayarlamak için zor bir yöntemi kullanır.
Senaryo(Yazarlık) Dilleri
ve Nesne Davranışları
• Sağlam ve basit senaryo
sistemi oluşturmak
tasarımcıların
kullanacaklarından emin
olmanın en iyi yoldur.
• StarCraft’s Campaign editörü
kullanıcı dostu, oyun mekaniği
tabanlı senaryo sistemi ile iyi
tasarlanmış bir editördür.
• Tetik editör tasarımcıların çok
tanıdık oldukları işaretle ve
tıkla(point and click) yapısı ile
karmaşık senaryolaştırılmış
olayları ayarlar.
Bize Karşı Onlar
• Bir proje için araçların gelişimi programcılarla
tasarımcıları karşı karşıya getirmektedir.
• Oyun programcıları çeşitli nedenlerden dolayı
araçlarla çalışmaya gönülsüzdürler.
• İlk olarak programcıların çoğu veri tabanı,
elektronik tablo programları ve 3D modelleme
paketlerini kullanmak istemedikleri için oyunun
içine girmişleridir.
• Programcılar oyunları ve araçları gerçek
programlama ile yapmak isterler ve oyunun
içindeki kodu araç ile yapmaktan daha önemli
görürler.
Bize Karşı Onlar
• Oyun geliştiricileri kendilerine “Araçlar oyunun
içeriğini daha iyi hale getirmeye izin vermeli
midir?” sorusunu sormalıdırlar.
• Eğer bir tasarımcı kararlı biçimde seviye yaratma
araçları ile savaşırsa, tamamen bir düzeyin
arıtılması için gerekli zamanı ayıramayacaktır.
• İyi tasarımcı iyi bir araç seti ile yapabileceği en iyi
işi yapmak için ilham alacaktır. Çünkü direkt
sonuçları görebilir.
Bize Karşı Onlar
• Programcı önemli ölçüde
güzel seviyelerin
yaratılmasını
kolaylaştıracak iyi
tasarlanmış ve iyi
uygulanmış bir
editöründen sorumludur.
Seviye editörünün eksik
özellikleri için tasarımcı
manzara ya da yapıları
oluşturamayacaktır.
•Blizzard’s WarCraft III World editörü otomatik olarak farklı doku
manzaraları arasında geçişleri tasarımcının yaptıklarını kayıt ederek
ayarlar/düzenler.
Niyetlerin En İyisi
• Programcılar editör için işlevsellik ekleme ile
görevlendirilirler. Bazen eklenen bu özelliklere
hiçbir kimsenin ihtiyacı olmayabilir.
• Bu nedenle editörün hangi özelliğinin eksik
olduğunu doğru biçimde anlamalıdırlar.
• Bir çok yoldan programcı ve tasarımcı farklı
düşünür.
• Bu nedenle tasarımcı ve programcılar editörün
neye ihtiyacı olduğu ve onun nasıl en iyi biçimde
uygulanabileceği hakkında kararlı biçimde
iletişim içinde bulunmalıdır
Niyetlerin En İyisi
• Olası bir teknikte bir programcıyı seviye
editörünün geliştirilmesi ve sürdürülmesinden
birinci derece sorumlu olarak görevlendirmektir.
• Bu sayede bir programcı araç ile çalışmaya
daha çok tanıdık hale gelir ve iyi bir uygulama
olduğu için övünebilir.
• Eğer bir programcı editör çalışmasının çoğunu
yaparsa, tasarımcılar aracın geliştirilmesi için
önerilerini hangi programcıya sunacaklarını
bilirler.
• Bu programcı tasarımcıların neyi sevip neyi
sevmediğine dair daha iyi bir hisse sahiptirler.
Niyetlerin En İyisi
• Diğer kullanışlı bir taktik ise gerçekte programcının tam
olarak yaptığı, basit seviyeyi araç olarak kullanmaktır.
• Bu yolla programcı kolayca editör içinde geliştirme için
alan ayırt edebilir ve tasarımcının haftalar sonra neden
şikâyet ettiğini anlayabilir.
• Programcının yaptığı uygulamanın başına oturup
kullanılmayarak, programcıların editör ile ilgili problemleri
aşırı derece vurguladıkları sonucuna ulaşmaları olasıdır.
• Ama gerçek manada kullanarak editörün eksiklikleri
birkaç saat kodlama ile giderilebilir
Niyetlerin En İyisi
• Belki de tüm bunları halletmenin en iyi çözümü
programcı/tasarımcı kişiler kullanmaktır.
• Bu kişiler zaten editör ile çok zaman
harcamışlardır.
• Programcı/tasarımcılar aracın geliştirilmesi için
doğrudan motive olmuşlardır.
• Bu kişiler araç ile her gün çalışmalı ve
yapabileceklerinin en iyisini yapmalıdırlar.
Tüm Zamanlar İçin Bir
Oyun Editörü
• Bir seviye editörünün aslında hatasız olmaya
ihtiyacı yoktur.
• Bu araçlar için önemli olan tahmin edilebilir
yollarda hatalı olmasıdır.
• Hatalar tasarımcılar onları nasıl tahmin
edeceklerini ve kendilerine nasıl kaçınacaklarını
öğrenebilecekleri desenler içinde olabilirler.
• Bir kere tasarımcı araç ile çalışmayı kabul
ettiğinde ne yapamayacağını ve sorunlu noktalar
etrafında nasıl kolayca çalışabileceğini bilecektir.
Tüm Zamanlar İçin Bir
Oyun Editörü
• Projede kullanılan araçlar yeterince iyiyse,
pazarlama başarılabilir ve parlak bir fikir ile
karşılaşılabilir.
• Bu araçlar yayınlandıktan sonra göreli olarak
hatasız olmaya ihtiyaç duyacaklardır ya da en
sonunda evde kullanıldıkları zamandan daha
istikrarlı olacaktır.
• Seviye editörünün hayranlar için yayınlanma
olasılığı güdü olarak programlama takımını
mümkün olan en iyi aracı yaratmak için teşvik
edecektir.
Tüm Zamanlar İçin Bir
Oyun Editörü
• Sonunda oyun endüstrisinde aksiyom olarak fark
edilmiştir:
• Bir oyun yaratılmasında kullanılan araçlar kadar iyi
olabilir.
• İyi tasarlanmış seviye tasarım aracı büyük bir oyun ile
alelade bir oyun arasında fark yaratabilir.
• İdeal seviye editörü mimarisiyle (oyuncunun
gidebileceği yerler), estetik görünümüyle,(aydınlatma,
doku ve sesler) ve oyun mekaniğiyle(NPC, elemanlar ve
diğer varlıkların yerleşimi, hareketi ve davranışı)
tasarımcının tüm oyun kontrolünü elinde tutabildiği yerdir.
Teşekkürler…
Download