Sharpee: различия между версиями
Nikita (обсуждение | вклад) Нет описания правки |
Nikita (обсуждение | вклад) Нет описания правки |
||
| (не показана 1 промежуточная версия этого же участника) | |||
| Строка 18: | Строка 18: | ||
}} |
}} |
||
Sharpee — это платформа для создания текстовых игр (с парсером), написанная на языке TypeScript. Это движок, на котором работают все файлы на языке Chord, а также полноценный инструмент для разработки игр. |
Sharpee — это платформа для создания текстовых игр (с [[Синтаксический анализатор|парсером]]), написанная на языке TypeScript. Это движок, на котором работают все файлы на языке Chord, а также полноценный инструмент для разработки игр. |
||
Файл игры .story на языке Chord компилируется в файл IR, который загрузчик сценария преобразует в сущности, характеристики, фразы и связи. Сценарий на TypeScript формирует те же элементы напрямую через API. В обоих случаях игра выполняется одним и тем же движком. |
Файл игры .story на языке Chord компилируется в файл IR, который загрузчик сценария преобразует в сущности, характеристики, фразы и связи. Сценарий на TypeScript формирует те же элементы напрямую через API. В обоих случаях игра выполняется одним и тем же движком. |
||
| Строка 26: | Строка 26: | ||
* '''Движок'''. Цикл хода, выполнение команд, диспетчеризация событий, плагины; |
* '''Движок'''. Цикл хода, выполнение команд, диспетчеризация событий, плагины; |
||
* '''Модель мира'''. Сущности, состоящие из свойств (данных) и поведения (логики), без глубокой иерархии наследования; |
* '''Модель мира'''. Сущности, состоящие из свойств (данных) и поведения (логики), без глубокой иерархии наследования; |
||
* '''Стандартная библиотека'''. Доступны 45 действий в игровом мире — взять, бросить, открыть, запереть, идти, осмотреть и прочие, — а также сохранение, восстановление, отмена, повтор, счет и справка; |
* '''Стандартная библиотека'''. Доступны 45 [[Глагол|действий]] в игровом мире — взять, бросить, открыть, запереть, идти, осмотреть и прочие, — а также сохранение, восстановление, отмена, повтор, счет и справка; |
||
* '''Парсер'''. Разбор на основе грамматики с поддержкой синонимов глаголов, ограничений слотов и шаблонов, заданных в сценарии; |
* '''[[Синтаксический анализатор|Парсер]]'''. Разбор на основе грамматики с поддержкой синонимов [[Глагол|глаголов]], ограничений слотов и шаблонов, заданных в сценарии; |
||
* '''Языковой слой'''. Все строки, видимые пользователю, вызываются по идентификатору сообщения; |
* '''Языковой слой'''. Все строки, видимые пользователю, вызываются по идентификатору сообщения; |
||
* '''Каналы'''. Структурированный вывод истории: повествовательный текст, статус, медиа, макет интерфейса; |
* '''Каналы'''. Структурированный вывод истории: повествовательный текст, статус, медиа, макет интерфейса; |
||
| Строка 40: | Строка 40: | ||
* [https://sharpee.net/sharpee Официальная документация на английском] |
* [https://sharpee.net/sharpee Официальная документация на английском] |
||
* [https://github.com/ChicagoDave/sharpee Официальный репозиторий] |
* [https://github.com/ChicagoDave/sharpee Официальный репозиторий] |
||
== См. также == |
|||
Текущая версия от 04:13, 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 не «печатают» готовый текст, а «собирают» его. Файл с игрой отправляет данные по именованным каналам, а некий внешний механизм решает, как именно они превратятся в интерфейс. Именно поэтому одна и та же история может работать в терминале, в браузере или в интерфейсе, созданном самостоятельно автором игры, и можно изменить стиль или заменить любой элемент представления, не затрагивая логику самой игры.