5 Mart 2026 · Mikhail Vasiliev
Nexus Devlog: motor prototipi
Bir buçuk ay önce sitede stüdyonun planlarını yayımladım - Nexus motoruyla ilgili: nedir ve üzerinde hangi projeleri yapacağız, stratejilere ve Mısır serimizin devamlarına kadar. Orada bir de yol haritası vardı. Motor karmaşık olduğu için riski azaltmak adına onu adım adım toplamak istiyordum. Ama oyuncular yorumlarda açıkça söyledi: böyle bir şeyi toplamak imkânsız. O yüzden bir prototiple başlamaya karar verdim - böyle bir motorun yine de toplanabileceğini göstermek için. Onu göstereceğim.

Motor şu an böyle görünüyor. Görünüşte oldukça basit bir konsol uygulaması. Ama asıl şeyi iyi gösteriyor - farklı mekaniklerin tek bir evrensel motor üzerinde çalıştığını.
Şu an üzerinde dört simülasyon dönüyor. İlki Stone Age, stüdyonun en ilk oyunu, 2013 yapımı. Diğer üçü başkalarının projelerine dayanıyor. Onları kopyalamayı ya da yayımlamayı düşünmüyorum, burada sadece tek bir motor üzerinde tamamen farklı oyun mekaniklerinin çalışabildiğini göstermek için duruyorlar.
Stone Age
Stone Age motor üzerinde baştan sona yeniden oluşturuldu. Aynı özellikler, yıllar ve turlar, nüfus, topraklar. İşçileri ormana yolluyorsun, yiyecek topluyorlar, nüfus büyüyor, teknolojiler beliriyor - onları araştırıyorsun, yapıları ve evrim ağacını açıyorsun, australopithecus'tan becerikli insana (homo habilis) ve ötesine. Olaylar, son - orijinaldeki her şey yerli yerinde.

Slay the Spire
Sırada Slay the Spire var, harika bir kart roguelike'ı, kesin oynayanınız olmuştur. Motorda yalnızca savaş kısmı var: oyuncuda kartlar, enerji ve can, düşmanda ise kendi niyeti. Strike (Vuruş) vuruyor, Defend (Savunma) blok koyuyor. Enerji harcıyorsun, turu bitiriyorsun ve böylece sırayla, biri kazanana kadar.

GURPS
Üçüncü simülasyon GURPS, oldukça karmaşık bir masaüstü (kağıt-kalem) rol yapma sistemi. Ondan yalnızca bir modülü aldım, yıldız sistemi üretecini. İlginç olan şu ki bu modülün kendisi aslında bir oyun değil, karmaşık bir üreteç. Tek yıldızlı ve bir sürü özelliği olan bir sistem kurdu: on yörünge, üzerlerinde farklı dünyalar. İlki, küçük ve taşlı olanı, Merkür'e benziyor - kendi kütlesi, atmosfer basıncı ve gerisiyle. Bu simülasyonda toplamda altı binden fazla olgu var. İyi bir stres testi: motorun ne kadar veri kaldırdığı görülüyor.

Oregon Trail
Dördüncüsü Oregon Trail, 1971 yapımı bir klasik ve en eski bilgisayar oyunlarından biri. Göçmenlerin arabalarla Amerika'yı boydan boya geçme yolculuğu: yola çıkmadan önce erzak satın alıyorsun - öküz, yiyecek, mermi, giysi - ve sonra avlanıyor, erzağı paylaştırıyor, olaylarla başa çıkıyorsun. İşte bize saldırdılar. Ve böyle, yolun sonuna kadar.

Dört oyun da tek bir motor üzerinde çalışıyor ve hiçbiri için kod yazmak gerekmedi.
Anında düzenleme
Ama motor bu oyunları sadece çalıştırmıyor - onları kodu hiç ellemeden, anında değiştirebiliyorsun. Slay the Spire'ı ele alalım.

Strike (Vuruş) kartının hasarını değiştireyim, 100 yapayım:
/set Strike.CalcDamage Value 100Özellik bu iki kartta da aynı anda değişti, çünkü sınıfları ortak.

Tamamen yeni bir kart da eklenebilir, Fireball (Ateş Topu):
/add Fireball Is DirectDamage
/set Fireball.CostEnergy Value 2
/add Fireball Has CalcDamage
/set Fireball.CalcDamage Value 20
/add Fireball Has ApplyDamage
/add Fireball.ExecutionEffects Has CostEnergy
/add Fireball.ExecutionEffects Has CalcDamage
/add Fireball.ExecutionEffects Has ApplyDamageYoktu, ama artık oyunda - elde duruyor, oynanıyor, 20 hasar veriyor ve her kart gibi iskartaya gidiyor:

Kuralların kendisini de değiştirmek mümkün, tek bir komutla. Oynanan kartların iskartaya gitmesini sağlayan kuralı kaldırayım.
/remove PlayCard Has MovePlayedCardArtık elde kalıyorlar. Defend (Savunma) oynadım: blok yapıldı, enerji harcandı, ama kart yerinde kaldı.
![Kural değişiminden sonra: Defend (Savunma) oynandı - enerji 0/3, blok 5 - ama oynanan tüm kartlar [X] işaretiyle elde kaldı](/_next/image?url=%2Fvblog1_slayrule.jpg&w=3840&q=75)
Bir programlama dilinde yazılmış sıradan bir oyunda bunun için kodun içine girip projeyi yeniden derlemek gerekirdi. Burada buna gerek yok.
Aynı şekilde, oyunda daha önce hiç olmayan şeyler de eklenebiliyor. Mesela altın - onu tanımlayıp nasıl harcandığını anlatayım:
/set Player.Gold Value 100
/add CostGold Output Owner.Gold
/add CostGold Math.Subtract.Apply trueAz önce olmayan bir özellik beliriyor - altın, hemen de tam yüz tane.

Bu altının üzerine yeni bir eylem de kurulabiliyor - Bribe (Rüşvet). Enerji değil, altın harcıyor:
/add Bribe Is DirectDamage
/set Bribe.CostEnergy Value 0
/set Bribe.CostGold Value 30
/add Bribe Has CalcDamage
/set Bribe.CalcDamage Value 15
/add Bribe Has ApplyDamage
/add Bribe Has CostGold
/add Bribe.ExecutionEffects Has CostGold
/add Bribe.ExecutionEffects Has CalcDamage
/add Bribe.ExecutionEffects Has ApplyDamage
/create Bribe Player.HandBribe (Rüşvet) otuz altına mal oluyor ve on beş hasar veriyor - ve hemen çalışıyor.

Bunlar hile gibi görünebilir, böyle komutları yazmak da zahmetli gelebilir. Ama bunlar hile değil. Bu, tüm oyunun üzerine kurulduğu mantıksal olguların ve verilerin - nesnelerinin, özelliklerinin ve mekaniklerinin - düzenlenmesi. Aslında bu, oyunun yazıldığı dilin kendisi.
Bu dili öğrenmek şart değil. Yapay zekadan sıradan bir cümleyi Nexus'un anladığı komutlara çevirmesini isteyebilirsin. Mesela:
give 999 goldBu, düz Türkçeyle sadece "999 altın ekle" demek.

Yapay zeka düşünüyor, doğru komutu bulup çalıştırıyor. Sonuçta 999 altınımız oluyor.
Başka türlü de söylenebilir, "altın 100" - bu da çalışıyor. "Beni tanrı yap" - yapay zeka dokunulmazlık veriyor. Turu bitirmek, vurmak, iyileşmek - hepsi sözcüklerle yapılabiliyor, motor anlıyor. Ve bunların hiçbiri betiğe bağlı değil, hepsi gerçekten çalışıyor.
Planlar
Komutları sadeleştirmek istiyorum. Şu an aynı Fireball'u (Ateş Topu) oluşturmak için sekiz kadar komut gerekiyor, ama bunu üç dörde indirmeyi düşünüyorum. Bir sonraki videoda ise daha görsel bir şey göstermeye çalışacağım - bir 2D render.
Motor ve planlar hakkında daha fazlası - Nexus bölümünde.
Açıklama: Stone Age stüdyonun oyunudur. Slay the Spire, GURPS ve Oregon Trail hak sahiplerine aittir ve yalnızca motorun bir gösterimi olarak gösterilmiştir - bu sürümler hiçbir yerde dağıtılmamaktadır.
