Sharpee: различия между версиями
Nikita (обсуждение | вклад) Нет описания правки |
Nikita (обсуждение | вклад) Нет описания правки |
||
| Строка 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|или др.]] |
||
|читаемый формат = |
|читаемый формат = |
||
Версия от 04:07, 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 не «печатают» готовый текст, а «собирают» его. Файл с игрой отправляет данные по именованным каналам, а некий внешний механизм решает, как именно они превратятся в интерфейс. Именно поэтому одна и та же история может работать в терминале, в браузере или в интерфейсе, созданном самостоятельно автором игры, и можно изменить стиль или заменить любой элемент представления, не затрагивая логику самой игры.