Age of Wonders 4 geliştirici günlüklerinde bu hafta olay türlerinden ve yeni olay kodlama dilinden bahsediliyor.
Herkese merhaba ve bugün olaylar hakkındaki geliştici günlüğüne hoş geldiniz. Ben Triumph’un hikaye ekibinden Jakob (@Eomolch) ve meslektaşım Michelle’in (@MichelleTriumph) oyunun evrenine dair bilgi ve hikaye odaklı günlüğüyle iki hafta önce bıraktığı yerden devam edeceğim.
Giriş
Daha geniş anlamda hikaye olayları orijinal Age of Wonders’tan bu yana Age of Wonders serisinin bir parçası olmuştur. AoW 1-3’te, bazı olay örgüsünü belirleyen seçimler içeren ve genellikle oyunun kampanya moduyla sınırlı olan diyalog tabanlı bir mesaj sistemi olarak karşımıza çıkıyorlardı. Ardından Planetfall’da Anomalous Sites rastgele oluşturulan haritalarla farklı hikaye ve sonuçlara sahip Dungeon Crawling seçeneklerini ortaya çıkardı. Şimdi, Age of Wonders 4 için, hikaye içeriğimizi tek bir çerçevede birleştiren bir sistem geliştirdik ve hem Hikaye moduna hem de normal moda(sandbox) hikaye olayları getirdik.
- İçerik düzeyinde, tek bir hikaye olayı oyuncuya sunulan küçük bir hikayedir, ardından eldeki duruma tepki vermek için farklı seçenekler sunulur ve her seçenek (genellikle) oynayış açısından farklı bir sonuca varır.
- Sistem düzeyinde ise, hikaye olaylarının akışı, oyuncunun durumunu analiz ederek, oyuncunun eylemlerini ve seçimlerini hesaba katarak ve her hikaye olayı oyuncunun kişisel hikayesinin bir parçası haline getirilerek, oyuncuya ve oyuncuya özel olarak tasarlanır.
- Son olarak, oynanış düzeyinde, olaylar normalde birbiriyle etkileşime girmeyen oyun sistemlerini birbirine bağlayan değiş tokuşlar ve bir oyuncuya temel stratejilerinin dışında araçlar verebilecek benzersiz ödüller aracılığıyla oyuncuya anlamlı seçenekler sunacaktır. Ahlaki bir ikilem ekonomik bir ikilemle çeliştiğinde, bu dördüncü Age of Wonders’da birçok iyiniyetli Godir kötülük yoluna ayartıldı…
Olay Formatı
Konu olaylarımızın sunumuna geldiğinde, sanat ve kullanıcı arayüzü ekibimiz bizi olay oyuncularımızdan birinin veya bazen birden fazlasının 3D olarak işlendiği güzel görüntülerle şereflendirdi. Bu sahneler dinamik olup ilgili konumlara, yapılara veya gruplara göre değişecektir. Ortam sesleri, zaman zaman hava efektleri ve müzik parçaları oyuncuyu zengin, yaşayan bir oyun dünyasına davet ediyor.
Bizimki gibi bir strateji oyununda şeffaflık ve oyuncuyu bilgilendirmek büyük önem taşıyor. Bu nedenle olay seçeneklerimiz, bir düğmeye tıklandığında gerçekleşecek tüm oyun efektlerinin tam bir bilgi kutusunu gösterir. Bunu, oyun öğeleri, kavramlar ve oyun evreni hakkına bilgi için bilgi kutusu içinde tamamlayarak, oyuncuların olaylarımızda iyi bilgiye sahip kararlar vermelerini sağlıyoruz.
Oyuncu şehri Centerspike’ın bilgi kutusuyla incelenmesiOlay Türleri ve Koşulları
Olaylarımızın birçok farklı türü ve çeşidi vardır ve farklı şekillerde sınıflandırılabilirler. Bir oyuncu açısından bunları sıralamanın en basit yolu aşağıda belirtilen üç gruba ayırmaktır:
Keşif Olayları
Bunların hepsi, bilinmeyen bir düşmanın görünür hale gelmesi veya haritada başka bir orduyla karşılaşılması gibi, oyuncu ordusunun hareketine doğrudan yanıt olarak gerçekleşecek olaylardır. Keşif yapmayı teşvik ederler ve haritada bulduğunuz konumlara, gruplara ve ordulara hikayesel bir anlam kazandırırlar.
Dawnspire muhafızlarının biraz dinlenmeye ihtiyacı var.Yukarıdaki örnek, kaynak nodelarını koruyan bir Free City ordusu ile karşılaşmadır. Oyuncunun binayı barışçıl bir şekilde ele geçirmesini sağlarken aynı zamanda özel etkileşimlere (burada, bazı muhafızları işe almak) veya sürpriz bir saldırıya olanak tanır.
Bu, oyunda sahip olduğumuz keşif olaylarının yalnızca bir türüdür, diğerleri arasında ordu teslimleri, Free City diplomatik buluşma olayları ve bir Ancient Wonder’a girerken Dungeon keşif olaylarımız (daha sonra kendi geliştirici günlüğünde incelenecek) bulunmaktadır.
Anlık Olaylar
Bu olaylar her zaman oyuncunun turunun başında gerçekleşir. Konuları, katılımcıları ve seçenekleri bakımından çeşitlilik gösterirler ve oyuncu için bir sürpriz hissi yaratırlar, ancak metin bir hikaye sunar ve genellikle belirli bir olayın neden gerçekleştiğine dair bazı ipuçları bırakır.
Oyuncunun alabileceği olaylar, olay havuzundaki her bir olayı oyuncunun durumunun yanı sıra haritanın ve mevcut ulusların genel durumunu da yansıtan özel bir dizi koşul ve ayarla beraber sunar. Bunlar, oyuncuya kontrollü ve adil bir şekilde düzenli olay akışı sağlayan hikaye akıcılığı sistemi olarak adlandırdığımız sistem tarafından yönetilir. Hikaye olaylarımız yapay zeka oyuncularına verildiği ve çok oyunculu modda da aktif olduğu için adil ve dengeli olması büyük önem taşıyor. Doğal olarak, bunun gibi doğası gereği rastgele bir sistemde, belirli bir oyuncu için şanslı veya şanssız olay seçimleriyle bazı rastgelelikler yine de gerçekleşecektir. Ancak sistemin Age of Wonders 4 olan rekabetçi strateji oyununa iyi bir şekilde entegre olmasını sağlamak için olay ödülü ve maliyet dengeleme ve ölçeklendirmenin yanı sıra anlatı olaylarının kapsamına ve sıklığına çok dikkat ettik.
Bu olay, güçlü bir askeri odağa sahip bir şehir için gerçekleşebilir.Görevler
Şimdiye kadar tartıştığımız iki olay türünün hepsi çözümleri ve sonuçları bakımından anlıktı (bu sonuçlardan bazıları daha uzun süreli bir etkiye sahip olsa bile). Üçüncü tür olan görevler oyuncuya belirli bir süre içinde tamamlaması gereken bir görev verir ve görevi başlatan ve bitiren bir olay ile aynı formatta sunulur. Tıpkı normal olaylar gibi, görevler de oyuncuya Free Cities, kahramanlar veya oyuncunun kendi nüfusu (şehirler) dahil olmak üzere farklı kaynak türlerinden teklif edilebilir. Ana oyunda, standart “bu orduyu yen” görevlerinden bir Free City ile olan durumu iyileştirmek için diplomatik görevlere kadar değişen 7 farklı görev hedefimiz var. (Hikaye görevlerimizde daha fazla türde hedefle karşılaşılabilir)
Bir kahraman, akrabasının kırık silahının yeniden onarılmasını ister.Yukarıdaki örnekte oyuncudan bir Magic Material (Büyülü Malzeme) elde etmesi istenmektedir; bunlar harita üzerinde oyuncunun kendine özgü imparatorluk güçlendirmeleri için şehirlerine bağlayabileceği özel kaynak node’larıdır. Görev, tamamlandığında oyuncuya verilecek ödüllerin zaten haberini vermektedir. Ancak spoiler vererek hikayeyi etkilememek için tam olarak hangi ödüllerin verileceği açıklanmıyor. “Gizemli Bonus”, oyuncunun görevin tamamlanma olayında seçeceği ödüldür.
Görev tamamlamaları “kendi ödülünü seç” olayları olarak ayarlanmıştır.Rol Yapma Olayı Seçenekleri
Rol yapma Age of Wonders 4’ün önemli bir parçasıdır. Ulus yaratma, hükümdar özelleştirme ile başlayan ve oyun içinde kitap seçimleri ve imparatorluk kurma ile devam eden bu süreç, farklı karakter türlerine uyacak olay seçimleriyle de tamamlanmaktadır.
Bunu desteklemek için olaylarımızda farklı türde tercih seçeneklerimiz var. Bir yandan oyuncunun hangi safta yer alacağını belirleyen iyi ve kötü eylemler var. Bunların en uç olanları yalnızca belirli bir iyi veya kötü yönelim seviyesindeyseniz kullanılabilir olacak ve aksi takdirde gizlenecektir.
Öte yandan, oyuncu hükümdarın bir sorunu çözmek için büyülü yeteneklerini kullanmaya çalıştığı Affinity Check’lerimiz var. Bunlar zorluk seviyesinin oyuncunun statlarıyla kıyaslandığı rol yapma türlerine benzerler, ancak bizim oyunumuzda bunun yerine oyuncu imparatorluğunun Affinity puanları kullanılır.
- Affinity kontrolleri, oyuncu imparatorluğu yeterince yüksek eşleşen bir affinity’e sahip olana kadar gizlidir (yani kontrolün zorluk seviyesi kadar yüksek olmalıdır)
- Bunlar, olaylarımızda rastgele bir şansa sahip olan tek seçeneklerdir. Yine de bilgi kutusunda her olası olasılığın sonuçlarını önceden görebilirsiniz.
- Affinity puanı zorluk seviyesine eşit olduğunda başarı şansı %50’dir
- Her bir affinity puanı başarı şansını %10 artıracaktır (evet, bu garantili sonucun mümkün olduğu anlamına gelir)
- 50’den daha düşük bir başarı şansı mümkün değildir (bu durumda seçenek hala gizlidir)
- Oyun efektlerinin yanında, bilgi kutusunda her sonuçta ne olacağına dair daha fazla içerik sağlayan kısa açıklama metinleri bulunmaktadır.
- Affinity kontrolleri eşleşen bir düğme simgesiyle işaretlenmiştir, böylece kilitleri açıldığında kolayca fark edilebilirler.
- Bir Affinity kontrolünün başarısız olması her zaman oyuncunun ilgili affinity puanlarını geçici olarak kaybetmesine neden olur.
Kurbağalarla müzakereler. Uygun panzehiri bulma zamanı…Affinity kontrollerini içermeyen başka affinity ile ilgili bazı seçenekler de mevcuttur, ancak bunları oyunun kendi içinde keşfedilmeleri için size bırakıyoruz.
Dinamik Metin
Bu geliştirici günlüğünün dikkatli okuyucuları, metin ve bilgi kutuları içindeki birçok altı çizili yazı parçacığını fark etmişlerdir.
Yukarıda görülebileceği gibi, altı çizili kelimeler bir bilgi kutusunun mevcut olduğunu gösterir, ancak aynı zamanda olaylarımızda bulunan dinamik metin miktarı hakkında da bir ipucu verir. Dinamik, tam metnin olayı oyuncuya gösterildiğinde olay örneğinin özel koşullarına bağlı olduğu anlamına gelir. Yukarıdaki ekran görüntüsünde bu Free City adı ve Lord veya Lady’sinin adıdır, ancak oyun varlıklarından türetilen başka nitelikler de olabilir: unvanlar, birim adları, kahraman öğeleri, dünya haritası yapıları, vb… Oyunumuzun usulüne uygun doğasına ayak uydurmak ve aynı ana olaya farklı durumlarda çeşitlilik kazandırarak tekrar oynanabilirliği teşvik etmek için gereklidir. Parçalanmış Chaos Orb ile ilgili görevi hatırlıyor musunuz? Başka bir oyunda bunun yerine bir Kılıç ve bir diğerinde de ünlü bir Balta ile ilgili olabilir.
Normalde dinamik metin eklemeleri, eklenen kelimelerin gramatik cinsiyeti farklı metin versiyonları gerektirdiğinde cinsiyetli metinlerden başlayarak her türlü dilbilimsel soruna neden olur – zamirler, sıfatlar, artikeller, hepsi eklediğimiz şeyle değişebilir ve metinler başka dillere çevrildiğinde (veya yerelleştirildiğinde) bu daha da artar. Çoğu zaman bu, yazının birçok ek kısıtlamaya uyması gerektiği, çevirilerin kalitesinin düşeceği veya bu kadar çok çeşitlendirilmiş metin girişinin eklenmesinin mümkün olmadığı (dilbilgisini bozmadan) anlamına gelir.
Ancak Age of Wonders 4 için Lingoona Grammar modülünün sunduğu hizmetten faydalanarak onu kendi veri tabanımıza entegre ettik. Bu, metin içine değişken eklemelerini desteklemek, metnimizi ayrıştırmak ve gerektiğinde sözdizimini kullandığımız ve tüm metin eklemelerine uygun şekilde açıklama eklediğimiz sürece doğru dilbilgisine uygun hale getirmek için tasarlanmış bir dilbilim motorudur. Bu durumun ne anlama geldiğine dair kısa bir örnek olarak bir olaydan alınan aşağıdaki cümleye bakalım:
İki eklenmiş metin girişi (bir kahraman ve lider unvanı) ve kahramana birkaç zamir referansı içerir. Bu, kaynak metinde şöyle görünür:
Görülebileceği gibi EventHero ve PlayerLeader’ın her ikisi de bu olayda değişken olarak depolanmaktadır. Kendi özel kodlamamız ve lingoona kodlama sözdiziminin bir karışımını kullanarak bu kaynak metnin yukarıda görülebilen şekilde çözümlenmesini sağlar. (Burada görünmeyen şey, buraya eklenebilecek kahraman adlarının ve lider unvanlarının hepsinin de stringine ek açıklamalar eklenmiş olmasıdır.)
Olay Kodlama
Biraz daha teknik bilgi verdikten sonra, olaylarımızın nasıl oluşturulduğuna kısaca bir göz atabiliriz. Genel olarak, bunlar sanat varlığı olmayan içerik ve oyunun sistem ayarları için birincil geliştirici aracımız olan Resource Editor’ümüz aracılığıyla yönetilir. Olaylarını normal içerik türlerinden farklı kılan şey, kodlarla yoğun bir şekilde iç içe geçmiş olmalarıdır. Bunun için Planetfall’daki Trigger Sistemini alıp bir üst seviyeye taşıdık.
Trigger Sistemi, görsel bir arayüzle birlikte gelir ve oyunla ve olayı yaşayan bir oyuncunun durumunu okumak ve etkileşimde bulunmak için oyun programcılarımız tarafından sağlanan yapı taşlarını birleştirmemize ve örneklememize olanak tanıyan modüler bir yüksek seviye kodlama dilidir. Kodlama blokları temelde dört türe ayrılır:
Trigger Sistemi oyun programcılarımız tarafından sağlanan bir modüler yüksek seviye kodlama dilidir. Bu oyunla ve olayı yaşayan oyuncuyla etkileşimde bulunmamıza olanak sağlar. Kodblokları temelde dört türe ayrılır:
- Olaylar
- Bunlar, oyunun kodlarını değerlendiren trigger anlarıdır.
- Hazırlıklar
- Bunlar, kodun içeriği olarak oluşturulan ve depolanan değişkenlerdir.
- (Bunlar ayrıca değişken içeriğini daha fazla tanımlayan koşullar da içerebilir).
- Koşullar
- Kodun geçerli olması ve eylemlerini yürütmesi için yerine getirilmesi gereken koşullardır.
- Eylemler
- Kodun oyunda veya oyuncu kullanıcı deneyiminde yaptığı değişiklikler.
Olay ilişkin en üst düzeyde örnek bir kod. Olayın ayrı ayrı düğme seçeneklerine daha fazla eylem ve koşul eklenmiştir.
Değişken oluşturma kodunun ilk katmanı – tüm girdi alanları kodun daha derin katmanlarında tanımlanır.Trigger sistemi, temel mantıksal ve matematiksel işlevler, if/then ifadeleri ve döngüler gibi basit bir programlama dilinden bekleyeceğiniz pek çok güzelliği içeren çok güçlü bir araçtır. Ayrıca, başka kodlarda (veya Makrolarda) adlandırılabilen ve olay içeriğimizi tutarlı ve sürdürülebilir tutmak için hayati bir nimet olan Makroların oluşturulmasına da izin verir.
Topluluğumuz için olay düzenimizin belki de en büyük avantajı (ve bu geliştirici günlüğünde daha uygulama odaklı bir sapma yapmamızın nedenlerinden biri), Resource Editor içinde yer aldıkları için oyun çıktığında tamamen modlanabilir olacak olmalarıdır. Bu, geliştiricilerimizin yarattığı olay içeriğinden tamamen sapan yeni olayları da modlamanın mümkün olacağı anlamına geliyor. Bunun oldukça zorlu bir öğrenme süreci gerektireceği konusunda uyarmak isterim, ancak Age of Wonders modlama topluluğunun bu gibi zorluklardan korkmayan, kendini işine adamış ve yetenekli üyelere sahip olduğunu tecrübelerimle biliyorum.
Sonuç
Bu geliştirici günlüğünde okuduklarımız üzerinde biraz düşünmek gerekirse, geliştirici bakış açısıyla, olayı çerçevesi ve bunları çevreleyen sistemlerle, oyunun devam eden gelişimi ve desteği için sahip olduğumuz ve olacağımız herhangi bir hikaye tutkusunu desteklemek için yeterli sağlamlık ve esnekliğe sahip güçlü bir hikaye aracı yarattığımız söylenebilir.
Oyuncu açısından bakıldığında, tasarladığımız olaylar kişisel hikayelere ve bir Age of Wonders oyununda daha önce hiç olmadığı kadar elle tutulur ve oyuncunun eylemine dayalı oyun dünyasına kendini kaptırmasına yol açacak. Önceki Age of Wonders’ın kendine özgü Kampanya hikayesi konusunda üstün olduğu yerlerde, bu olaylar önceki kampanya oyuncularına sadece hikaye modunda değil, oyunumuzun tüm modlarında ilgi çekici bir deneyim sunmak için tasarlandı.
Geliştirici günlüğümü okuduğunuz için hepinize teşekkür ederim 🙂
Saygılarımla, Eomolch
Gelecek hafta yeni bir geliştirici günlüğü için bizi izlemeye devam edin ve oyunu İstek Listesine eklemeyi unutmayın.