5. března 2026 · Michail Vasiljev
Nexus Devlog: prototyp enginu
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.

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

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

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.

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.

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.

Změním poškození karty Strike (Úder), nastavím 100:
/set Strike.CalcDamage Value 100Vlastnost se naráz změnila u obou takových karet, protože mají společnou třídu.

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 ApplyDamageNebyla 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á:

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 MovePlayedCardTeď 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]](/_next/image?url=%2Fvblog1_slayrule.jpg&w=3840&q=75)
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 trueObjevuje se vlastnost, která tu ještě před chvílí nebyla - zlato, a rovnou celá stovka.

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

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 goldV překladu je to prostě „Přidej 999 zlata“.

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šíří.
