Sharpee: различия между версиями

Материал из IFВики
Перейти к навигации Перейти к поиску
Содержимое удалено Содержимое добавлено
Нет описания правки
Нет описания правки
Строка 18: Строка 18:
}}
}}


Sharpee — это платформа для создания текстовых игр (с парсером), написанная на языке TypeScript. Это движок, на котором работают все файлы на языке Chord, а также полноценный инструмент для разработки игр.
Sharpee — это платформа для создания текстовых игр (с [[Синтаксический анализатор|парсером]]), написанная на языке TypeScript. Это движок, на котором работают все файлы на языке Chord, а также полноценный инструмент для разработки игр.


Файл игры .story на языке Chord компилируется в файл IR, который загрузчик сценария преобразует в сущности, характеристики, фразы и связи. Сценарий на TypeScript формирует те же элементы напрямую через API. В обоих случаях игра выполняется одним и тем же движком.
Файл игры .story на языке Chord компилируется в файл IR, который загрузчик сценария преобразует в сущности, характеристики, фразы и связи. Сценарий на TypeScript формирует те же элементы напрямую через API. В обоих случаях игра выполняется одним и тем же движком.
Строка 26: Строка 26:
* '''Движок'''. Цикл хода, выполнение команд, диспетчеризация событий, плагины;
* '''Движок'''. Цикл хода, выполнение команд, диспетчеризация событий, плагины;
* '''Модель мира'''. Сущности, состоящие из свойств (данных) и поведения (логики), без глубокой иерархии наследования;
* '''Модель мира'''. Сущности, состоящие из свойств (данных) и поведения (логики), без глубокой иерархии наследования;
* '''Стандартная библиотека'''. Доступны 45 действий в игровом мире — взять, бросить, открыть, запереть, идти, осмотреть и прочие, — а также сохранение, восстановление, отмена, повтор, счет и справка;
* '''Стандартная библиотека'''. Доступны 45 [[Глагол|действий]] в игровом мире — взять, бросить, открыть, запереть, идти, осмотреть и прочие, — а также сохранение, восстановление, отмена, повтор, счет и справка;
* '''Парсер'''. Разбор на основе грамматики с поддержкой синонимов глаголов, ограничений слотов и шаблонов, заданных в сценарии;
* '''[[Синтаксический анализатор|Парсер]]'''. Разбор на основе грамматики с поддержкой синонимов [[Глагол|глаголов]], ограничений слотов и шаблонов, заданных в сценарии;
* '''Языковой слой'''. Все строки, видимые пользователю, вызываются по идентификатору сообщения;
* '''Языковой слой'''. Все строки, видимые пользователю, вызываются по идентификатору сообщения;
* '''Каналы'''. Структурированный вывод истории: повествовательный текст, статус, медиа, макет интерфейса;
* '''Каналы'''. Структурированный вывод истории: повествовательный текст, статус, медиа, макет интерфейса;

Версия от 04:12, 4 октября 2026

Sharpee
Тип Парсерные платформы
Разработчик(и) Дэвид Корнельсон
Языки интерфейса английский
Операционные системы Браузер, Windows, macOS, Linux (runtime); macOS (Chord Writer)
Написано на TypeScript
Язык разработки JavaScript, TypeScript или др.
Читаемые форматы файлов
Создаваемые форматы файлов
Дата первого выпуска 2025
Последняя версия 5.4.0
Дата последней версии 11 сентября 2026
Состояние активное
Лицензия MIT
Сайт sharpee.net


Sharpee — это платформа для создания текстовых игр (с парсером), написанная на языке TypeScript. Это движок, на котором работают все файлы на языке Chord, а также полноценный инструмент для разработки игр.

Файл игры .story на языке Chord компилируется в файл IR, который загрузчик сценария преобразует в сущности, характеристики, фразы и связи. Сценарий на TypeScript формирует те же элементы напрямую через API. В обоих случаях игра выполняется одним и тем же движком.

Что может предложить платформа Sharpee:

  • Движок. Цикл хода, выполнение команд, диспетчеризация событий, плагины;
  • Модель мира. Сущности, состоящие из свойств (данных) и поведения (логики), без глубокой иерархии наследования;
  • Стандартная библиотека. Доступны 45 действий в игровом мире — взять, бросить, открыть, запереть, идти, осмотреть и прочие, — а также сохранение, восстановление, отмена, повтор, счет и справка;
  • Парсер. Разбор на основе грамматики с поддержкой синонимов глаголов, ограничений слотов и шаблонов, заданных в сценарии;
  • Языковой слой. Все строки, видимые пользователю, вызываются по идентификатору сообщения;
  • Каналы. Структурированный вывод истории: повествовательный текст, статус, медиа, макет интерфейса;
  • Расширения. Опциональные системы: система очков, голод, базовая боевая система, диалоги, тестирование;

Движок и стандартная библиотека никогда не выводят текст на английском языке. Всё, что читает игрок, поступает из языкового слоя по идентификатору сообщения; благодаря этому локализация сводится к добавлению языкового пакета, а не к поиску и замене жестко прописанного в коде текста.

Файлы .story не «печатают» готовый текст, а «собирают» его. Файл с игрой отправляет данные по именованным каналам, а некий внешний механизм решает, как именно они превратятся в интерфейс. Именно поэтому одна и та же история может работать в терминале, в браузере или в интерфейсе, созданном самостоятельно автором игры, и можно изменить стиль или заменить любой элемент представления, не затрагивая логику самой игры.

Ссылки

См. также