The StoryTale - как гоблины бросали курить и другие сложности портирования
Всем привет! Меня зовут Максим и я автор игры «The StoryTale» и пришел сюда рассказать, почему перед выходом игры на Nintendo Switch гоблинам из мира The StoryTale пришлось завязать с вредными привычками.
Я начну издалека, а именно с рассказа о самой игре и о том, как она появилась на свет. The StoryTale это сказочный платформер, где всё постоянно взрывается, бабахает, бессмертный принц использует проклятое оружие, а спустившаяся в подземелья принцесса постоянно забывает свои заклинания.
The StoryTale вышла в Steam летом прошлого года, но её разработка началась аж в 2015-ом году. Я тогда не имел за спиной больших завершенных проектов, а пробовал свои силы на джемах, попутно разбираясь в Game Maker Studio. Тема одного из джемов носила название «бесполезные супер-способности», и мной было сразу решено отойти от идеи супергероики, чтобы не затеряться в бесчисленных пародиях на супермена и человека паука. В поиске другой идеи мне помогла моя девятилетняя дочь Арина. Она придумала концепт, повествующей о принцессе, спасающей принца и располагающей арсеналом весьма своеобразных заклинаний, а более того — неспособной выбрать нужное. Тогда-то и были заложены основные механики и идея, что моя дочь будет в этой игре рассказчиком, озвучивая текст сказки, в рамках которой разворачивается The StoryTale. Я не художник, и внешний вид игры на тот самый джем был весьма минималистичен:
Игра не заняла призовых мест, но сделала гораздо большее — она положила начало четырехлетнему периоду разработки более крупного проекта. Участие в джемах уже стало привычкой, и, даже занимаясь таким большим для меня проектом как The StoryTale, я отвлекался на разработку маленьких игр. Как ни странно, в ограничениях по времени и возможностям проще генерировать идеи, и множество механик, придуманных на этих джемах, успешно переносились в игру. Одна из механик, которая прочно закрепилась в финальном билде The StoryTale, это механика, привносящая в игру псевдо-пошаговость. Враги и ловушки двигались только тогда, когда двигалась сама принцесса, словно бы это 2д версия игры SuperHot.
Преимуществом этой механики стала большая свобода при создании уровней — иной раз уровень хардкорности на созданных мной локаций превышал все мыслимые нормы, уж настолько руки тянулись заставить всё кругом врагами и ловушкам. А теперь, когда принцесса могла останавливать время, я мог спокойно собирать локации, которые без этой суперспособности обычный игрок едва ли пройдет.
Первые билды игры собирались на бесплатных ассетах со стоков, но на них, разумеется, далеко не уедешь: найденные мною модели всегда обладали очень ограниченным количеством анимаций. Фоны тоже хромали и нужно было все прятать в темень. Из-за этого персонажи не казались живыми, а мир чувствовался картонным.
Несколько художников приходило в проект, но быстро его покидало. Для любительского геймдева такой порядок вещей является нормой и на нем я продержался два года.
В 2017 году также подключился художник-аниматор Сергей, и игра зацвела новыми красками. Пара других художников обеспечила новоиспеченным анимациям пару замечетельных фонов, что тоже благотворно сказалось не внешнем виде the StoryTale. Принц с принцессой стали подвижнее, а гоблины, которые являются основными обитателями мира The StoryTale, стали куда одушевленнее.
Также мы начали показывать нашу сказку-платформер на выставках и фестивалях со стендами инди-игр. Это был увлекательный и незаменимый опыт общения с игроками и другими разработчиками. Если вы показываете где-то игру и есть возможность использовать большой телевизор, обязательно этим воспользуйтесь. На одной же из выставок я познакомился с разработчиком игр Славой Грис, который пару лет спустя выступит издателем на Nintendo Switch. На мой взгляд личные отношения очень важны в индидеве. И отзывчивые коллеги по цеху — это очень неплохо :)
Моей целью было максимально приблизить игру к ощущениям, словно бы мы читаем добрую сказку. И, возможно, именно наличие прелестных анимаций у врагов сыграло очень важную роль, кардинально поменявшую игровой процесс: изначально принц и принцесса могли убить гоблина, использовав против него какое-нибудь мощное заклинание. Это вписывалось в концепцию до тех пор, пока гоблины не стали такими милашками благодаря анимациям Сергея.
Его маленькая племянница попросила нас, чтобы эти обаятельные существа больше не погибали, и мы прислушались. Ее просьба подчеркнула, насколько геноцид гоблинов неуместен, когда ты делаешь сказку.
Итак, к лету 2019 обросшая кучей механик The StoryTale была доделана и выпущена в Steam. За период разработки персонажи научились останавливать время, летать над землей, проходить сквозь стены, становиться гигантами, сметающим все на своем пути, замораживать врагов, колдовать облака-ступеньки, дышать под водой и много другое.
С дочерью Ариной мы прописали мини-квесты с участием гоблинов, подсказки, она озвучила монологи от имени Маленькой Принцессы. Большая часть — в стихах (что потом еще аукнулось нам на переводах).
Но на этом история её создания не закончилась, ибо впереди замаячила возможность выпустить ее на Nintendo Switch. Терять «независимость» при работе с крупным издателем мне не хотелось, и выпуск игры на Switch осуществлялся таким же инди-методом, как и сама её разработка. Получить Devkit от Nintedo в Россию самостоятельно очень сложно, но один мой знакомый — Слава Грис — все-таки это сделал магическим способом (а в сказках иначе и не бывает) и именно он выступил в роли моего издателя.
Я уже на собственном опыте познакомился с процедурой публикации игры в Steam — вы оформляете страницу, делаете билд, проходите очень скромную проверку, публикуете игру. В этом процессе есть, разумеется, сложности и подводные камни, но с тщательностью просмотра игр, выпускаемых на Switch, Steam не сравнится. Работа над портом началась еще в январе 2020го, а релиз состоялся сегодня — 30 июня 2020го. Что же заняло столько времени?
Первый запуск The StoryTale на девките состоялся весьма быстро. Игра сразу заработала на необходимых 60 кадрах/секунду. Но на больших уровнях производительность могла снижаться раза в два и пришлось дополнительно оптимизировать код.
Дальше череда проверок Nintendo выявила еще ряд нюансов. Сотрудники Nintendo очень внимательно изучают игры, которые разработчик желает опубликовать в их магазине, и разворачивают предлагаемые билды по самым разным, иногда весьма абсурдным, а иногда и не очень, причинам. Ситуация с COVID19 делала эту процедуру еще и чертовски медленной.
Например, изначально обучение в The StoryTale было представлено анимированными изображениями где на таком интерфейсе демонстрировалось, какие кнопочки нажимать:
Стоит также иметь ввиду, что Nintendo очень щепетильно относятся к названиям собственных кнопок. Так, например, на Switch, оказывается, отсутствуют триггеры. Слово триггер использовать нельзя. Так же нельзя использовать Press Any Key — должно быть четкое указание кнопки, например Press A to Play. Когда игра уже переведена на кучу языков, такая смена формулировок может вызвать отдельную головную боль. Интуитивно догадаться какой порядок слов нужно выстроить на европейских языках еще можно, а вот китайский — это подстава. Благо у Nintendo есть определенный словарь их терминов на нескольких языках, который, может быть, кому-то и поможет.
Также сотрудники Nintendo проводят безумное количество опытов над вашей игрой. Я не могу представить, что еще с ней пытались сделать перед тем, как развернуть очередную сборку по причине того, что игра отображается не на весь экран если подключить ее к телевизору с разрешением в… 480р. Где взять такой телевизор, чтобы проверить в чем косяк самостоятельно — тот еще вопрос, так что решено было исправлять этот баг почти вслепую, запуская сборку на ПК и меняя разрешение монитора на 480р.
Ещё в требованиях Nintendo четко указано, сколько раз игра может писать сохранения в минуту. При тестировании оказалось, что что иногда игра сохранялась аж 42 раза за 60 секунд. В ПК-версии для упрощения тестирования и контроля происходящего процесса в любой сохраняемый параметр сразу открывает файл, записывается туда и закрывает файл. Что оказалось неприемлемым для прохождения игры проверок от Nintendo.
Было общее решение от стороннего разработчика, но требующее изменения архитектуры. В итоге мне оказалось проще предварительно записывать все сохраняемые параметры в промежуточную структуру данных и потом записывать все разом в файл.
А теперь вернемся к курению. Когда столько раз получаешь отказы от отдела тестирования Nintendo — уже может потянуть расслабиться не очень полезным способом.
Некоторые анимации были добавлены, чтобы, во-первых, разнообразить поведение гоблинов, когда они бездельничают, а во-вторых, чтобы все-таки придать их образу чуть больше негативного окраса. Но при релизе на Nintendo это стало проблемой.
Дело в том, что Steam не требует получения и указания возрастных рейтингов, в ту очередь как для релиза на Nintendo это процедура обязательна. Возрастной рейтинг присваивается цифровому продукту в следующем порядке: после регистрации названия продукта в магазине Nintendo, издателю выдается «тикет» в рейтинговую систему IARC. Там издателю предоставляется здоровенная анкета, с пунктами вроде «есть ли в вашей игре секс?». Если поставить галочку, напротив «да», то анкета обрастет еще бОльшим количеством вопросов о том, какие части тела персонажей вы показываете и насколько близко расположена к ним камера. В зависимости от ваших ответов, игре присваивается рейтинг в большинстве стран — Pegi, ESRB, ACB, Russian (у нас не особо задумывались над наименованием, да) и так далее.
Немного интересной информации: для получения CERO (рейтинг в странах Азии) нужно заплатить две тысячи евро, записать прохождение игры на японском, ужатое в один час, и прислать им в Китай… DVD с этой записью.
Кроме очевидного секса и насилия в анкете есть куча вопросов про алкоголь и про злосчастные сигареты. Так вот, без сигарет у нас стояла галочка только напротив cartoon violence, что давало игре в некоторых странах 3+, а ESRB вообще пометил ее как «для всех возрастов». Но стоило упомянуть, что в игре есть раковые палочки, как возрастной рейтинг почти во все странах взлетел до 18+, что является неприемлемым, когда ты собираешься выпустить в e-shop добрую сказку, где нельзя никого убивать.
Выбор в этой сложной ситуации был прост — гоблины бросают курить раз и навсегда. Если они захотят подымить, то пускай бегают в версию для Steam, у нас же тут все-таки семейная консоль.
Если вам приглянулась сказка-платформер The StoryTale — добро пожаловать в Steam или e-shop, где результат пяти лет моей работы уже доступен.
А курить вредно не только для здоровья, но и для рейтинга. Так что бросайте это дело или даже не начинайте и спасибо за чтение!
Страница игры в Nintendo eShop: www.nintendo.com/games/detail/the-storytale-switch/
Страница игры в Steam: store.steampowered.com/app/629230
- 30 июня 2020, 18:16
- 016
19 комментариев