5. března 2026 · Michail Vasiljev

Nexus Devlog: prototyp enginu

Watch on YouTube

Před půldruhým měsícem jsem na web dal plány studia - o enginu Nexus: co to je a jaké projekty na něm budeme dělat, až po strategie a pokračování egyptské série. Byla tam i roadmapa. Engine je složitý, a abych snížil rizika, chtěl jsem ho skládat postupně. Ale hráči v komentářích řekli rovnou: něco takového sestavit nejde. Tak jsem se rozhodl začít prototypem - ukázat, že takový engine sestavit přece jen lze. Ten teď ukážu.

Menu prototypu: engine nabízí výběr jedné ze čtyř simulací - Stone Age, Slay the Spire, generátor hvězdných soustav a Oregon Trail

Takhle engine vypadá teď. Na pohled je to dost primitivní konzolová aplikace. Ale dobře ukazuje to hlavní - že různé mechaniky běží na jednom univerzálním enginu.

Teď na něm běží čtyři simulace. První je Stone Age, úplně první hra studia z roku 2013. Zbylé tři jsou podle cizích projektů. Kopírovat ani vydávat je nehodlám, jsou tu jen proto, aby ukázaly, že na jednom enginu můžou běžet úplně různé herní mechaniky.

Stone Age

Stone Age je na enginu zreprodukovaná celá. Tytéž vlastnosti, roky a tahy, populace, území. Dělníky posíláš do lesa, sbírají jídlo, populace roste, objevují se technologie - zkoumáš je, odemykáš stavby a strom evoluce, od australopitéka k člověku zručnému a dál. Události, konec - všechno z originálu je na svém místě.

Konzole prototypu: Stone Age - vlastnosti kmene, území, menu technologií a evoluce

Slay the Spire

Dál je Slay the Spire, výborný karetní roguelike, někdo ho určitě hrál. Na enginu je jen souboj: hráč má karty, energii a zdraví, nepřítel má svůj záměr. Strike (Úder) bije, Defend (Obrana) staví blok. Utrácíš energii, končíš tah, a tak po sobě, dokud někdo nezvítězí.

Tatáž konzole se Slay the Spire - zdraví, energie, záměr nepřítele a karty v ruce

GURPS

Třetí simulace je GURPS, stolní systém, dost složitý. Vzal jsem z něj jen jeden modul, generátor hvězdných soustav. Zajímavé je, že sám tenhle modul vůbec není hra, ale složitý generátor. Poskládal soustavu s jednou hvězdou a spoustou vlastností: deset oběžných drah a na nich různé světy. První, malý a kamenný, se podobá Merkuru - se svou hmotností, tlakem atmosféry a vším ostatním. Celkem má tahle simulace přes šest tisíc faktů. Je to dobrý zátěžový test: vidíš, kolik dat engine utáhne.

Vygenerovaná hvězdná soustava v modulu GURPS - hvězda, oběžné dráhy a vlastnosti prvního světa

Oregon Trail

Čtvrtá je Oregon Trail, klasika z roku 1971 a jedna z nejranějších počítačových her. Je to cesta osadníků přes Ameriku na vozech: před cestou nakupuješ zásoby - voly, jídlo, náboje, oblečení - a dál lovíš, rozděluješ příděly a řešíš události. Tady nás zrovna přepadli. A tak až do konce trasy.

Oregon Trail v téže konzoli: zásoby - jídlo, náboje, oblečení, peníze - a výběr akcí při setkání s jezdci

Všechny čtyři hry běží na jednom enginu a pro žádnou z nich nebylo třeba psát kód.

Úprava za chodu

Ale engine tyhle hry nejen spouští - dají se měnit přímo za chodu, bez sahání do kódu. Vezměme Slay the Spire.

Úvodní tah Slay the Spire na enginu: zdraví, energie, nepřítel a pět karet v ruce - poškození Strike (Úder) je zatím 6

Změním poškození karty Strike (Úder), nastavím 100:

/set Strike.CalcDamage Value 100

Vlastnost se naráz změnila u obou takových karet, protože mají společnou třídu.

V ruce dvě karty Strike (Úder) a obě teď mají poškození 100 - vlastnost se změnila naráz u všech karet této třídy

A jde přidat i úplně novou kartu, Fireball (Ohnivá koule):

/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

Nebyla tu, a teď je ve hře - leží v ruce, dá se zahrát, způsobí 20 poškození a putuje do odhazovacího balíčku jako každá jiná:

Po úpravách: obě karty Strike (Úder) teď mají poškození 100 a v ruce přibyla nová karta Fireball (Ohnivá koule) za 20 poškození

Dají se změnit i samotná pravidla, jediným příkazem. Odstraním pravidlo, podle kterého zahrané karty putují do odhazovacího balíčku.

/remove PlayCard Has MovePlayedCard

Teď zůstávají v ruce. Zahrál jsem Defend (Obrana): blok naskočil, energie se utratila, ale karta zůstala.

Po změně pravidla: Defend (Obrana) je zahraný - energie 0/3, blok 5 -, ale všechny zahrané karty zůstaly v ruce, označené [X]

V obyčejné hře napsané v programovacím jazyce bys kvůli tomuhle musel lézt do kódu a projekt znovu sestavit. Tady to není potřeba.

Stejně tak se do hry přidává i to, co v ní předtím vůbec nebylo. Třeba zlato - zavedu ho a popíšu, jak se utrácí:

/set Player.Gold Value 100
/add CostGold Output Owner.Gold
/add CostGold Math.Subtract.Apply true

Objevuje se vlastnost, která tu ještě před chvílí nebyla - zlato, a rovnou celá stovka.

Ve stavovém řádku se objevilo zlato - rovnou sto -, vlastnost, kterou hra ještě před chvílí neměla

Na tomhle zlatě se dá postavit i nová akce - Bribe (Úplatek). Neutrácí energii, ale zlato:

/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 (Úplatek) stojí třicet zlata a způsobí patnáct poškození - a hned funguje.

V ruce se objevila nová akce, Bribe (Úplatek): nula energie, třicet zlata a patnáct poškození

Může to vypadat jako cheaty a může se zdát, že takové příkazy se píšou nepohodlně. Ale nejsou to cheaty. Je to úprava logických faktů a dat, na kterých stojí celá hra - jejích objektů, vlastností a mechanik. V podstatě je to jazyk, ve kterém je hra napsaná.

Učit se tenhle jazyk není nutné. Můžeš požádat AI, aby obyčejnou větu přeložila do příkazů, kterým Nexus rozumí. Třeba:

give 999 gold

V překladu je to prostě „Přidej 999 zlata“.

Požadavek na AI obyčejnými slovy - „give 999 gold“. Engine si sám najde správný příkaz a provede ho

AI přemýšlí, hledá správný příkaz a provádí ho, a máme 999 zlata.

Dá se to říct i jinak, „zlato 100“ - taky to zabere. „Udělej ze mě boha“ - AI vydá nezranitelnost. Ukončit tah, udeřit, vyléčit se - to všechno jde udělat slovy, engine rozumí. A nic z toho není naskriptované, všechno funguje doopravdy.

Plány

Příkazy chci zjednodušit. Teď je na vytvoření té samé karty Fireball (Ohnivá koule) potřeba asi osm příkazů a myslím, že to půjde stáhnout na tři až čtyři. A v dalším videu se pokusím ukázat něco názornějšího - 2D render.

Víc o enginu a plánech najdeš v sekci Nexus.

Upozornění: Stone Age je hra studia. Slay the Spire, GURPS a Oregon Trail patří jejich majitelům práv a jsou tu jen jako ukázka enginu - tyto sestavy se nikde nešíří.