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…