Фреймворки на коде
Что такое фреймворк на коде?
Узнайте, что такое проект на коде, как его файлы соответствуют фреймворкам, элементам, фреймам и журналу и что остаётся в 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. Сервер проверяет проект ещё раз, и решающим считается его вердикт.
- Правила не могут подключать пакеты или выходить за пределы проекта.

