5 Mart 2026 · Mikhail Vasiliev

Nexus Devlog: motor prototipi

Watch on YouTube

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.

Prototip menüsü: motor dört simülasyondan birini seçmeyi öneriyor - Stone Age, Slay the Spire, yıldız sistemi üreteci ve Oregon Trail

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.

Prototip konsolu: Stone Age - kabile özellikleri, topraklar, teknoloji ve evrim menüsü

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.

Aynı konsolda Slay the Spire - can, enerji, düşmanın niyeti ve eldeki kartlar

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.

GURPS modülünde üretilmiş bir yıldız sistemi - yıldız, yörüngeleri ve ilk dünyanın özellikleri

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.

Aynı konsolda Oregon Trail: erzak - yiyecek, mermi, giysi, para - ve atlılarla karşılaşınca ne yapılacağının seçimi

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.

Motorda Slay the Spire'ın açılış turu: can, enerji, düşman ve elde beş kart - Strike'ın (Vuruş) hasarı henüz 6

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.

Elde iki Strike (Vuruş) kartı var ve ikisi de artık 100 hasar veriyor - özellik bu sınıftaki tüm kartlarda aynı anda değişti

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 ApplyDamage

Yoktu, ama artık oyunda - elde duruyor, oynanıyor, 20 hasar veriyor ve her kart gibi iskartaya gidiyor:

Düzenlemelerden sonra: her iki Strike (Vuruş) kartı artık 100 hasarda ve elde 20 hasarlık yeni bir Fireball (Ateş Topu) kartı belirdi

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 MovePlayedCard

Artı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ı

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 true

Az önce olmayan bir özellik beliriyor - altın, hemen de tam yüz tane.

Durum satırında altın belirdi - hemen yüz tane - az önce oyunda olmayan bir özellik

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.Hand

Bribe (Rüşvet) otuz altına mal oluyor ve on beş hasar veriyor - ve hemen çalışıyor.

Elde yeni bir eylem belirdi, Bribe (Rüşvet): sıfır enerji, otuz altın ve on beş hasar

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 gold

Bu, düz Türkçeyle sadece "999 altın ekle" demek.

Yapay zekaya sıradan sözcüklerle bir istek - "give 999 gold". Motor doğru komutu kendisi bulup çalıştıracak

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.