Ретроспектива Sorcery! - часть 2. Что пошло не так

Оригинал: Postmortem: Steve Jackson's Sorcery! series by Inkle
Автор: Джон Ингольд, директор и сооснователь Inkle Studios
Перевод: Можайский Сергей
Это окончание статьи, начало здесь.

Что пошло не так


1. Визуальный стиль

Серия Sorcery! запомнилась фанатам книг-игр не только своими механиками, но и необычной эстетикой. Вдохновленный путешествием в Непал, Стив Джексон смешал восточные мотивы с более традиционным толкиеновским D&D. Для нашей адаптации мы планировали подчеркнуть этот восточный мотив, чтобы создать мир, который ощущался бы новым, неизведанным, и стоящим того, чтобы его исследовать.

Мы старались подчеркнуть это в стиле графики, например, используя молитвенные флаги в интерфейсе. Для музыки мы хотели восточную аранжировку, попросив Лоренса Чапмана взять за основу музыкальной тему для Sorcery! 3 саундтрек к фильму “Крадущийся тигр, затаившийся дракон”. Мы даже использовали тибетские иероглифы в системе заклинаний.

Но почему-то цельная картина так и не сложилась.

Одной из проблем была карта. Сложно было уйти от ощущения типового фэнтези. И хотя Майк добавил много деталей — например, загнутые крыши домов, как у китайских пагод, на карте Кхаре — этого было недостаточно, чтобы передать ощущение “инаковости”. Мы планировали использовать более необычную цветовую палитру, и даже карту в стиле ландшафтов на японских свитках — но такой картой было неудобно пользоваться по её прямому назначению.

Когда первая часть вышла в свет, визуальный стиль изменению уже не подлежал. Сейчас мне кажется, что местами он довольно тяжеловесен. Sorcery! вышла в то же время, что и iOS 6, когда скевоморфизм был еще в моде, и мы делали упор на детализированные текстуры материалов. Четыре года спустя этот стиль выглядит слегка устаревшим.

Однако мы извлекли из этого пользу. Чувство упущенной возможности подстегнуло нас сделать совершенно другой, стилизованный-но-элегантный интерфейс в “80 дней”.

2. Заклинания

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

Это было ужасное дизайнерское решение, которое мы отвергли еще на этапе обсуждения. Как игрок узнает, какой жест нужно делать? Достаточно ли жестов для пятидесяти заклинаний? Как они узнают, что жест сработал? Если они могут вызвать любое заклинание в любое время, что помешает им бить молнией (ZAP) во всё что движется? Какой объем работы нам предстоит — ведь придется прописывать результат каждого заклинания для любого момента?

То, что мы сделали вместо этого, довольно близко к оригинальной книге-игре. В определенный момент сюжета игроку предлагается выбор из 5-6 заклинаний. Заклинания каждый раз разные — по сюжету это объясняется видимыми созвездиями и все такое — но на самом деле они заранее подобраны. Мы показываем заклинания, которые, по нашему мнению, игрок захотел бы вызвать, или те, что давно не использовались, или те, что могут дать интересный игровой эффект.

В целом, это было хорошее решение — мы добавили много разных заклинаний и много пасхалок, секретных путей и забавных эффектов нестандартных заклинаний. Например, если вы используете заклинание “Говорить с животными” на атакующего монстра, результат вас позабавит. Но при этом заклинания не были столь же тесно связаны с игрой, как карта или боевая система, они ощущались как нечто чужеродное.

На разработку правильного интерфейса мы потратили немало времени. В самой первой версии игры заклинания вызывались с помощью выстраивания букв в дырах в бумаге, на которой писался игровой текст. Выглядело неплохо, но пользоваться этим было неудобно, и на экране не было места для вспомогательной информации. Игроки должны были запоминать, что делает каждое заклинание, и какие предметы нужны, чтобы его вызвать. Таковы были правила в старой книге-игре, но, конечно, игроки все равно подсматривали в подсказку — а для компьютерной игры такое ограничение было слишком строгим.


Первая версия интерфейса для заклинаний

Во второй части мы переделали эту систему в нынешний “шар заклинаний” — по сути, просто симпатичную клавиатуру. Он показывает подсказки, чтобы помочь игрокам найти заклинания методом проб и ошибок, и сообщает, что делает найденное ими заклинание и какие предметы для него нужны. Игрокам не нужно открывать Книгу заклинаний вообще, они могут просто просмотреть все возможные варианты. Но в таком случае, почему бы не сделать это просто списком с вариантами выбора?


Финальная версия интерфейса для заклинаний

Мне кажется, мы так и не нашли идеальную систему для заклинаний. Имеющаяся система довольно хороша, но все же она плохо вписывается в игру.

3. Дальше, дальше

Игровой процесс Sorcery! состоит из перемещения по карте и выборов вариантов действий в сюжетных секциях. С одной стороны, это просто и понятно — вы прокладываете путь в нужную локацию, персонаж перемещается туда, и начинается сюжетная сцена. Но если она необязательна, то выглядит это не очень удачно, примерно так:


Варианты выбора: “Посмотреть в ущелье”, “Осмотреть камень”, и злосчастный вариант “Идти дальше”

Первые несколько вариантов могут быть любыми — осмотреть, расследовать, попробовать что-то, проверить удачу. Они могут быть увлекательными, загадочными, интересными, интригующими… Но в самом конце всегда будет унылое “Идти дальше”. Если вы выбрали исследование, этот унылый вариант будет в следующем блоке выборов — и в следующей локации тоже, и еще в одной. Иногда нам удавалось подобрать более удачное словосочетание (“Взбираться выше”, “Вернуться”), но основная функциональность оставалась та же — “выйти из сюжетной сцены и вернуться на карту”.

Выборы, которые предлагаются в сюжетных сценах, являются важной частью сюжета в играх наподобие Sorcery!.. Поэтому мы старались писать текст, исходя из того, что игроки вначале читают именно варианты выбора, а потом просматривают текст над ними в поисках контекста. Но какой смысл несёт “Идти дальше”? Только один — этот фрагмент можно пропустить. Проходите дальше, тут не на что смотреть.

И когда вы выбираете этот вариант, происходит вот что. Мы стараемся не допускать пустых абзацев в тексте игры, поэтому игра всегда выдает что-то, даже если сказать на самом деле нечего: “Вы идете дальше.”, “Вам нужно продолжать идти.”, “Вам не нужно останавливаться.” Даже когда нам удавалось добавить какую-то контекстную информацию (“Скоро стемнеет. Вам нужно идти дальше.”), текст от этого лучше не становился.

Избавиться от “Идти дальше” не получится. Если игроки проходят игру повторно, они захотят пропустить какие-то события или сцены, которые они уже видели раньше — но это задает пренебрежительный тон всей игре. Решить эту проблему переделкой интерфейса у нас тоже не вышло. Крестик или значок игроки могут не заметить, или же счесть еще одним вариантом выбора, который явно “хуже” тех, что написаны.

Если бы мы взялись за редизайн, то попробовали бы более радикальные меры — например, оставили бы карту и флажки движения видимыми во время сюжетных сцен. Тогда игрок мог бы прерывать сцену и двигаться дальше, используя обычный интерфейс перемещения. Но на экране смартфона для такого интерфейса слишком мало места.

4. Новые инструменты и старый код

Sorcery! стала испытанием логических и структурных возможностей созданного нами языка ink. В то время в нём были некоторые жесткие ограничения, а несколько ошибок мы временно залатали, вместо того чтобы исправить как следует, чтобы вовремя выпустить игру. Как результат, в первой части игры мы приняли ряд неудачных решений для написания сценария, которые преследовали нас на протяжении разработки всех остальных частей Sorcery!.. К сожалению, по мере исправления и доработки мы не могли обновить ранее выпущенные игры, поскольку потеряли бы совместимость со старым форматом ink.

Хуже всего получилось с системой модификаторов оружия и брони. Как и в любой RPG, в Sorcery! игрок может получить улучшенное оружие. Но в первой части это происходит всего один раз, и в тот момент мы не знали, что это будет полноценная игровая механика. Поэтому, вместо создания системы характеристик оружия, при получении оружия или брони происходило непосредственное изменение силы атаки или защиты персонажа. Во второй части Sorcery!, где вы могли купить другой меч или улучшить имеющийся, приходилось не только отменять более раннее изменение характеристик персонажа и применять другое, но еще и выяснять, каким же было первое изменение, основываясь на содержимом вашего инвентаря. А что делать, если бы вы повредили меч по дороге в одной из сюжетных встреч?

Эта плохо спроектированная и глючная система модификаторов оружия сохранилась во всех четырех играх. Для третьей части мы изолировали её в дружелюбно выглядящем, но ужасном внутри скрипте. Но даже во время тестирования четвертой части игры она давала о себе знать несколькими нетривиальными ошибками.

А еще был счетчик провизии, который на самом деле учитывал именованные продукты отдельно от обычных. Когда вы выбирали, что съесть, нам нужно было определить, какой из продуктов это мог быть, и затем изменить нужную переменную в инвентаре.

Была система Богов, жестко закодированная в огромном операторе выбора вместо файла данных. Она росла и усложнялась по мере добавления новых Богов, и начала сильно ограничивать нас в том, на что Боги могут и не могут влиять. И это мало похоже на то, какими должны быть Боги на самом деле.

Каждая из этих ошибок стоила нам времени на разработку и отладку. Но хуже всего то, что эти ошибки ограничивали наши возможности. Если вы видите, что система оружия в Sorcery! недоработана или для неё нет нормального интерфейса — знайте, это потому, что код, который за нее отвечает, кривой и глючный.

Во время разработки игр Sorcery! мы продолжали эксперименты с возможностями ink. Когда вышла первая часть, мы все еще вычищали ошибки нашего движка. После этого мы стали экспериментировать со сложным ветвлением сюжета, после чего добавили в ink революционно новые возможности, использованные нами во время разработки 2 и 3 частей. Например, появилась функциональность “тоннелей” — ветвей истории, которые после своего завершения возвращаются в ту точку, откуда были вызваны.

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

5. Генератор текста боя

Этот частный случай из предыдущего пункта заслуживает отдельного описания.

Мы хотели, чтобы в боевых сценах игра описывала действие в прозе — как атаковал монстр, что сделали вы, как изменилось ваше здоровье и состояние врага. В фэнтези описание подобных сцен выглядит шаблонно (“Орк взмахнул дубиной, но в последний момент варвар пригнулся и выхватил клинок, чтобы нанести ответный удар.”), и мы поняли, что сможем написать код для этой задачи.


Генератор текста для боя и инструмент для прототипирования AI противников

Результат получился весьма неплохим, и зачастую выглядит как настоящая магия: если вы применяете заклинание головокружения на монстра, текст описания боя упоминает об этом. Или если вы не смогли уклониться от атаки пирата, тот начинает поддразнивать вас. Все это очень увлекательно.

Но в плане разработки все было не так гладко. Нам потребовалось много усилий и рутинной работы, чтобы заставить этот движок работать, а дорабатывать его было еще сложнее. Дело в том, что для него мы создали специальный формат данных и редактор текста, вместо того, чтобы просто использовать ink.


Генератор текста для боевых сцен

Так получилось потому, что изначально мы рассматривали ink исключительно как “сценарий” игры. Игрок перемещается по нему от сцены к сцене, а все, что не относится к сценарию, обрабатывается отдельно.

Когда мы сделали “80 дней”, движок ink позволял намного больше. Мы могли выполнять фрагменты ink-сценария независимо от основного сценария игры. Мы даже могли заглянуть вперед и узнать, к чему приведет определенный вариант выбора, не выполняя код на самом деле.

Но к тому моменту, система боев уже была построена, и уже были закончены сцены боев для первых двух игр.
Несмотря на то, что перемещение боевых сцен в ink сделало бы их заметно лучше — мы не могли сделать это, ведь пришлось бы переписывать все бои в первых двух играх. Вместо этого, сознательно или нет, мы помещали все меньше боев в игру, потому что усилия, потраченные на их написание, того не стоили.

Нам очень жаль, что так получилось. Наша боевая система — это то, чем мы действительно гордимся, хотя некоторые игроки могут с этим поспорить. Она проста в освоении и использовании, и в нее легко играть, не уделяя особого внимания тексту, если вы хотите просто рубить всё на своем пути — но в ней достаточно глубины, чтобы в нее было интересно играть на протяжении всех четырех игр.

Подводя итоги


Sorcery! стала прорывом, игрой, с которой начался рост нашей компании, как в финансовом плане, так и в плане известности и уверенности в своих силах. Работая над “80 дней”, мы почерпнули многое из Sorcery! 2 — и в свою очередь, привнесли новшества оттуда в Sorcery! 3. И, конечно, вся серия еще окажет влияние на наши будущие игры.

Мы рады, что игра была тепло принята игроками. Хотя Sorcery! никогда не была в центре внимания, она стала довольно успешной игрой и собрала вокруг себя маленькое, но плотное ядро фанатов, которые играли и переигрывали в неё по многу раз, стараясь найти все секреты и тайные моменты.

За этим было очень интересно наблюдать, и мы отлично провели время, создавая для четвертой части пасхалки, которые смогут найти наиболее настойчивые игроки. Например, в игре есть бесполезный, но интересный “Бог Богов” Иб’ран, которого, как мы считали, никто не сохранит до следующей игры — но конечно же, некоторые игроки нашли возможность это сделать… и в ответ на это мы создали отдельную сюжетную линию для таких игроков.

Создание игры с ноткой ностальгии — это одновременно и благословение, и проклятие. Sorcery! пришла на уже подготовленный рынок, и более того, часть аудитории бывших читателей Fighting Fantasy работают в игровых изданиях. Но в то же время, как мне кажется, многие игроки даже не стали в нее играть, увидев, что в основе лежит книга-игра, вдохновленная D&D 80х годов. Я убежден, что не будь у многих игроков предубеждения по поводу Sorcery!, она бы им понравилась.

Рассказывая о нашей игре как адаптации оригинальных книг-игр, мы часто упоминаем "Звёздный крейсер «Галактика»": несмотря на одинаковую основу, сериал 70-х годов и переосмысленный сериал 2003 года совершенно разные; но при этом ремейк просто не мог бы существовать без оригинала.

Sorcery! — это одновременно ностальгическая игра и современная интерактивная литература; в чем-то сырая и наивная, в чем-то тщательно проработанная. Но те, кто читал оригинальные книги-игры Стива, знают, что то же самое описание подходит и для них. В Sorcery! всегда есть что-то большее, незаметное на первый взгляд.

1 комментарий

LuckyUK
Сквеморфизм — я узнал новое слово. Спасибо, techniX !