Twine

Материал из IFВики
Перейти к навигации Перейти к поиску
Twine
Тип Менюшные платформы
Разработчик(и) Крис Климас и сообщество, русский перевод Антон Жучков
Языки интерфейса 15 языков, в том числе русский
Операционные системы Браузер, Windows, macOS, GNU/Linux (Twine 1.x без GNU/Linux)
Написано на JavaScript (версия 1.x на Python 2)
Язык разработки Собственный скриптовый Twine с визуальным редактором и JavaScript
Читаемые форматы файлов Исходный код Twine (*.tws)
Создаваемые форматы файлов Исходный код Twine (*.tws), Веб-страницы (*.html)
Дата первого выпуска 2009
Последняя версия 2.3.5 (сохраняющая актуальность версия 1.4.2 первого поколения)
Дата последней версии 8 октября 2019
Состояние
Лицензия GNU GPL v3.0
Сайт twinery.org


Общая информация

Система для создания интерактивных историй на JavaScript. В качестве интерпретатора готовых историй используется интернет-браузер.

Ранее система называлась Tweebox.

Для описания историй можно использовать несколько простых вики-подобных форматов. Формат описывает язык исходного кода и исходный внешний вид игры.

Кроме графического редактора, который называется собственно Twine, есть также консольная утилита twee, которая позволяет хранить код игры в системах контроля версий (git), а также разбивать код на несколько файлов.

Игры Twine, как правило, можно без потерь декомпилировать в код twee или импортировать в редактор, получив полный код игры. Но при этом Twine 2 не может открывать игры Twine 1 и наоборот, а программа-конвертер несовершенна и работает только с SugarCube.

Доступные форматы (Twine 2)

  • Harlowe - по умолчанию. Чёрный текст по центру белого фона. Википодобный язык.
  • Snowman - напоминает Markdown
  • SugarCube - наследие Twine 1. Позволяет иметь несколько слотов сохранений.
  • Proofread - выводит весь текст игры на одной странице для облегчения вычитки. Twine автоматически переводит игру в этот формат, когда вы нажимаете на кнопку "proofread copy".

Возможно создать свой формат. Также в сообществе могут быть другие авторские форматы.

Примеры кода

Harlowe

(if: $hasKey)[It looks like the $keyColor key will [[open the door]].]
(else:)[No way forward here, unfortunately.]


Snowman

<% if (s.hasKey) { %>
It looks like the <%= s.keyColor %> key will [[open the door]].
<% } else { %>
No way forward here, unfortunately.
<% } %> 

SugarCube

<<if $hasKey>>
It looks like the $keyColor key will [[open the door]].
<<else>>
No way forward here, unfortunately.
<</if>>

Ссылки

См. также