Geliştirici günlüğü

Geliştirici Günlüğü #6: Olaylar ve değiştiriciler

Strateji oyunlarında olaylar nasıl karar doğurur, değiştiriciler kararların ülke ve bölgelere etkisini nasıl biçimlendirir?

İçindekiler
Taçlı bir hükümdarın önünde açılmış bir ferman ve iki seçenek taşı; arka planda değişikliklerin birikmesini anlatan terazi

Kısaca: Olaylar, strateji oyununda bir koşul oluştuğunda dünyaya yeni bir karar ya da sonuç getirir. Değiştiriciler ise bu sonuçların ülke ve bölgelerin değerlerini nasıl etkilediğini toplama, katsayı ve açık-kapalı kuralı olarak ayırır.

Bir hasat yılı zayıf geçtiğinde oyun bunu yalnızca bir metin olarak göstermekle kalmamalı. Ülke yeni bir karar vermeli, bunun sonucu da ekonomiye yansımalı. Bu akışta olaylar karar anını kurar; değiştiriciler kararın oyun dünyasında ne kadar ve ne kadar süre etkili olacağını düzenler.

Olay ile değiştirici neden ayrı ele alınmalı?

Olayları ve bonusları birbirine karıştırmak oyunun kurallarını takip etmeyi güçleştirir. Bir olayın koşulu, oyuncuya sunulan seçenekler ve seçimin sonucu farklı işlerdir. Benzer biçimde, her bonusu ülkenin değerine kalıcı olarak eklemek, hangi kuralın hangi değişikliği getirdiğini zaman içinde görünmez kılar.

Oyun içeriği, bu ayrımı anlaşılır biçimde ifade edebilmeli. Bir olay ne zaman gündeme gelir, hangi seçenekler açıktır, seçimin sonucu ne olur? Bir bonus başka bonuslarla nasıl bir araya gelir ve sona erdiğinde nasıl kalkar? Bu soruların yanıtları birbirinden bağımsız olmalı.

Olaylar karar anını kurar

Bir olayın koşulu, ilgili durumun oluşup oluşmadığını denetler. Olay takvimdeki akışla gelebilir ya da oyun içindeki başka bir sonuç tarafından başlatılabilir. Bazı olaylar doğrudan bir etki uygular; bazıları oyuncuya seçenek sunar. Seçenek seçildiğinde, ona bağlı sonuçlar uygulanır. Oyuncu seçim süresi içinde yanıt vermezse olayın tanımlı varsayılan seçeneği devreye girer.

Takvimdeki günün bir olayı başlatması, oyuncunun seçenek seçmesi ve haritada bir bölgenin değişmesini gösteren sıralı illüstrasyon

Bu akışa kuraklık örneğiyle bakalım. Kuraklık koşulu oluşunca olay gündeme gelir. Oyuncu tahıl stoklarını korumayı ya da başka bir önlem almayı seçebilir; her seçeneğin ayrı sonucu vardır. Böylece olay, yalnızca ekranda beliren bir uyarı olmaktan çıkar ve oyuncunun kararını oyun dünyasına bağlar.

Aynı başlangıç tohumu ve oyun boyunca verilen aynı komut dizisi, oyunun farklı bilgisayarlarda aynı sonucu üretmesini sağlar. Bu dizi yalnız oyuncu seçimlerinden oluşmaz; yapay zekâ ve oyun sistemleri de sonraki adımlar için komut üretebilir. Olayların bekleme süreleri ve kendi içindeki rastgele seçimleri başka sistemlerin rastgele çekilişlerinden ayrı tutulur.

Değiştiriciler sonuca biçim verir

Değiştirici, bir ülke ya da bölgeye bağlanan ve kural hesaplarına katkıda bulunan bir etkidir. Katkıların üç temel biçimi vardır.

  • Toplanan değerler: Birkaç katkı bir araya gelerek toplamı oluşturur. Örneğin +3 ve +2 katkısı toplamda +5 eder.
  • Katsayı katkıları: Artışlar önce bir araya getirilir, sonra temel değere uygulanır. Örneğin iki ayrı yüzde 10 artış, yüzde 21'lik art arda çarpım değil, toplamda yüzde 20 artış oluşturur.
  • Açık-kapalı kuralları: Bir koşulun etkin olup olmadığını belirtir; açıksa ilgili kural devreye girer, kapalıysa girmez.
Değişikliklerin toplam, dengeleyici katsayı ve açık-kapalı anahtar olarak üç farklı biçimde birikmesini anlatan illüstrasyon

Bir değiştirici geçici tanımlanmışsa bitiş zamanı geldiğinde kendiliğinden kalkar. Kalıcı olanlar ise başka bir oyun kuralı değiştirmediği sürece katkı vermeyi sürdürür. Bu sayede geçici bir hasat desteği, oyuncunun ayrıca her gün geri alması gereken bir değişiklik haline gelmez.

Olaylar ve değiştiriciler farklı görevler üstlenir. Oyun zamanı ilerlediğinde olaylar zamanlayıcılardan sonra, oyun sistemlerinden önce değerlendirilir. Sistemlerin daha sonra yaptığı değişiklikler bir sonraki olay kontrolünde görülür. Böylece oyuncu kararları ile dünyadaki diğer gelişmelerin hangi sırayla etkileştiği tutarlı kalır.

Karar ile oyun etkisi nasıl ayrılıyor?

Bu günlük yeni bir hız ya da bellek ölçümü sunmuyor. Burada doğruladığımız şey davranış ayrımı: olaylar koşula bağlı sonuç veya seçim üretir; değiştiriciler de toplama, katsayı ve açık-kapalı biçimlerinde kural hesaplarına katılır. Geçici değiştiriciler tanımlı bitişlerinde kalkar; aynı başlangıç tohumu ve komut dizisi aynı sonucu verir.

Örneklerdeki +3, +2 ve yüzde 10 değerleri yalnızca toplama biçimini anlatan hesap örnekleridir; bir oyunun ayar değerleri veya ölçüm sonucu değildir.

Oyuncu kararını etkilerden ayırmak

Olayı, seçeneği ve etkisini ayırmak kararın sonucunu anlaşılır kılar. Değişiklikleri de doğrudan bir değerin üzerine yazmak yerine ayrı katkılar halinde tutmak, hangi kuralların o değere katıldığını korur. Geçici katkıların bitişini oyun akışına bağlamak da süre dolduğunda eski değerin elle geri yazılması ihtiyacını ortadan kaldırır.

Toplama ve katsayı arasındaki sınır

Oyun tasarımcısının her olay için koşulu, seçenekleri ve sonuçları tutarlı biçimde tanımlaması gerekir. Katsayı türünün katkıları art arda çarpma yerine toplanır; bunu bilen oyun tasarımcıları değerlerini bu kurala göre seçmelidir. Performans etkisi bu günlükte ölçülmedi.

Sayı hesaplarını hızlandırmaya geçiş

Olayların ve değiştiricilerin nasıl çalıştığını gördük. Sıradaki yazıda MKA Engine’de sayı hesaplarının nasıl hızlandırıldığını, ayrı işlem ölçümlerinin ne gösterdiğini ve geç oyunu temsil eden simülasyonun tam oyun hakkında neyi gösteremediğini anlatacağız.

Sık sorulanlar

Olay her zaman oyuncuya seçenek sunar mı?

Hayır. Bazı olaylar doğrudan sonuç uygular; bazıları oyuncunun kararını bekler.

Oyuncu zamanında seçim yapmazsa ne olur?

Açık seçimin süresi dolduğunda, olay için tanımlanmış varsayılan seçenek uygulanır.

Değiştiriciler birbirini nasıl etkiler?

Tanımlandıkları türe göre katkılar toplanır, katsayıya eklenir ya da bir kuralı açık-kapalı hale getirir.

Geçici değiştiriciyi oyun tasarımcısı kaldırmalı mı?

Hayır. Bitiş zamanı tanımlıysa oyun akışı süresi dolan değiştiriciyi kaldırır.

Kaynaklar

  • MKA Engine betik dili ve mod başvuru belgeleri.
  • MKA Engine belirlenimcilik kılavuzu aynı tohum ve komut dizisinin farklı makinelerde aynı oyunu ürettiğini belirtir; yapay zekâ ve oyun sistemleri de sonraki adımlar için komut üretebilir.
  • Bu günlükte performans ölçümü veya oyunlar arası karşılaştırma yoktur.

Daha fazlası için MKA Engine, geliştirici günlükleri ve iletişim sayfalarına bakabilirsiniz.

Kaynaklar ve ilgili belgeler

Bunlar da ilginizi çekebilir