Sharpee: различия между версиями
Nikita (обсуждение | вклад) Нет описания правки |
Nikita (обсуждение | вклад) Нет описания правки |
||
| (не показаны 3 промежуточные версии этого же участника) | |||
| Строка 6: | Строка 6: | ||
|система = Windows, macOS, Linux (runtime); macOS (Chord Writer) |
|система = Windows, macOS, Linux (runtime); macOS (Chord Writer) |
||
|онлайн = да |
|онлайн = да |
||
|написано на = |
|написано на = [[TypeScript]] |
||
|язык разработки = [[JavaScript]], [[TypeScript]] [[wikipedia:Категория:Семейство языков программирования JavaScript|или др.]] |
|язык разработки = [[JavaScript]], [[TypeScript]] [[wikipedia:Категория:Семейство языков программирования JavaScript|или др.]] |
||
|читаемый формат = |
|читаемый формат = |
||
| Строка 18: | Строка 18: | ||
}} |
}} |
||
Sharpee — это платформа для создания текстовых игр (с парсером), написанная на языке TypeScript. Это движок, на котором работают все файлы на языке Chord, а также полноценный инструмент для разработки игр. |
Sharpee — это платформа для создания текстовых игр (с [[Синтаксический анализатор|парсером]]), написанная на языке TypeScript. Это движок, на котором работают все файлы на языке Chord, а также полноценный инструмент для разработки игр. |
||
Файл игры .story на языке Chord компилируется в файл IR, который загрузчик сценария преобразует в сущности, характеристики, фразы и связи. Сценарий на TypeScript формирует те же элементы напрямую через API. В обоих случаях игра выполняется одним и тем же движком. |
Файл игры .story на языке Chord компилируется в файл IR, который загрузчик сценария преобразует в сущности, характеристики, фразы и связи. Сценарий на TypeScript формирует те же элементы напрямую через API. В обоих случаях игра выполняется одним и тем же движком. |
||
| Строка 24: | Строка 24: | ||
Что может предложить платформа Sharpee: |
Что может предложить платформа Sharpee: |
||
* |
* '''Движок'''. Цикл хода, выполнение команд, диспетчеризация событий, плагины; |
||
* |
* '''Модель мира'''. Сущности, состоящие из свойств (данных) и поведения (логики), без глубокой иерархии наследования; |
||
* |
* '''Стандартная библиотека'''. Доступны 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 не «печатают» готовый текст, а «собирают» его. Файл с игрой отправляет данные по именованным каналам, а некий внешний механизм решает, как именно они превратятся в интерфейс. Именно поэтому одна и та же история может работать в терминале, в браузере или в интерфейсе, созданном самостоятельно автором игры, и можно изменить стиль или заменить любой элемент представления, не затрагивая логику самой игры.