Перейти к основному содержимому

Фреймворки на коде

Что такое фреймворк на коде?

Узнайте, что такое проект на коде, как его файлы соответствуют фреймворкам, элементам, фреймам и журналу и что остаётся в The Forge.

Идея

Фреймворк на коде это игровая система, которую вы пишете как небольшой проект из файлов, а не собираете из узлов. Можно пользоваться своим редактором и своими инструментами. The Forge проверяет проект тем же компилятором, который собирает вашу игру.

Формат проекта называется native-game-v1. Правила пишутся на ограниченном подмножестве TypeScript. В нём нет импортов, сети и случайности, поэтому правило всегда даёт один и тот же результат для одних и тех же входных данных.

Кубики бросают на листе, а не в правилах. Игрок нажимает на бросок кубиков во фрейме, читает результат и вводит его в действие как входное значение. Правило проверяет число и записывает итог. Рецепт «Бросок против навыка» строит процентную проверку именно так.

Как файлы соответствуют сущностям Fabled

Каждый вид файла превращается в то, что вы уже знаете по Fabled.

ФайлВо что превращаетсяЧто делает
manifest/project.jsonИграНазывает проект и перечисляет его фреймворки и сценарии.
schemas/*.jsonФреймворкОбъявляет входные данные, действия, фреймы и контент для одного вида элементов.
rules/*.tsЛогикаСоздаёт элемент, меняет его значения и вычисляет производные значения.
layouts/*.jsonФреймРисует лист или карточку и связывает её кнопки с действиями.
scenarios/*.jsonТестыСоздаёт элемент, запускает действия и проверяет каждое значение и каждую запись.

Элемент это живой экземпляр фреймворка, например один персонаж. Каждое изменение элемента это запись в его журнале. Действия никогда не правят значения на месте. Они просят журнал установить или добавить значение, а ваши сценарии проверяют эти записи.

Как выглядит проект

Это всё дерево файлов игры-примера из этого руководства. В Lantern Keepers один персонаж с очками здоровья, два действия, один лист и два сценария.

manifest/project.json
schemas/keeper.json
rules/keeper.ts
rules/hurt.ts
rules/heal.ts
layouts/keeper.json
scenarios/new-keeper.json
scenarios/heal.json

Что остаётся в The Forge

  • Вы пишете и проверяете проект. Компилятор сообщает, что не так и где.
  • Применять, подготавливать и выпускать игру вы будете в The Forge. Сервер проверяет проект ещё раз, и решающим считается его вердикт.
  • Правила не могут подключать пакеты или выходить за пределы проекта.