İçindekiler

Kısaca: Nüfus değişimlerinin hangi gün gerçekleşeceğini ayrı bir test modelinde önceden hesapladık ve sonucu her günü tek tek ilerleten başvuru hesabıyla karşılaştırdık. Belirlenmiş küçük dünya ve üretilmiş başlangıç koşullarında grup durumları ve ilk değişim günleri eşleşti; bu çalışma testteki modeli doğruluyor, MKA Engine’de yayımlanmış bir özellik ya da hız kazancı göstermiyor.
Güncelleme: 8 Kasım 2026. Bu tarihte tamamlanan doğrulama, günlükteki 30 Ekim 2026 içerik tarihinden ayrıdır. Aşağıdaki sonuçlar test modelinin sınırları içindedir.
Bir nüfus grubunun değişeceği günü önceden bulmak neyi sınar?
Strateji oyunları nüfusu çoğu zaman her insanı ayrı kaydetmek yerine, aynı yerde yaşayan veya ortak özellikleri paylaşan gruplar halinde temsil eder. Oyunun kendi kuralları bu grupların büyümesini, başka bir yere taşınmasını ya da başka bir gruba katılmasını belirleyebilir. Bu hesaplar günlük olarak işlediğinde, her gün her grubu kontrol etmek kolay anlaşılır bir başvuru yöntemidir.
Olay günü yaklaşımı başka bir soru sorar: Bir grubun özellikleri ve ona uygulanan oranlar sabit kaldığı sürece, bir sonraki anlamlı değişimin hangi gün geleceğini önceden bulabilir miyiz? Bu soru, bir nüfus kuralının ne olması gerektiğini belirlemez. Yalnızca seçilmiş kuralların oluşturduğu değişimin zamanını hesaplamaya çalışır.
Buradaki çalışma, bu yaklaşımın üretim motoruna eklenmesi değildir. Tasarım belgesi kullanıcı onayı bekleyen bir öneri olarak işaretliydi. Tamamlanan iş, önerinin ayrı bir test modelinde günlük başvuru hesabıyla tutarlı olup olmadığını denetlemekti. Dolayısıyla oyuncunun oyun içinde göreceği yeni bir davranış veya oyunun kullandığı tamamlanmış bir özellik olarak okunmamalı.

Günlük başvuru hesabıyla aynı sonucu nasıl karşılaştırdık?
Bir doğrulama yöntemi, karşılaştıracağı iddiayı açıkça sınamalı. Burada başvuru hesabı, küçük bir oyun dünyasında her günü sırayla işler. Testteki olay günü modeli ise her gruba bir sonraki değişim zamanını hesaplar ve yalnızca zamanı gelen grupları ele alır. İki yolun sonunda aynı dünyaya ulaşıp ulaşmadığını, yalnızca birkaç toplam sayıya bakarak değil, grupların durumlarını karşılaştırarak kontrol ettik.
Karşılaştırma kırk oyun günü boyunca sürdü. Aynı kurgu önce tek iş parçacığıyla, sonra sekiz iş parçacığıyla çalıştırıldı. İş parçacığı, motorun hesabın bir bölümünü yürüten çalışma birimidir; burada bu sayı hız ölçüsü değildir. Her günün sonunda grupların durumları, doğum kayıtları, hareket sayıları ve taşınan kişi toplamları başvuru hesabının sonuçlarıyla karşılaştırıldı. Bu sınama, belirtilen küçük dünya ile süreyi kapsar; bütün dünya büyüklüğündeki bir performans koşusu değildir.
Bu ayrım önemlidir. Sonuçların eşleşmesi, testteki iki yöntemin aynı kurallarla aynı duruma vardığını gösterir. Tek başına daha hızlı olduklarını, bellekte daha az yer kullandıklarını veya çok daha büyük oyunlarda aynı sonucu verdiğini göstermez. Bu nedenle günlük, hız karşılaştırması veya üretime geçiş duyurusu sunmuyor.
Tahmin edilen gün gerçekten ilk değişim günü müydü?
İkinci kontrol daha dar bir iddiaya odaklandı: Bir gruba hesaplanan sonraki olay günü, günlük başvuru hesabının ilk kez değişiklik uyguladığı gün mü? Test, nüfus büyüklüğü, etkin olan süreçler ve o andaki birikmiş değişimler için üretilmiş başlangıç koşulları kurdu. Ardından hesaplanan günü, başvuru hesabının gün gün ilerleyerek bulduğu ilk değişim anıyla karşılaştırdı.
Yalnız ilk olayı karşılaştırmak yeterli olmazdı; ilk değişiklik grubun büyüklüğünü veya kalan birikimi değiştirebilir. Bu yüzden test, yeni durumdan hareketle sonraki olay günlerini de yeniden hesapladı ve art arda gelen olaylarda aynı karşılaştırmayı tekrarladı. Böylece “ilk tarih tesadüfen tuttu” sonucuna dayanmak yerine, her yeni olaydan sonra tahminin yeniden kurulup kurulmadığını da denetledi.

Bu testte başlangıç verileri belirlenmiş ve tekrar üretilebilir biçimde oluşturuldu. Sonuç, yalnızca bu koşulların kapsadığı grup boyutları, süreç seçimleri ve birikim aralıkları için geçerlidir. Gerçek bir oyunun tarihsel nüfus oranlarını, içerik kurallarını veya oyuncunun strateji tercihlerini doğrulamaz.
Sınır koşulları günlük hesabın parçası
Eşik, birikimin değişimi uygulamak için ulaşması gereken düzeydir. Bir yöntem ortalama durumda doğru görünürken bu düzeyin çevresinde bir gün erken veya geç sonuç verebilir. Bu nedenle kontroller, birikimin tam eşikte olmasını, küsuratlı gün bekleyişinin yukarı tamamlanmasını ve eşiğin üzerinde başlayan bir grubun ertesi gün ele alınmasını da kapsadı. Hiçbir etkin süreç değişim üretmiyorsa, grup için yeni bir olay günü bulunmaması gerektiği de ayrı bir davranış olarak sınandı.
Aynı günde birden fazla süreç değişim yapabildiğinde sıra önem kazanır. Örneğin büyüme önce gruba insan ekliyorsa, daha sonra taşınabilecek miktar o günün kurallarına göre sınırlandırılmalıdır. Testler süreç sırasını, taşınan miktarın eldeki grubu aşmamasını, hiç nüfusu olmayan grubun yeni nüfus üretmemesini ve büyük gruplardaki eşik üst sınırlarını kontrol etti. Bunlar test modelinin hesap davranışıdır; oyuncunun göreceği ayrı bir oyun kuralı değildir.
Sınırları sınamak, her olası oyun kuralını doğruladığımız anlamına gelmez. Oranların ve eşiklerin ne zaman değiştiği, bir grubun başka bir yere taşınması ya da oyun içeriğinin her gün yeniden değerlendirilmesi gibi kararlar ayrı kapsamlar gerektirir. Bu çalışma, seçilmiş model davranışlarının başvuru hesabıyla tutarlılığını hedefledi.
Sonuç hangi iddiayı destekliyor?
Tamamlanan doğrulama, testteki olay günü hesabının belirlenmiş koşullarda günlük başvuru hesabıyla aynı grup durumlarına ve değişim günlerine ulaştığını destekliyor. Aynı sonuçların iki iş parçacığı düzeninde karşılaştırılması da bu test kapsamındaki sonuçların çalışma düzenine göre değişmediğini gösteriyor. Bu, tüm MKA Engine simülasyonunun her iş yükünde aynı biçimde davrandığına dair genel bir garanti değildir.
Tam harita ölçümü bu çalışmanın sonucuna dahil değil. Dolayısıyla “günlük hesaplamadan hızlı”, “bellek kullanımını azalttı” ya da “bütün oyun dünyasında eşdeğer” gibi bir iddia kurmuyoruz. Bir hız sonucu için aynı dünya, aynı kurallar ve karşılaştırılabilir iş yüküyle ayrı ölçüm gerekir. Böyle bir ölçüm burada yapılmadı.
Test modeli ile üretim kodunu ayrı tutmak da sonucu doğru okumayı sağlar. Bir tasarımın testlerde başarılı olması, onun kullanıcı onayı aldığı veya oyunda etkin olduğu anlamına gelmez. Onay bekleyen öneri için bu kontrol yalnızca doğruluk sorusuna cevap verdi: seçilen örneklerde, günlük başvuru hesabının bulduğu sonuçlar önceden hesaplanan tarihlerle uyuştu.
Sık sorulanlar
Olay günü hesabı MKA Engine’de oyunda kullanılabiliyor mu?
Hayır. Bu yazı test kapsamındaki ayrı modeli anlatıyor. Tasarım önerisi için üretim özelliği veya oyuncunun kullanabileceği bir davranış duyurmuyor.
Hangi sonuçlar karşılaştırıldı?
Küçük test dünyasında grupların günlük durumları, doğum kayıtları, hareket sayıları, taşınan kişi toplamları ve tahmin edilen ilk değişim günleri başvuru hesabıyla karşılaştırıldı.
Testler hız kazancı gösteriyor mu?
Hayır. Bu doğrulama bir performans ölçümü değildi ve tam dünya ölçümü içermedi. Hız veya bellek tasarrufu iddiası sunmuyoruz.
Oyun kuralları nüfus değişimini bu model mi seçiyor?
Hayır. Oyunun içerik kuralları hangi değişimin uygun olduğunu belirler. Test edilen hesap yalnızca seçilmiş koşullarda değişimin zamanını bulma yaklaşımını karşılaştırır.
Kaynaklar ve bağlantılar
Bu yazıdaki doğrulama kapsamı, MKA Engine’in testlerdeki günlük başvuru hesabı ve olay günü modeli karşılaştırmasından gelir. Tasarım belgesi onay bekleyen öneri olarak işaretlidir. Ayrıntılı kanıt ve sınırlar kaynak notunda kayıtlıdır. Daha fazla bilgi için MKA Engine, geliştirici günlükleri ve iletişim sayfalarına 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.