Как мы Redeemer на PAX возили

Первый опыт посещения крупной выставки.

Всем привет! Я Дмитрий Качков, руководитель компании Sobaka Studio и наша команда занимается созданием инди-игр. Наша первая игра Redeemer уже вышла 1 августа в Steam, собрала критику, отзывы, стримы и летс-плеи. Уже улёгся хаос связанный с выпуском, мы запустили в производство новый проект и настало время делиться впечатлениями о производстве нашей первой игры, которой мы все и я в частности очень гордимся.

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

В качестве первой статьи я хотел рассказать на мой взгляд самую захватывающую историю о том, как мы возили нашу игру на конференцию PAX в бостон в марте 2017 года. Это было очень эмоционально и накал испытанного адреналина мало с чем можно сравнить (хотя, уверен, много кому покажется. что ничего и особенного).

Как мы Redeemer на PAX возили

Введение

Redeemer: Violence Awakened
Redeemer: Violence Awakened

Игру Redeemer, начиная с марта 2016 года, мы делали совместно с партнёрами/издателями (Gambitious Digital Entertainment ныне переименованные в Good Shepherd Entertainment). Организационной и PR-деятельностью занимаются всецело они, то есть вся поездка, билеты, проживание, такси и прочее они обеспечивали, и нам тут нечего было волноваться. Наша задача была в первую очередь собрать рабочий билд и самим собственно показывать игру людям, рассказывать о ней прессе, давать интервью и записывать в блокнотик фидбеки.

На кануне

Самолёт будет в среду утром в 7:40 утра.

Всё должно быть по плану
Всё должно быть по плану

Понедельник утро, билд собран, протестирован, запакован и отправлен.

Середина дня, приходят новые voice over’ы (голосвая озвучка реплик героев, которые попадают в демо). Естественно, горит желание их вставить в демо, ведь с голосами-то героев сильно эффектнее показывать чем без. Дело плёвое: добавляем озвучку попутно выясняя что прислали нам звуки в 32 бита, а Unreal не понимает wav-файлы в таком качетсве. Прошу переприслать в 16 бит.

До конца дня всё доделываю, запаковываю отправляю коллегам за океан. У них времени проверить нет, они тоже все вылетают на конференцию.

Во вторник прихожу на работу расслабленный, готовимся к поездке, распланировали ночь, сон и прочее. В середине дня приходит первый звоночек: один из заморских коллег, кто смог запустить и потестить чуть-чуть говорит: «игра начинает немного притормаживать через 10 минут игры». Ну, думаю, не страшно, показалось человеку, наверное. До этого тестировали билд, и всё было нормально. Времени тестировать ещё раз и искать, что же тормозит нет, так что просто работаем, доделывая всё что можно ещё доделать.

Локально — всё нормально
Локально — всё нормально

Вторник 23:00 выкладываю последний билд на Dropbox, параллельно запуская его и видя, что игра реально подтормаживает. Ну делать нечего, уже до самолета всего ничего, еду домой.

Приключения начинаются

Пока еду в метро, меня озаряет, и я понимаю в чем проблема: при добавлении диалогов я исправил баг, который заключался в том, что враг не обрывает свою фразу если его в это время убить. То есть, он увидел игрока, кричит: «стоять, сейчас зарежу», а я его на первом слове убиваю и он уже лежа на земле продолжает договаривать.

Как я пофиксил этото баг? Ну конечно же вместо просто проигрывания звука я его привязываю к человечку, а когда человечек умирает, останавливаю всё, что привязано. Штука которую я не учёл, это то, что не только произносимые фразочки стали привязываться, но и любые звуки вообще (например звук попадания по врагу). Unreal не полюбил спавнить настолько много компонентов и стал захлебываться. Разница в одну строчку как именно спавнятся звуки стоила нам того, что билд стал тормозить, причём на самом деле ощутимо.

Надо пересобрать билд

Ладно, приезжаю домой, срочно ставлю выкачиваться весь проект на домашний комп, сон конечно сразу идёт лесом, жду пока выкачается, параллельно нахожу строчку и меняю её на нужную (возвращая баг который я изначально фиксил, но который не имеет значения для демо). Примерно в 3 часа ночи проект наконец выкачался, я восстановил батники и прочие скрипты для сборки и нажал заветную сборку, ну, думаю, сейчас за часик соберётся запакую и поеду. Но нет, проект только выкачан, а это значит что шейдеры и материалы ещё не были ни разу собраны и скэшированы движком. Итог: 4 ночи, такси уже ждёт с моим коллегой, билд ещё билдится. Даю инструкции жене (какую папку в итоге класть на «Яндекс.Диск»), и уезжаю.

Лог сборки
Лог сборки

Сразу скажу, что летели мы через Хитроу с пересадкой в 4 часа. С собой у меня был только iPad (да, ноутбук я не взял, не спрашивайте почему, не хотел я его брать и всё тут). Коллега ноутбук с собой взял (ибо хотел ещё успеть поработать на месте).

В «Домодедово»

Приехали в «Домодедово», прошли все сканы и досмотры, сидим ждём вылета. Потихоньку начинаться посадка, звоню жене, как там, что там, встает, диалог:

— Что там на мониторе? Буквы бегут?

— Не, не бегут, какие-то красные буквы.

— Присылай фотографию.

— Как я тебе пришлю фотографию у тебя же телефон «дедовский»?

— Кидай в Skype кому-нибудь.

В аэропорту
В аэропорту

В это время встаю в очередь на посадку и потихоньку топчусь в конце очереди, присылает, смотрю скрин. Build Failed. Чёрт, как же так, смотрю внимательнее: фейл только при отправке на Steam сервер, сам билд вроде собрался. Звоню:

— Скопируй папку ххх в папку ууу.

— Не понимаю…

— Малышка, очень важно, давай, давай, три кнопки нажать.

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

— О получилось, копируется.

— Фуф , — захожу в самолет, а связь обрывается.

Прилетели в Хитроу

Переходим поближе к воротам на посадку до бостона. 9 утра (по Москве), вылетать через три часа. Подсоединяюсь к wi-fi захожу на «Яндекс.Диск» через веб-браузер, вижу архив, на месте, залился. Пишу коллеге (художнику в Калининграде), чтобы он скачал этот архив и протестировал. Он просыпается, ворчит, качает, запускает. Все работает отлично, прошу его полностью отключить Steam. Тут надо сделать оговорочку: очень важно для конференции запускать билд без левого софта, потому что там нет интернета и нет возможности качать всего что надо, и меня об этом предупреждали партнёры на опыте.

Через полчаса он сообщает мне, что игра крашется на старте. Чёрт, как же так? Думаю. Говорю: «Запусти предыдущий билд (который с тормозами), без Steam». Через полчаса он пишет: «Всё работает, только тормоза появляются » Ладно, билд на Unreal состоит из двух частей: экзешник и пак с контентом (в том числе скомпиленные блюпринты), строчку я поменял в экзешнике, а с контентом может быть в теории все что угодно, прошу взять exe-файл из нового билда и положить его в старый. В итоге, всё работает и не тормозит. Попросил залить компиляцию из двух билдов на «Яндекс.Диск» . До вылета из Хитроу оставалось полчаса.

Прилетели в Бостон

Бостон
Бостон

Прилетали мы в Бостон в среду ближе к вечеру, добрались на метро до отеля, перекусили в дешёвом фаст-фуде возле отеля, стемнело, познакомились с партнёрами, наконец, вживую и легли спать. В четверг был целый день на подготовку к конференции (так называемая застройка), а в последующие три дня сама выставка. В отеле мы скачали последний билд на флешку и с утра поехали на застройку.

Первый запуск

Компьютеры привезли в обед, всё подключили уже после. Итак, время Ч наконец запустить игру. Запускаем... не запускается.

В чем дело — фиг знает. Уже не помню как, разобрались, не установлены visual studio redistributable — ну, библиотеки Microsoft, которые требуются большому количеству игр. Сам не очень понимаю, что это, зачем, и почему оно само не происходит, но вечно с ними проблемы. Смотрим, а на телефоне wi-fi поймался. Хоть что-то, ведь у компьютеров модуля wi-fi всё равно нет, не подключится. Думали, думали, волновались, волновались, далее коллеги подсказывают, что если телефон на Android подключить его по USB, компьютер сможет к сети подключится. Попробовали. Работает.

VC Redistributables

Качаем redistributable, устанавливаем. Ура, запускается, всё нормально (вроде бы). Работает как то средненько, но в целом нормально. Далее, один из наших коллег (ребята тоже показывают свои игры) подсказывает проверить, какая видеокарта определилась системой, а то игра может запускаться на встроенной. И действительно — запускается игра на встроенной, ерунда какая, переключаем на нормальную, мощную (очень мощная NVIDIA, специально заказанная, ибо большая выставка и всё должно быть идеально). Запускаем игру, но она просто дико тормозит. Почему? Да потому что игра по умолчанию берёт самое большое разрешение которое поддерживается видеокартой, а она мощная — 4К выдает.

4К — наше все
4К — наше все

Опции не работают

В игре много пост-процесса, вот оно всё и натужилось. Ну, делов-то: сейчас разрешение в опциях приберём. Захожу в опции, но разрешение не меняется.

Рассказываю партнерам (PR-специалистам), сказать что они расстроились — #ничего не сказать: привезли такую аппаратуру, крутой стенд сделали, много сил потратили, а по итогу разрешение поменять нельзя.

Ну, как так-то
Ну, как так-то

У меня очередная волна паники потихоньку спала, думаю. Ну, в целом, задача просто откуда-то взять save-файл, в котором прописано другое разрешение. В отеле есть ноутбук, и ещё целая ночь впереди.

Подменяем сейв

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

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

PAX
PAX

Подходим к нашему стенду, запускаем компы, вставляем флешку, копируем сейв, тестируем . Все работает! Ура!

Катарсис
Катарсис

Первые игроки

Степаныч
Степаныч

Сначала было тухленько, потому что в первую очередь конечно игроки пришли к Bethesda, Blizzard и другим Sony с Microsoft. Но к обеду подтянулись. Сначала приходилось каждого за локоть подводить, но потом уже поток возрос.

Игроки знакомятся с игрой
Игроки знакомятся с игрой

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

Впечатления

Самые позитивные эмоции были когда приходили афроамериканцы и дико угарали, когда наш герой Василий в очередной раз эффектно припечатывал врагов об стены или вырывал кадыки.

Наши пиарщики сработали по отлаженной схеме и приводили раз в час представителя той или иной прессы. Совсем уж крупные СМИ не заходили, но Hardcore Gamer, Destructoid, Games Zone, Everything Action и другие были. Мы им показывали игру, с кем-то записывали интервью. Ну, в общем, к концу третьего дня язык совсем отсох.

PR устал
PR устал

Заключение

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

Так что весь мой пост про то, чтобы не паниковать. По возможности никогда. Паника с лёгкостью может разрушить всё, что ты с таким упорством строишь на протяжении долгого времени.

4040
43 комментария

Ссылка на игру в стиме, как говорится "а вдруг...":
http://store.steampowered.com/app/447290/Redeemer/

Если так нельзя и реклама, подскажите пожалуйста, я уберу!

11
Ответить

Тем кому интересно наше творчество ссылки на соц. сети:
Больше всего инфы о том что у нас происходит во вконтакте - https://vk.com/sobakastudio
Твиттер - https://twitter.com/SobakaStudio

Страничка Redeemer на Facebook - https://www.facebook.com/redeemerthegame/

Ответить

Очень круто было прочесть данную статью. Автор, спасибо, ты не один)
Мы похоже собирали билд перед DevGAMM'ом. Всё в ночи, приехали, взяли два ноута, а джойстики с которых происходил инпут вдруг не заработали. Не работали и всё, хоть тресни. Оказалось тьма тьмущая с дровами, разобрались, на одном ноуте всё заработало под утро.
Выставились на стенде, подключаем монитор (специально на тачке ехали 800 туда 800 обратно чтобы моник взять), а его ноут не видит. А другой ноут, который не может в джойстик, моник определяет.
Пришлось на одном ноуте с монитором включать запись геймплея, а с другого (рабочего ноута) народ играл.
Так что да, главное, не паниковать.

5
Ответить

Почему читая статью складывается впечатление что люди не то что в геймдеве, -- в программировании не шарят?
Не знать какой софт требует твое детище...

2
Ответить

Наверное потому, что в геймдев сначала идут, а потом разбираются, что там вообще надо уметь. В инди по крайней мере, как мне кажется. Да и не инди.
Недавно была веселая история, она наверное не совсем в тему, но тем не менее. Есть игра - сабнаутика. На ПК кажется, уже вышла из раннего доступа, на консоли ещё в нем. Там была проблема с невозможностью сохранится после крупного обновления. Спустя почти месяц ребята выяснили что сейв происходит. Но только спустя Х часов, где х - значение часового пояса. Вот как вообще можно такой баг породить?))
Я живу в часовом поясе +12, и меня едва не разорвало от противоречивых чувств)

2
Ответить

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

2
Ответить

ты никогда не был в разделе ПРОЭКТЫ на gamedev.ru?
там таких задушевных историй каждый день строчат

1
Ответить