İçindekiler

Kısaca: MKA Engine'de zaman serisi (time series), bir değerin gün, ay ya da yıl gibi dönemlerde alınan ölçümleridir. Oyun hangi değerin ne sıklıkta saklanacağını seçer; oyuncunun arayüzü de bu geçmişi adıyla isteyip grafikle gösterebilir.
Sonradan eklenen özellik notu (26 Ekim 2026): 26 Ekim'de geliştirilen zaman serisi ve adla veri okuma işlevleri bu günlüğe sonradan eklendi. Günlüğün özgün içerik tarihi 18 Ekim 2026 olarak korunuyor.
Sorun ne idi?
Biz, oyuncunun bir kentin nüfusunun ya da hazinenin yıllar içindeki değişimini izleyebilmesini istedik. Yalnız yıl sonuna bakılacaksa her oyun adımındaki değeri saklamak, soruyu yanıtlamak için gerekenden çok nokta ekler.
Bir başka ihtiyaç da ekranda gösterilen sayının nereden geldiğini anlamaktır. Oyuncu toplam geliri gördüğünde, bu değeri oluşturan kural etkilerini de arayüzde açıklayabilmek yararlıdır. Motorun görevi grafiği çizmek değil, oyunun bildirdiği veriyi düzenli ve okunabilir biçimde sunmaktır.
Nasıl çözdük?
Takvime göre tek bir ölçüm noktası
Bunu, her günün ayrıntısını yazmak yerine ayın ilk gününü içeren oyun adımında tek bir not kaydetmek gibi düşünebiliriz. Biz, oyunun hangi değeri izleyeceğini ve arayüzün bu geçmişi nasıl okuyacağını birbirinden ayırdık: her kentin nüfusu ayrı tutulabilir ya da tüm kentler tek toplamda birleştirilebilir. Oyun günlük, aylık veya yıllık ölçüm aralığını ve saklanacak dönem sayısını seçer; süresi dolan eski noktalar silinir.
Örnek, ilgili dönemin ilk gününü içeren oyun adımının bariyerinde, yani o adım için belirlenmiş kayıt noktasında alınır. Haftalık adımlarla ilerleyen bir oyunda ayın ilk günü haftanın ortasına düşerse, ayın tek örneği bu günü içeren oyun adımında kaydedilir; sonraki haftalarda yeni aylık nokta eklenmez.

Değeri adıyla okumak
Bu, etiketli bir dosya dolabına benzer: arayüz istediği değerin adını verir, motor doğru geçmişi getirir. Arayüz bir kentin nüfus geçmişini bu adla isteyebilir; motor noktaları dönem sırasıyla verir, grafiğin görünüşünü ve etiketlerini oyun arayüzü seçer.
Tek bir değer için de aynı fikir geçerlidir. Arayüz bir ülkenin hazine değerini isteyebilir. Toplam gelir gibi bonus ve kesintilerin bir araya geldiği bir değer okunurken motor, toplamın yanında katkı yapan etkileri de verebilir; böylece arayüz sayının nasıl oluştuğunu açıklayabilir.

Ne gördük?
Haftalık bir oyunda, ayın ilk gününü içeren oyun adımının kayıt noktasında tek aylık örnek alınıyor. Oyun ayrı ayrı şehir değerlerini ya da ortak toplamı seçebiliyor; saklama süresi dolan eski noktalar geçmişten çıkarılıyor. Kayıt alınıp oyun yeniden yüklendiğinde mevcut noktalar ve sıradaki dönem aynı kalıyor.
Bir haftalık oyunda günlük ölçüm istenirse kurulum bu seri tanımını reddeder ve kaydın dosya, satır ve sütununu gösterir.
Neden böyle seçtik?
Bu tercihleri tek bir strateji oyununa sabitlemek yerine, biz ölçüm noktalarını ve adla okunabilen değerleri arayüzün kullanacağı biçimde sunuyoruz. Böylece oyun ister nüfus grafiği ister hazine toplamı gösterir; çizim biçimi yine oyuna kalır.
Bedeli ne?
Aylık ölçüm ay içindeki günlük dalgalanmayı göstermez. Aynı oyun süresi için daha sık ölçüm daha çok nokta üretir; bu özellikte süre veya kayıt boyutu ölçümü yapılmadı.
Sırada ne var?
Motor, serinin ölçüm noktalarını ve adla istenen değeri verir. Oyunun arayüzü bunları hangi grafikle ve hangi açıklamayla sunacağını seçer; bu yazı o görsel tasarımı belirlemiyor.
Sık sorulanlar
Haftalık adımlarda aylık ölçüm nasıl alınır?
Ayın ilk gününü içeren oyun adımının kayıt noktasında bir aylık değer kaydedilir. Aynı ay içindeki sonraki haftalarda ikinci nokta eklenmez.
Ay içindeki her değişikliği görebilir miyim?
Aylık ölçüm, ayın ilk gününü içeren oyun adımının kayıt noktasındaki değeri gösterir; ay içindeki her günlük değişimi göstermez. Daha sık geçmiş gerekiyorsa oyun daha kısa bir ölçüm aralığı seçebilir.
Motor grafiği de çizer mi?
Hayır. Motor ölçüm noktalarını ve adla istenen değerleri verir; oyuncuya gösterilecek çizgi, ölçek ve etiketleri oyunun arayüzü seçer.
Oyunu yükleyince eski ölçümler kalır mı?
Evet. Saklanan noktalar ve sıradaki ölçüm dönemi oyun kaydıyla korunur. Saklama süresi dolmuş daha eski noktalar tutulmaz.
Kaynaklar ve bağlantılar
- NIST İstatistik El Kitabı: zaman serisi (yeni sekmede açılır)
- Vikipedi: Time series (İngilizce) (yeni sekmede açılır)
- Verinin bellekte tutulması için Geliştirici Günlüğü #3; olayların etkileri için Geliştirici Günlüğü #6.
Bu günlük hakkında sorularınız ya da önerileriniz varsa iletişim sayfasından yazabilirsiniz. Motorun genel tanıtımı için MKA Engine sayfasına, bütün günlükler için Geliştirici Günlükleri listesine bakabilirsiniz.
Kaynaklar ve ilgili belgeler
Bunlar da ilginizi çekebilir
- Bir strateji oyununun dünya haritası nasıl yapılır?
MKA Engine için gerçek veriden 27.357 konumluk bir 1337 dünya haritası ürettik: arazi, nehirler, boğazlar, nüfus ve konum sınırları nasıl çıkarıldı?
- Oyun motoruna giden yol
MKA Engine'e nasıl başladık: dört oyunu okumak, belirlenimciliği yasa saymak, aşama aşama ölçerek ilerlemek ve şu an neredeyiz.