От школьного урока до Netflix: что такое Twine и как я на нём делаю игру.

От школьного урока до Netflix: что такое Twine и как я на нём делаю игру.

Привет. Сегодня без сюжетов и персонажей - расскажу на чём вообще делаю свою игру и как это устроено изнутри.

Но сначала немного о том, что меня к этому привело.

Знаешь эти детективные настолки в коробке, которые продаются на маркетплейсах? Где ты с друзьями расследуешь дело, вскрываешь конверты с уликами, ищешь убийцу. Я их обожаю. Но каждый раз ловлю себя на мысли переделать какие-то мелочи или раскрыть линии сюжета.

От школьного урока до Netflix: что такое Twine и как я на нём делаю игру.

В коробке ты ограничен бумагой. Персонажи там - пара строчек на карточке. Сюжет линейный: вскрыл конверт, прочитал, пошёл дальше. А что если дать этим персонажам живые характеры? Историю, мотивы, реакции которые меняются от твоих действий? Что если расследование можно вести в любом порядке, а не по заранее заданным шагам? Что если у убийцы есть психология, а у свидетелей - секреты которые не лежат на поверхности?

Вот из этой мысли - «взять уют детективной настолки и насытить её живой историей» - и выросла идея попробовать создать свою игру. А инструментом стал движок Twine. И этот пост об этой приблуде!

Что такое Twine и почему именно он.

От школьного урока до Netflix: что такое Twine и как я на нём делаю игру.

Twine - бесплатный движок для интерактивных историй, текстовых игр и визуальных новелл. Главная фишка: чтобы сделать простую игру, код знать не нужно вообще. Пишешь текст, расставляешь ссылки - получаешь игру в виде обычной HTML-страницы, которая открывается в любом браузере.

Создал его в 2009 году веб-разработчик и геймдизайнер из Балтимора Крис Климас. И тут любопытная деталь - Twine не выстрелил сразу. По словам самого Климаса, движок никому не был интересен, пока его не подхватило инди-сообщество, о котором он на тот момент даже не знал. Вдохновлялся он текстовыми квестами 80-х и романом «Дом листьев» - хотел сделать инструмент, где в центре стоит автор, а не команда программистов и художников.

Философия так и звучит - «писатель в центре процесса». Поэтому Twine облюбовали не только геймдевелоперы, но и поэты, психологи, активисты - люди далёкие от кода.

Как устроена работа - пассажи.

Вся игра собирается из блоков, которые называются пассажами. Представь карточки на стене, соединённые ниточками - в редакторе это так и выглядит. Каждый пассаж - отдельный экран: комната, диалог, развилка.

Вот простейший пассаж:

От школьного урока до Netflix: что такое Twine и как я на нём делаю игру.

Двойное двоеточие - имя пассажа. Текст в двойных квадратных скобках - ссылка-переход. Игрок жмёт «Войти» - попадает в пассаж Frida_porog. Это уже работающая нелинейная история.

От школьного урока до Netflix: что такое Twine и как я на нём делаю игру.

StoryInit - мозг игры.

Есть особый пассаж - StoryInit. Он запускается один раз в самом начале, до того как игрок что-то увидит. Сюда я прописываю стартовые значения: таймер, счётчики улик, флаги «опрошен ли персонаж», «найдена ли улика».

Доллар - переменная. $klyuch_naiden = 0 значит «ключ ещё не найден». Когда игрок находит ключ, ставлю значение в 1 - игра запоминает. Дальше проверяю: ключ найден - дверь открывается; нет - «заперто». Это и есть логика, которая превращает текст в игру с памятью и последствиями.

От школьного урока до Netflix: что такое Twine и как я на нём делаю игру.

У меня немного базовых знаний JavaScript - на фоне многих геймдевелоперов это совсем скромно. Но для Twine этого хватает: большую часть логики собираешь из простых макросов, а в чистый код лезешь только когда нужно что-то нестандартное.

Story Format - диалекты движка.

У Twine нет одного жёсткого языка - есть story formats, форматы историй, как диалекты:

  • Harlowe - по умолчанию, для новичков
  • SugarCube - мощный, для сложных проектов с логикой
  • Snowman - для тех кто лезет в чистый JavaScript
  • Chapbook - «второе поколение», делает сам Климас

Я выбрал SugarCube - он тянет сложную логику, таймеры, состояния. Для детектива с десятками улик незаменим.

А куда CSS?

Чтобы игра не выглядела как голый текст на белом фоне, в Twine есть отдельная вкладка - Stylesheet. Туда вставляешь обычный CSS, он применяется ко всей игре. Именно там я задаю тёмный фон, рамки диалогов, стиль кнопок - весь «архивно-нуарный» вид. Рядом вкладка JavaScript - для сложных штук вроде таймера обратного отсчёта.

От школьного урока до Netflix: что такое Twine и как я на нём делаю игру.

Что дальше, когда сценарий готов?

Самое приятное - публикация. Twine конвертирует всю игру в один HTML-файл. Без установок, без аккаунтов, без магазинов приложений. Файл можно залить на itch.io, выложить на сайт или просто скинуть другу в личку. Открыл ссылку - играешь.

От школьного урока до Netflix: что такое Twine и как я на нём делаю игру.

Пара фактов которые меня удивили.

Twine куда серьёзнее чем кажется.

От школьного урока до Netflix: что такое Twine и как я на нём делаю игру.

Сценарист Чарли Брукер написал на Twine сценарий «Чёрного зеркала: Брандашмыг» - того самого интерактивного фильма Netflix. И вот тут начинается интересное. Сценарий разросся до 170 страниц. В фильме больше 150 минут уникальных съёмок, разбитых на 250 сегментов, которые дают больше триллиона возможных путей. Официально - пять «главных» концовок, но сами создатели спорят между собой сколько их на самом деле: продюсер Аннабель Джонс говорит пять, Брукер - больше, а продюсер Маклейн насчитывает до двенадцати.

Брукер, кстати, сначала наотрез отказывался учить Twine - «да ни за что я не буду в этом разбираться». А через пару недель уже ковырялся в нём сам, методом проб и ошибок. Знакомо до боли 😄

И самое забавное - Netflix потом публиковал статистику выборов зрителей. Решение «расчленить или закопать тело отца» дало раскол 52% на 48%. Маленький текстовый движок превратился в инструмент социологического эксперимента.

А ещё на Twine сделана Depression Quest - игра, вокруг которой развернулся скандал «геймергейт», одна из крупнейших дискуссий индустрии о том, что вообще считать игрой. На Reddit до сих пор можно найти многостраничные споры - игра это или «просто текст с кнопками». Любопытно что та же претензия летит во все текстовые игры, и каждый автор отвечает на неё по-своему.

Twine применяют и в образовании - доктор Джеремайя Макколл разработал методику преподавания истории через игры-симуляторы на Twine. Ученики не читают про событие, а проживают его, принимая решения. Его первая профессиональная страсть - преподавание в средней школе, особенно разработка учебных подходов, которые помогут ученикам мыслить как эксперты в своих дисциплинах. Его книга «Играя прошлое: использование видеоигр для преподавания истории в средней школе» (второе издание, Routledge, 2022) - первая работа на эту тему. Вторая, «Разработка исторических игр для классов: практическое руководство для преподавателей», выйдет в Routledge во второй половине 2026 года. В общем интересный дядька - почитать о нём и его подходе можно тут:

Вот так, если коротко, устроена кухня моей игры. Никакой магии.

Это была общая картинка. А чуть позже хочу показать конкретный процесс - как создаётся одна локация целиком, с кодом и разбором: от пустого пассажа до работающей сцены с диалогом и уликами.

А вы пробовали делать что-нибудь в Twine или подобных движках? Или знаете игры на нём которые зацепили - поделитесь в комментах, интересно почитать!

7
1