Подготовка игры к портированию на этапе разработки PC-версии

Всем привет!

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

Кто такой релиз-менеджер

Мне 33, проживаю в Питере и работаю в геймдеве уже более 7 лет. Но моя карьера началась в отделе по работе с красными клиентами (пиратами) компании Microsoft. Я всегда мечтал работать в индустрии разработки игр, но опыта у меня совсем не было. Однако, пара лет настойчивых откликов на разные позиции в Saber Interactive возымели свой эффект. Теперь же я тружусь на позиции релиз менеджера в tinyBuild.

Если коротко, то релиз-менеджер — это “The Last Man Standing”, тот человек, который нажимает заветную кнопку публикации игры в магазине. Это человек, который разбирается в бизнес-процессах каждой из платформ и знает, где и что нужно сделать. К сожалению, все консольные платформы имеют достаточно сложные бюрократические процедуры, начиная от регистрации игры, подключения сервисов, отправки на сертификацию и заканчивая всевозможными обновлениями метаданных.

Рабочий день релиз менеджера состоит из кучи различных задач. Вот примерный список:

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

Зачастую релиз менеджеров можно встретить в издательствах или крупных студиях. Такие компании выпускают большое количество различных игр в течении небольшого промежутка времени. Обычно все выходит одновременно, на всех платформах, со всевозможными дополнениями, скидками и предзаказами. Большое количество переменных требует, чтобы ими занимались отдельные люди, которые досконально разбираются в процессе.

О чем стоит сразу задуматься

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

На что же стоит обратить внимание в первую очередь?

Планирование фичей и сервисов

Мы все понимаем, что у нас не всегда есть возможность оценить потенциал портирования проекта на этапе производства ПК версии. Но если все же вы видите призрак портирования на горизонте, следует задуматься о следующих вещах:

  • Какие сервисы и фичи вы видите на консолях (Трофеи, Мультиплеер, Присутствие и т.д.)
  • Поддерживают ли все платформы выбранные фичи и сервисы
  • Насколько долго вы планируете поддерживать вашу игру
  • Будут ли поддерживаться выбранные сервисы, фичи или плагины от сторонних разработчиков на протяжении цикла вашей поддержки. Это достаточно важный пункт, т.к. некоторые сервисы могут устаревать и переставать поддерживаться, а вам нужно будет как-то с этим жить.

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

Локализация:

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

  • EFIGS: английский, французский, итальянский, немецкий, испанский
  • Русский
  • Бразильский португальский
  • Японский
  • Китайский традиционный и упрощенный
  • Корейский

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

Если говорить о качестве локализации то, на самом деле, у платформ редко бывают претензии к качеству переводов (разве, что пару раз Nintendo просили изменить некоторые формулировки, но это скорее исключение).

Начнем с типичного примера, использующего терминологию платформы:

Подготовка игры к портированию на этапе разработки PC-версии
Как вы думаете, как нужно назвать это устройство для Xbox One/S/X на русском языке?
Контроллер
Геймпад
Джойстик
Нет верных ответов

Ответ:

Если вы выбрали вариант “контроллер или “джойстик”, то поздравляю — вы не прошли сертификацию.

Да, данное устройство для Xbox называется “геймпад”, а полное и более рекомендованное название: “беспроводной геймпад Xbox”.

А теперь внимание: аналогичное устройство для PlayStation называется “контроллер”!

Если вы продолжите изучать правила наименования, то заметите, что для каждой платформы будут свои требования к названию того или иного устройства, процесса и т.п. Из этого следует, что вам стоит задуматься о том, чтобы ваша система локализации выбирала необходимые термины самостоятельно при сборке под ту или иную платформу. Ручная замена файлов под каждую консоль не приведет ни к чему хорошему. По статистике более 60% всех провалов сертификации связаны именно с использованием неправильных названий и/или брендинговых инструкций.

Мультиплеер:

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

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

Кросс-Мультиплеер:

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

  • Пользователи должны иметь возможность идентифицировать пользователей только со своей платформы. Т.е. пользователь PlayStation должен иметь визуальную возможность идентифицировать, что к нему присоединился другой пользователь PlayStation и/или игрок с какой-то другой платформы, но другая платформа не должна идентифицироваться.
  • У пользователей должна быть возможность выбрать хотят ли они играть в кроссплей или нет и продолжить дальнейший матч в соответствии со своим выбором.
  • Вы не должны передавать геймер таги, имена пользователей и подобную информацию на другие платформы.
  • Пользователи должны иметь возможность написать жалобу на любого игрока.
  • Всегда следовать правилам нейминга и брендинга каждой платформы.

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


Моды:

Моды являются одной из самых сложных фичей для консолей по нескольким причинам:

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

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

Заключение

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

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

4242
34 комментария

К сожалению, статья очень поверхностная. Да и большинство описанных «фичей» наверно подошли бы для раздела GameDev (чтоб начинающие и инди заглянули бы за их горизонт).

Всего 2 большой гемор в разработке кроссплатформы
1) сделать сразу правильное управление (от обычного UI до взаимодействия с интерактивными объектами на уровне механик).
2) сделать правильную систему сейвов (а в идеале обязательно асинхронную), чтоб можно было на уровне абстракций работать разными файловыми системами.

4

Есть ли какие-то рекомендации для кросс-платформенных сейвов в контексте Unity?

Как вы понимаете, совсем в детали я не могу уходить т.к. большая часть информации находится под NDA от платформ.

Комментарий недоступен

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

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

Как с этим на консолях? Какие системы аналитики поддерживаются (если вообще разрешены)? Какие требования и ограничения? Насколько сложная интеграция? Имеет ли вообще смысл заморачиваться? 

2

К сожалению консоли предлагаю очень мало аналитики или она вообще отсутствует.

Если вы маленькая команда, я бы рекомендовал об этом вообще не думать на этапе разработки. Всё равно релизить не в раз.

1