Bir oturumda biten 4X: kapsamı kısıt seçti
480 altıgende 60 turda biten, tarayıcıda çevrimdışı çalışan zarsız strateji oyunu çekirdeği; Regnarium olarak yayına çıktı.
Şu an ne yapıyor
480 altıgenlik haritada azami 60 turda biten bir 4X eli yürütüyor; kurallar, harita üretimi ve rakip yapay zekâ tek bir saf TypeScript çekirdeğinde, savaş zarsız. Elinde yarım saati olan ve strateji oynamak isteyen herkes tarayıcıdan açabilir.
- Başlangıç
- Eylül 2026 — Eylül 2026
- Labs’tan çıkış
Tür
Teknolojiler
Bu iş ürüne dönüştü:
RegnariumStrateji oyunları benim on binlerce saat gömdüğüm tek tür. Ama o türün alışılmış oturumu bir akşamı yiyor, ve elinde bir akşam olmayan oyuncu için kimse bir şey yapmıyordu.
Tek oturum, kapanan bir el
Denenen şey, 4X’in dört fiilini — keşfet, genişle, üret, alt et — yarım saate sığdırmaktı. Bunun tek gerçek yolu, oyunun kendini bitirmesi: el azami altmış turda kapanıyor, fetih tamamlanmadıysa kazananı puan belirliyor. Süre bir uyarı değil, kuralın parçası.
Kapsam da aynı kısıttan türedi. Tek kişilik bir iş büyük yapımların içerik hacmiyle yarışamaz; yarışmaya çalışırsa hiçbir sistemi bitiremez. O yüzden liste bilinçli olarak kısa tutuldu ve her kaydın tahtada ayırt edilebilir bir işi var — iş görmeyen bir birim eklemek, listeyi uzatıp oyunu zenginleştirmiyor.
Sürpriz yok, pişmanlık var
İkinci karar savaşta. Zar atan bir savaş sistemi, kaybedilen her eli sisteme yıkma imkânı verir; oyuncu kendi kararını sorgulamak yerine talihi suçlar. Burada saldırıdan önce gördüğünüz önizleme hesabın kendisi: aynı sayı, aynı fonksiyon. Ayrı bir “tahmin” fonksiyonu yazmak, önizleme ile sonucun ayrışabileceği tek kapıyı açardı; o kapı hiç açılmadı.
Rastgelelik tamamen yok değil — harita tohumlu bir üreticiden geliyor — ama oynanışın içine sızmıyor. Aynı tohum ve aynı komut dizisi her zaman aynı eli veriyor, rakibin kararları dâhil.
Sunucusuz olmanın getirdiği kayıt biçimi
Oyunun çevrimdışı ve hesapsız çalışması, kaydın nerede duracağını da belirledi. Kayıt tam bir durum kopyası değil: tohum, kurulum ve o ana kadar verilen komutların listesi. Yükleme bu listeyi yeniden oynatarak durumu kuruyor — ve geri alma da aynı mekanizmayı kullanıyor, kaydı bir komut kısaltıp eli baştan oynatıyor. Ayrı bir geri-alma durumu hiç tutulmuyor.
Bunun bir bedeli var ve açıkça ödendi: kurallar değişince eski kayıt yeniden oynatıldığında başka bir el üretiyor, dolayısıyla bir göç yolu yazılamıyor. Kayıt sürümü artıyor ve eski kayıt sessizce atılıyor. Tek oturumluk bir oyunda bu kabul edilebilir bir kayıp; uzun kampanyalı bir oyunda olmazdı.
Kısıtı makineye söyletmek
Mekanikleri ve mimariyi ben tasarladım, kodun büyük kısmını yapay zekâ yazdı; benim işim mimarinin korunmasıydı. Ama bir kuralı gözle korumak ölçeklenmiyor, o yüzden kısıtların çoğu makineye devredildi: kural çekirdeği tarayıcıya, saate ve ağa erişemiyor — bunlar lint kapısında yasaklı — ve kapının gerçekten tuttuğu, kasıtlı olarak hatalı yazılmış dosyaların denetlenmesiyle ayrıca sınanıyor.
Oyun yayında ve oynanabilir durumda; geliştirme sürüyor, açık maddeler kendi kayıtlarında duruyor. Ürün tarafının ayrıntısı portfolyoda.