5 березня 2026 р. · Михайло Васильєв

Nexus Devlog: прототип рушія

Watch on YouTube

Півтора місяця тому я виклав на сайті плани студії - про рушій Nexus: що це таке і які проєкти ми робитимемо на ньому, аж до стратегій і продовжень єгипетської серії. Там же була дорожня карта. Рушій складний, і щоб знизити ризики, я хотів збирати його поступово. Але гравці в коментарях сказали прямо: зібрати таке неможливо. Тому я вирішив почати з прототипу - показати, що зібрати такий рушій усе-таки можна. Його й покажу.

Меню прототипу: рушій пропонує вибрати одну з чотирьох симуляцій - Stone Age, Slay the Spire, генератор зоряних систем і Oregon Trail

Ось як рушій виглядає зараз. На вигляд це доволі примітивний консольний застосунок. Але він добре показує головне - що різні механіки працюють на одному універсальному рушії.

Зараз на ньому крутяться чотири симуляції. Перша - Stone Age, найперша гра студії, 2013 року. Решта три зроблені за чужими проєктами. Копіювати чи випускати їх я не збираюся, вони тут тільки щоб показати, що на одному рушії можуть працювати геть різні ігрові механіки.

Stone Age

Stone Age відтворена на рушії повністю. Ті самі характеристики, роки й ходи, населення, землі. Робітників відправляєш у ліс, вони добувають їжу, населення росте, з'являються технології - їх досліджуєш, відкриваєш будівлі й дерево еволюції, від австралопітека до людини вмілої й далі. Події, кінцівка - усе з оригіналу на місці.

Консоль прототипу: Stone Age - характеристики племені, землі, меню технологій та еволюції

Slay the Spire

Далі - Slay the Spire, чудовий картковий роґалик, хтось напевно грав. На рушії тільки бій: у гравця карти, енергія та здоров'я, у ворога свій намір. Strike (Удар) б'є, Defend (Захист) ставить блок. Витрачаєш енергію, завершуєш хід, і так по черзі, поки хтось не переможе.

Та сама консоль зі Slay the Spire - здоров'я, енергія, намір ворога й карти в руці

GURPS

Третя симуляція - GURPS, настільна система, доволі складна. З неї я взяв тільки один модуль, генератор зоряних систем. Цікаво, що сам цей модуль - узагалі не гра, а складний генератор. Він зібрав систему з однією зорею й купою властивостей: десять орбіт, на них різні світи. Перший, маленький кам'яний, схожий на Меркурій - зі своєю масою, тиском атмосфери та іншим. Усього в цій симуляції більше шести тисяч фактів. Це добрий стрес-тест: видно, скільки даних рушій тягне.

Згенерована зоряна система в модулі GURPS - зоря, орбіти й властивості першого світу

Oregon Trail

Четверта - Oregon Trail, класика 1971 року й одна з найраніших комп'ютерних ігор. Це шлях переселенців через Америку на возах: перед дорогою закуповуєш припаси - волів, їжу, набої, одяг, - а далі полюєш, розподіляєш пайок і розбираєшся з подіями. На нас ось напали. І так до кінця маршруту.

Oregon Trail у тій самій консолі: припаси - їжа, набої, одяг, гроші - і вибір дій під час зустрічі з вершниками

Усі чотири гри працюють на одному рушії, і для жодної не довелося писати код.

Правка на ходу

Але рушій не тільки запускає ці ігри - їх можна міняти прямо на ходу, не чіпаючи код. Візьмемо Slay the Spire.

Стартовий хід Slay the Spire на рушії: здоров'я, енергія, ворог і п'ять карт у руці - урон Strike (Удар) поки що 6

Поміняю урон карти Strike (Удар), поставлю 100:

/set Strike.CalcDamage Value 100

Властивість одразу змінилася в обох таких карт, бо клас у них спільний.

У руці дві карти Strike (Удар), і в обох тепер урон 100 - властивість змінилася одразу в усіх карт цього класу

А можна додати й геть нову карту, Fireball (Вогняна куля):

/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

Її не було, а тепер вона в грі - лежить у руці, розігрується, завдає 20 урону й іде в скид, як звичайна:

Після правок: обидві карти Strike (Удар) тепер по 100 урону, а в руці з'явилася нова карта Fireball (Вогняна куля) на 20 урону

Можна поміняти й самі правила, однією командою. Заберу правило, за яким зіграні карти йдуть у скид.

/remove PlayCard Has MovePlayedCard

Тепер вони лишаються в руці. Зіграв Defend (Захист): з'явився блок, енергія витратилася, а карта лишилася.

Після зміни правила: Defend (Захист) зіграно - енергія 0/3, блок 5, - але всі зіграні карти лишилися в руці, позначені [X]

У звичайній грі, написаній мовою програмування, для цього довелося б лізти в код і перезбирати проєкт. Тут це не потрібно.

Так само в гру додається й те, чого в ній раніше не було зовсім. Наприклад, золото - заведу його й опишу, як воно витрачається:

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

З'являється характеристика, якої щойно не було, - золото, і одразу ціла сотня.

У рядку стану з'явилося золото - одразу сто, характеристика, якої в грі щойно не було

На цьому золоті можна зробити й нову дію - Bribe (Підкуп). Воно витрачає не енергію, а золото:

/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 (Підкуп) коштує тридцять золота й завдає п'ятнадцять урону - і одразу працює.

У руці з'явилася нова дія, Bribe (Підкуп): нуль енергії, тридцять золота й п'ятнадцять урону

Може здатися, що це чити й що набирати такі команди незручно. Але це не чити. Це правка логічних фактів і даних, на яких тримається вся гра: її об'єкти, властивості й механіки. По суті це мова, якою гра написана.

Вчити цю мову не обов'язково. Можна попросити ШІ перекласти звичайну фразу в команди, які розуміє Nexus. Наприклад:

give 999 gold

У перекладі це просто «Додай 999 золота».

Запит до ШІ звичайними словами - «give 999 gold». Рушій сам підбере потрібну команду й виконає її

ШІ думає, знаходить потрібну команду й виконує, і в нас 999 золота.

Можна сказати інакше, «золото 100» - теж спрацює. «Зроби мене богом» - ШІ видає невразливість. Завершити хід, ударити, вилікуватися - усе це можна зробити словами, рушій розуміє. І нічого з цього не заскриптовано, усе працює по-справжньому.

Плани

Команди я хочу спростити. Зараз, щоб створити той самий Fireball (Вогняна куля), потрібно близько восьми команд, а думаю звести до трьох-чотирьох. А в наступному ролику постараюся показати щось наочніше - 2D-рендер.

Докладніше про рушій і плани - у розділі Nexus.

Застереження: Stone Age - гра студії. Slay the Spire, GURPS та Oregon Trail належать їхнім правовласникам і показані тільки як демонстрація рушія - ці збірки ніде не поширюються.