Game Design Theory and Practice Chapter 21: Designing Design Tools Mustafa SIRAKAYA BTÖ Eğitsel Bilgisayar Oyunları Tasarımı
Chapter 21: Designing Design Tools 2 Konu Başlıkları Giriş Arzulanan İşlevsellik Seviyenin Zihinde Canlandırılması Büyük Resim Oyunun İçine Dalış Dünyanın Düzenlenmesi Script Dilleri ve Nesne Hareketleri Onlara Karşı Biz En İyi Planlar Tüm Zamanlar İçin Bir Oyun Editörü
Chapter 21: Designing Design Tools 3 Giriş İyi bir oyun ortaya çıkarabilmek için iyi bir içeriğe ihtiyaç vardır. İyi içeriği hazırlayabilmek içinde tasarım ekibi iyi tasarlanmış, güçlü tasarım araçlarına gereksinim duyar. Bu yüzden iyi oyun tasarımı için iyi oyun araçlarının tasarlanması gerekir. Geliştirme ortamları programcıların kodlarını derledikleri, grafikerlerin oyunun sanatsal kısmını oluşturmak için kullandıkları ortamlardır. En çok kullanılan oyun oluşturma aracı seviye editörüdür.
Giriş Tabiki her oyun seviyelerden oluşmaz. 1980’lerin başında hazırlanan Missile Command yada Space Invaders gibi oyunlar seviyelerden oluşmuyorlardı. Aynı dönemde hazırlanan Defender yada Tempest gibi seviyelerden oluşan oyunlar içinde gelişmiş seviye editörlerine ihtiyaç duyulmamıştı. Chapter 21: Designing Design Tools 4 Missile Command Space Invaders
Giriş Günümüz oyunlarıysa gameplay’in şekil ve formu üzerinde büyük etkiye sahip olan gelişmiş seviyelerden oluşuyor. Chapter 21: Designing Design Tools 5 Günümüz oyunlarının seviye editörleri
Arzulanan İşlevsellik Bir seviye editörü ne tür işlevsellikleri içermelidir? Önemli işlemlerin tümüne kısayollar içermelidir. Tasarımcıların ihtiyaç duydukları anda ayarlanabilen bir çok özelliği açıp kapayabilmelerine izin vermelidir. Tasarımcılar aracı kilitlemeksizin saatlerce kullanabilmelidirler. Chapter 21: Designing Design Tools 6
Seviyenin Zihinde Canlandırılması Bir dünya oluşturma aracının en önemli özelliği tasarımcıya yaptığı değişiklikleri eş-zamanlı olarak görme imkanı sunmasıdır. Tasarımcı oyuncu görünümünde kamera açısını kolayca hareket ettirebilmeli ki, harita üzerinde çalışmak istediği böüme hızlıca ulaşabilsin. Bunun için kamera açısının kolay hareketlerle değiştirilebildiği ve oyun dünyasındaki nesnelerin tasarımcıyı engellemediği basit bir uçuş modu hazırlanabilir. Chapter 21: Designing Design Tools 7
Seviyenin Zihinde Canlandırılması Tasarımcının editör ekranında yapacağı her değişiklik oyunun daha kötü görünmesine sebep olabilir. Bu nedenle tasarımcı yaptığı değişikliklerin oyun ekranında nasıl görüneceğini tahmin edebilmelidir. Tasarımcılar oyundaki görüntüyü gösteren görünüme ek olarak düzenleme görünümüne de ihtiyaç duyarlar. Böylece oyun ortamını farklı açılardan görerek düzenleme yapabilirler. Chapter 21: Designing Design Tools 8
Seviyenin Zihinde Canlandırılması Bazı durumlarda ise ayrı ayrı editör ve oyuncu görünümüne ihtiyaç olmayabilir. Örneğin 2 boyutlu Odyssey: The Legend of Nemesis oyununda oyuncu görünümü seviyelerin oluşturulması için mükemmel bir yerleşime sahiptir. Chapter 21: Designing Design Tools 9
Büyük Resim Seviye editörünün önemli bir özelliği olarak tasarımcıya oyuncunun ekranını göstermesi gerektiği belirtilmişti. Ancak bu görünüm oyuncunun görünümünün aynısı olmak yerine tasarımcıya yardımcı olabilecek bazı bilgiler içerirse daha kullanışlı olabilir. Örneğin daha önce belirlenen yollarda hareket eden yaratıkların olduğu bir oyun düşünelim. Bu yolların nereye gittiğini gösteren izler tasarımcının işine yarayabilir. Chapter 21: Designing Design Tools 10
Büyük Resim Çoğu seviye editöründe bu bilgiler tasarım görünümünde varken oyuncu görünümünde yoktur. Bu bilgilerin iki görünümde de yer alması daha anlamlıdır. Tabiki oyuncu ekranı bu bilgilerle dolup taşmamalıdır. Editör tasarımcıya istediği özelliği açıp kapama imkanı sağlamalıdır. Chapter 21: Designing Design Tools 11
Büyük Resim Yolların görünmesi gibi tasarımcının oyundaki tetikleyicileri ve görünmeyen objelerin görünürlüğünü açıp kapatabilmesi de yararlı olabilir. Tasarımcının oyuncuların oyundaki hareket vb. sınırlarını görebilmesi işini ayrıca kolaylaştıracaktır. Tüm bunların kısayol tuşlarıyla kontrol edilebilmesi tasarımcının ihtiyaç duyduğu anda kullanabilmesini sağlar. Chapter 21: Designing Design Tools 12
Oyunun İçine Dalış Oyuncunun karakteri yönlendirdiği oyunlarda, tasarımcının oyuncuların göreceği dünyayı görmesi, oyundaki hareket hissini anlamasını sağlar. Böylece oyuncuların düzgünce zıplayıp zıplayamayacaklarını yada merdivenlerden düzgünce çıkıp çıkamayacaklarını test edebilir. Chapter 21: Designing Design Tools 13
Oyunun İçine Dalış Vulcan editörü tasarımcıya seviyeyi inşa ederken bir oyuncu gibi hareket hissini test etmesine olanak sağlayan bir yapıdaydı. Bu editörün eksiğiyse, tasarımcıya oyunun dokusu ve ışık yerleşimi dışında düzenleme imkanı vermemesiydi. Chapter 21: Designing Design Tools 14 Günümüzde ise her editörün bu görünümle eş-zamanlı olarak diğer görünümleri kısayol tuşlarıyla açabilmesi beklenmektedir.
Oyunun İçine Dalış Bir sonraki adım tasarımcıya oyuncu görünümünde oynamasına izin vermek olacaktır. Tasarımcılar editörde yaptıkları değişiklikleri hızlıca test etmek ve hemen ardından objelerin oynanmamış halde kaldığı tasarım ekranına dönmek isterler. Eğer geçiş süresi uzun olursa tasarımcılar seviyede yaptıkları her değişikliği test etmek istemezler. Chapter 21: Designing Design Tools 15
Oyunun İçine Dalış Oyun testi sadece hataların bulunup düzeltilmesini değil aynı zamanda oyuncuların nasıl cezbedileceğinin cevabını da sağlar. Test aşaması oyun mümkün olanın en iyisi olana kadar tekrar eden bir süreç olduğu için editörün bu konuda tasarımcıya yardımcı olması beklenir. Mesela her seferinde baştan başlamak yerine tasarımcının test etmek istediği yerden başlaması büyük kolaylık sağlar. Chapter 21: Designing Design Tools 16
Dünyanın Düzenlenmesi Oyun dünyasının düzenlenmesinde seviye editörünün tüm ihtiyaçları karşılaması beklenir. Bazı gruplar 3 boyutlu modellerin hazırlanmasında 3D MAX gibi paket programlar kullanıp, sadece hazırlanan modellerin oyun ortamına aktarılmasını sağlayan seviye editörleri geliştirmişlerdir. 3D MAX gibi programlar daha kaliteli modelleme imkanı sunsada, kullanılan editörün modeller üzerinde değişiklik yapamaması ciddi zaman kayıplarına yol açacaktır. Chapter 21: Designing Design Tools 17
Script Dilleri ve Nesne Hareketleri Oyunlarda tasarımcının ihtiyaç duyduğu değişiklikleri (silah, düşman, vb.) programcıya ihtiyaç duymadan gerçekleştirebilmesi bir standart haline gelmişe benziyor. Şimdilerde bir çok oyun kolay olmasına rağmen oyun motorunda tekrar derlenmesine gerek olmadan kompleks nesneler oluşturabilen script dilleri içeriyor. Script dillerinin diğer büyük bir faydası da diğer sistemlere taşınabilir olmasıdır. Chapter 21: Designing Design Tools 18
Script Dilleri ve Nesne Hareketleri Çoğu sistemlerde kodlar isteğe bağlı olarak çalıştığı için, gerekmediğinde yüklenmez, daha az bellek kullanımı sağlar. C programlama diline göre daha sade yapıda olması sayesinde tasarımcılar kolayca öğrenip uygulama yapmaya başlayabilirler. Script kullanımının en büyük avantajlarından biri de gameplay’in dengelenmesini basitleştirmesidir. Programcı bir çok kodu yazdıktan sonra derlenmesi için beklemek zorunda kalırken, tasarımcı script değişkenleri üzerinde oynayarak derlenmesini beklemeden oyunu çalıştırabilir. Chapter 21: Designing Design Tools 19
Onlara Karşı Biz Maalesef bir proje için araç geliştirme süreci programcılarla tasarımcıları karşı karşıya getiriyor. Oyun programcıları çeşitli nedenlerden dolayı araçlar üzerinde çalışmada isteksizdirler. Çünkü oyun üzerinde çalışmak isterler. Araç programcısı tasarımcının işini kolaylaştıracak bir araç geliştirdiğinde kendisiyle gurur duyar. Tasarımcıda programcının hazırladığı araçlar olmaksızın kaliteli bir oyun yapamayacağının bilincinde olup, çabalarından dolayı programcıyı takdir etmelidir. Chapter 21: Designing Design Tools 20
En İyi Planlar Bazen programcılar editöre işlevselik kazandıracak eklemeler için görevlendirildiğinde, oyun seviyeleri ve oyun seviye editörüyle pek fazla vakit geçirmedikleri için sonuçta kimsenin işine yaramayacak bir özellik ekleyebilirler. Programcı ve tasarımcılar bir çok açıdan farklı düşünürler. Bu yüzden editörün ihtiyac duyduğu özelliklerin belirlenmesinde, tasarımcı ve programcıların tam bir iletişim halinde olması son derece önemlidir. Chapter 21: Designing Design Tools 21
En İyi Planlar İyi bir araç geliştirmek için zamanı olan herhangi biri yerine, seviye editörünün gelişimi ve uygulanmasından bir programcıyı sorumlu tutmak iyi bir taktik olabilir. Böylece programcı; araç geliştirmede uzmanlaşır, tasarımcılar araç geliştirme hakkındaki fikirlerini hangi programcıya ileteceklerini bilir, programcı da tasarımcıların neyi sevip sevmediği hakkında tecrübe kazanır. Belki de en iyi çözüm tasarımcı/programcı kişilerle çalışmak olacaktır. Chapter 21: Designing Design Tools 22
Tüm Zamanlar İçin Bir Oyun Editörü Eğer bir projede kullanılan araçlar yeterince iyiyse, bir oyunun seviye editörünü oyuncuların kullanımına sunmak iyi bir yol olabilir. Çünkü bu sayede oyun meraklıları oyun içerisinde bazı değişiklikler yapacak ve oyundan uzun süre sıkılmayacaklardır. Hazırladıkları araçları binlerce oyun severin kullanacağı ihtimali programcıları daha iyi araçlar hazırlama konusunda motive edecektir. Chapter 21: Designing Design Tools 23