Gerçek oyun motorunu tarayıcıda çalıştırmak
ZUPI demosunun neden bir yeniden yapım olmadığı ve bunun mümkün olması için kod tabanında neyin doğru olması gerektiği.
Teknik not · · 5 dk okuma
Güncelleme, 3 Ekim 2026: burada anlatılan demo artık yok ve sebebi yazının kendisinden daha değerli. Aşağıdaki her şey gerçek bir mühendislik işinin doğru bir anlatımı — ZUPI’nin kurallar modülü gerçekten değiştirilmeden içeri alınmıştı, karması gerçekten her derlemede denetleniyordu ve tahta gerçekten uygulamanın ürettiği hâliyle 1. bölümdü. Sonra uygulama değişti. ZUPI: Pulse Shield 30 Eylül 2026’da yayına girdi ve farklı bir oyun; yani burada övülen modül önceki oyunun modülü oldu. İddiayı koruyan denetim yalnızca kopyanın depoyla eşleştiğini kanıtlayabilirdi, deponun hâlâ insanların indirdiği şey olduğunu değil. /try/zupi artık dürüst bir yeniden yapım. Aşağıdaki sav Glow Garden ve Veyra için hâlâ geçerli; eksik olan şey, içeri alınan bir kopyanın kaynağının yalnızca yeniden karmalanması değil, yeniden kimliklendirilmesi gerektiğiydi.
Her ürün stüdyosu sitesi aynı problemle karşılaşır: bir ekran görüntüsü size bir şeyin nasıl hissettirdiğini gösteremez ve bir oyun büyük ölçüde o histir. Alışıldık cevap bir yeniden yapımdır — ürünü yeterince yaklaşık taklit eden, basitleştirilmiş bir tarayıcı sürümü. Bunun mevcut en kötü seçenek olduğunu düşünüyoruz. Gerçek mühendislik maliyeti var, ikisinden biri değişir değişmez uygulamadan sapıyor ve ziyaretçinin oynadığı şey, kuruluşu gereği, o şey değil.
ZUPI bu seçimden tamamen kaçmamızı sağladı ve bunun pazarlamayla hiçbir ilgisi olmayan sebepleri vardı.
Sınır zaten oradaydı
ZUPI’nin kuralları, üçüncü taraf çalışma zamanı bağımlılığı olmayan tek bir kendine yeten modülde yaşıyor. Fiziği, çarpışma işlemeyi, bölüm üretimini, zorluk eğrisini, puanlamayı ve üç saniyelik durağanlık kuralını o sahipleniyor. Canvas’ın ne olduğunu bilmiyor. Bir bölüm numarasıyla kurduğunuz ve bir delta zamanla ilerlettiğiniz bir sınıf sunuyor, ve size her şeyin nerede olduğunu söylüyor.
O sınır web için çizilmedi. Oyunun bir çizici olmadan test edilebilmesi ve aynı kuralların iki kez yazılmadan hem Android hem iOS derlemesini destekleyebilmesi için çizildi. Bir test koşumuyla sürülebilen bir modülün bir tarayıcıyla da sürülebilmesi sadece böyle denk geldi.
Gerçekte ne yaptık
- Kurallar modülünü değiştirmeden, kökeni yanına kaydedilmiş hâlde içeri aldık. Bir taşıma ya da yeniden yazım değil — aynı dosya.
- Uygulamanın arayüzünü kopyalamak yerine NOVEMADE’in kendi görsel dilinde bir web çizicisi yazdık.
- Sabit zaman adımlı bir döngüyle sürdük, böylece simülasyon ekran yenileme hızından bağımsız olarak birebir aynı ilerliyor.
- Bölüm üretimine hiç dokunmadık, yani tahta uygulamanın ürettiği hâliyle 1. bölüm.
Önemli olan son madde. Bölümler bölüm başına belirlenimci bir tohumdan türüyor, yani bu 1. bölüme benzeyen bir tahta değil — 1. bölümün kendisi. Burada onu geçmek, uygulamada geçmekle aynı anlama geliyor.
Bir arayüz problemi olarak dürüstlük
“Gerçek motor” ile “bir yeniden yapım” gerçekten farklı iddialar olduğu için, demo kataloğumuz her girdide bir sadakat beyanı taşıyor ve bu, olsa iyi olur türünden değil, içerik modelinde zorunlu bir alan. Henüz var olmayan demolar, var olduklarında ne olacaklarını söylüyor — Didi’ninkinin bir yeniden yapım olmak zorunda kalacağı dahil, çünkü mantığı yerel arayüz katmanına bağlı ve açığa çıkarılacak bir motor sınırı yok.
Alınmaya değer olan şey
Yeniden kullanılabilir ders web demolarıyla ilgili değil. “Bunu arayüzümüz olmadan başka biri sürebilir mi?” sorusunun, bir ürün yapıldıktan sonra değil yapılırken sorulmaya değer olmasıyla ilgili. Cevap evet olduğunda test edilebilirlik, taşınabilirlik ve — nihayetinde — iki kez yapmak zorunda kalmadığınız bir demo elde ediyorsunuz.