Gamedev Андрей Верещагин
9 158

Что нужно знать о портировании игр на консоли

Рассказывает основатель студии Mandragora.

В закладки
Аудио

Для многих инди-разработчиков консоли остаются неизведанной территорией. В то время, как выпуск игры на Steam — относительно простое и понятное дело, релиз на PS4, Xbox One и Nintendo Switch сопряжён с трудностями как бюрократическими, так и техническими.

Мы пообщались с Евгением Кистеревым, основателем студии Mandragora, которая 26 февраля выпустила на Switch свой «рогалик» SKYHILL. Он рассказал, к чему готовиться тем, кто хочет выпустить свои тайтлы на консоли.

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

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

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

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

SKYHILL

Я хочу выпустить свою игру на PS4, Xbox One и Nintendo Switch сразу. Мне надо связываться с платформодержателями? Какие данные они от меня потребуют?

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

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

Могут ли платформодержатели попросить внести какие-то изменения в игру?

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

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

Через какие вообще бюрократические процедуры нужно пройти, чтобы выпустить игру на консолях?

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

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

Freaky Awesome

Вообще, половина из критериев сертификации могла бы относиться и к просто качественному продукту для ПК. Что произойдёт, если у пользователя отключится геймпад во время игры? Если он нажмёт на кнопку выключения устройства в любом месте игры?

Вторая же половина относится к SDK платформ. Ваша игра должна идеально работать в экосистеме ачивок, сохранений, профилей пользователей, облачных сохранений и так далее. Если бы часть этих требований предъявлялось к играм, которые выходят на Steam, то все бы от этого только выиграли.

В среднем, если всё складывается удачно, сколько времени уходит на бюрократические процедуры? С какой консолью проще, с какой сложнее?

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

Что касается PS4 и Xbox One, то это — уже развитые платформы с кучей механизмов и они требуют гораздо больше серьёзного подхода и технического уровня. У тех, кто давно занимается портированием, есть самописные «обёртки», к которым привязывается любая игра, что сокращает время портирования в разы. Проблемы возникают когда пишешь это в первый раз. Это что касается технической части.

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

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

Nintendo и Microsoft сейчас более открыты для общения, если посмотреть в целом. У Xbox есть программа ID@XBOX, которая направлена как раз на небольших разработчиков. Nintendo тоже благосклонно относится к инди-разработчикам, поддерживают интересные проекты. У них же даже есть направление Nindies.

Для портирования мне ведь обязательно потребуется девкит? Где его достать?

Тяжело ответить прямо. Скажу лишь, что для разработчика из СНГ это не самая тривиальная задача.

Девкит PlayStation 4

Могут ли быть какие-то сложности из-за выбранного мной движка? Или без разницы?

Самые распространенные движки, конечно же, поддерживают сборку под консоли. Если вы делаете игру на Unreal или Unity, то проблем точно не будет. По крайней мере, сам движок не доставит проблем. Насколько я знаю, у Game Maker тоже эти проблемы решены (стоит лишь уточнить насчёт полноценной поддержки Nintendo Switch). А другие движки я бы и не советовал использовать в наше время кросс-платформенной разработки.

Мы разрабатываем все наши игры на Unity. Движок всегда позиционировался как кросс-платформенный и в этом его главный плюс.

Если я сам ничего не понимаю в портировании, куда можно обратиться? К издателям?

Существуют издатели, которые специализируются на портировании и выпуске игр на определённые платформы. Так мы поступили с нашей игрой Freaky Awesome. Мы обратились к нашим партнёрам из BadLand в Испании.

Игру на Steam мы выпускали сами, а вот портировать на консоли после болезненного опыта SKYHILL мы не решились и отдали Xbox One, PS4 и Nintendo Switch издателю. Они полностью взяли процесс портирования и сертификации на себя. Также существуют аутсорс студии, которые за фиксированные деньги предоставляют портирование и тестирование на соответствие требованиям сертификации.

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

А со SKYHILL было что-то ещё болезненное, кроме технических проблем, описанных выше, и случая с геймпадом?

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

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

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

На консолях нет такого многообразия магазинов цифровой дистрибуции, как на ПК. По сути, платформодержатели — монополисты. Сказывается ли это на проценте от выручки?

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

Есть ли вообще смысл для инди выходить на консолях? Можно ли на них заработать больше, чем на ПК?

А причём тут «инди или нет»? Я не вижу разницы между крупной студией и инди из пары человек в плане бизнеса. Если есть возможность выйти на консоли, если ваша игра приносит деньги с ПК, то с консолями можно начать зарабатывать больше.

Разработчик игр создаёт интеллектуальную собственность. Вполне разумно постараться обеспечить как можно больше источников долгосрочных доходов для созданного продукта. Например, для SKYHILL Nintendo Switch — уже шестая платформа (игра уже вышла на Steam, IOS, Android, PS4 и Xbox One) и на каждой из них мы зарабатываем. Хотя игра вышла на Steam в 2015 году, она всё ещё живёт.

Freaky Awesome вышла на Steam, PS4 и Nintendo Switch. Готовится к выпуску на Xbox One. Со следующей игрой мы надеемся на одновременный релиз на ПК и всех консолях.

Как устроен фичеринг в консольных магазинах? Как можно сделать свою игру более заметной?

У каждой платформы свои правила относительно фичеринга. Обычно на старте игра попадёт в списки новинок. А дальше всё зависит от конкретной игры и общения с менеджерами платформы.

Какого-то фиксированного для всех количества показов на главной, как в было Steam, на консолях нет?

Его на Steam ведь уже давно нет. Есть общие правила для показа новинок, игр со скидками. А насчёт фичеринга нужно договариваться.

Кто назначает цены на консольные игры? Могу ли я сам управлять ими и устраивать распродажи?

Как и на других платформах, таких как Steam и AppStore, управление скидками лежит на плечах издателя игры, но также есть возможность обсудить планы по скидкам с менеджером от платформы и запланировать что-то специальное под определённые события.

А как обстоят дела с региональными ценами на разных консолях? Обязательно назначать их?

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

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

Окончательное решение всегда за издателем игры, а не платформой, конечно.

На PlayStation 4, например, для мультиплеера в одних играх требуется PS Plus, а в других — он не нужен. Кто принимает решение о том, будет ли подписка обязательной для сетевых режимов: разработчики или платформодержатели?

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

В целом, какие инструменты предлагают платформодержатели для отслеживания статистики и управления страницей игры?

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

А если вам потребуется какая-то определённая информация, которую платформодержатель не предоставляет по умолчанию, вы можете её запросить?

Если вы можете объяснить, зачем вам это нужно и у платформы есть возможность предоставить вам информацию, то стоит попробовать. Причём это касается не только консолей, но и Steam, например.

Почему многие инди-студии выпускают свои игры именно на Nintendo Switch? Это связано с политикой самой компании в отношении независимых разработчиков, архитектурой консоли или условиями, которые предлагает Nintendo?

Здесь именно весь комплекс факторов. Многие издатели ААА не имеют возможность оптимизировать свои игры под слабые устройства. Вполне логично, что Nintendo нужно было идти к разработчикам инди-игр и просто менее требовательным к железу проектам, чтобы предложить своим игрокам больше выбора, после того как они пройдут Zelda и Mario. Также портирование на Nintendo Switch технически проще, если не считать оптимизацию.

А какие именно проблемы с оптимизацией возникают при разработке на Switch?

У небольших игр, как правило, не должно быть проблем, если они хорошо оптимизированы. В случае со SKYHILL и Freaky Awesome проблем с оптимизацией не было вообще.

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

#опыт #беседа

{ "author_name": "Андрей Верещагин", "author_type": "editor", "tags": ["\u043e\u043f\u044b\u0442","\u0431\u0435\u0441\u0435\u0434\u0430"], "comments": 28, "likes": 138, "favorites": 174, "is_advertisement": false, "subsite_label": "gamedev", "id": 41239, "is_wide": false, "is_ugc": false, "date": "Wed, 27 Feb 2019 19:42:42 +0300" }
{ "id": 41239, "author_id": 22254, "diff_limit": 1000, "urls": {"diff":"\/comments\/41239\/get","add":"\/comments\/41239\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/41239"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64954 }

28 комментариев 28 комм.

Популярные

По порядку

Написать комментарий...
16

Для портирования мне ведь обязательно потребуется девкит? Где его достать?
Тяжело ответить прямо. Скажу лишь, что для разработчика из СНГ это не самая тривиальная задача.

Ответить

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

0

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

Ответить

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

0

Я не знаю зачем ты ответил на вопрос 😂

Ответить
5

... или же ваш издатель может заняться портом ;) Жень, отлично расписал!

Ответить
0

Для нас вывод таким и оказался. Ну теперь я спокоен, что ты прочитал статью и не отписался мне в личку. Как эксперт по нарушению NDA :D

Ответить
5

Почему многие инди-студии выпускают свои игры именно на Nintendo Switch?

Потому что слишком мало полноразмерных игр и игроки оттого очень голодные. Купили консоль, прошли Марио с Зельдой - и всё, наступил ногеймз, рука сама собой потянулась к инди. Причем цены по сравнению со Стимом можно накручивать очень высокие, покупатель к такому привык. Грех упускать такую золотую жилу.

Ответить
4

Спасибо, полезная инфа!

Ответить
1

«У каждой платформы есть много критериев качественного продукта и необходимо им соответствовать. В вашу игру будут реально играть, будут тестировать на техническое соответствие стандартам.»

Интересно, как Фалавут 76 прошёл сертификацию? Или у платформ настолько низкие критерии?
Или политика двойных стандартов.

Ответить
2

Почему бы и нет? На тот же PS4 такую срань пропускали, настоящий ассет флип из Стима

Ответить
0

я вот почти так же ахуевал когда инквизицию купил за фул прайс и запустил

Ответить
1

Интересно, как Фалавут 76 прошёл сертификацию?

Ну а что там у него с ТЕХНИЧЕСКИМ соответствием не так? Небось ачивки работают, отключение джойпада нормально обрабатывает, с облачным сохранением никаких проблем - значит никаких претензий :)

Ответить
1

Честно говоря, так и не понял, в чем трудности (кроме QA) и почему на портирование надо месяцы. Причем это говорят все, так что я вполне верю. У меня нету выпущенных игр на консолях, но на запуск игры (https://www.youtube.com/watch?v=VhVEgxwmlXg) на Switch'e я потратил день, на мобилках - два.

Я пока наивный и продолжаю считать, что для базового порта надо потратить день на разбирательство с SDK/подписями/сертификатами, час на добавление схемы управления в Rewired, а потом - просто нажать кнопку "Собрать" в Юнити, и все волшебным образом заработает.

Но, кажется, я ошибаюсь в чем-то

Ответить
2

Когда то мы потратили человеко-месяц чтобы поднять fps в ПатиХард2 на иксбоксе с 15 до 30. Всё из-за особенностей видеокарты консоли. 🤷‍♀️

Ответить
0

Интересно, спасибо за информацию.

Ответить
0

Я два месяца получал статус разработчика PS4, получил, посмотрел на цену девкита - прослезился:)))

Ответить
0

Насколько я помню в первые года жизни PS4 он стоил 2500$, а сейчас сколько?

Ответить
1

Не могу сказать ибо NDA и все такое.. но сейчас более чем 2500 дев кит стоит:)) + у них с оплатой все не так тривиально. В смысле что не просто карточкой оплатить:) поэтому я как то для себя решил допилить игру и уже потом заказать девкит, чтобы на нем протестить. Было бы ещё достаточно времени, а то все работа, работа:)))

Ответить
1

Кстати сейчас посмотрел, они должно быть снизили цены на дев киты.. сейчас примерно стоит столько, сколько ты написал. Это за дев кит. Тест кит (который по сути required со стороны Сони для паблишинга, то есть можно не покупать дев кит, а купить тест кит, правда не будет дебаггинга) - тот и того дешевле стоит.
Цены адекватные стали, это хорошо..

Ответить
0

Правда нужно так же понимать, что жизненный цикл консоли подходит к концу.. так что надо уже потихоньку начинать ориентироваться на пс5

Ответить
0

Интересно. Мы тоже выпустили в феврале порт своей игры на switch но сами без издателя. Если у вас есть интересные кейсы про продвижению то поделитесь. Очень интересен этот вопрос. Игра у нас тоже уже везде портирована на все консоли и даже окулус. А вот на switch первый раз выпускаем.

Ответить
0

Как там с ДевКитами если не секрет?) Все еще сложно получить в России?

Ответить
1

Сложно. Используем хитрые схемы

Ответить
0

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

Ответить
0

Что нужно знать о портировании игр на консоли

СЛОЖНА

Ответить
0

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

Ответить
0

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

Не можешь или не хочешь делать сам - передай на аутсорс)

Ответить
0

Спасибо за статью. Хоть детальной информации немного, тем не менее, полезно

Ответить
0

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

Ответить
0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } } ]
Гейб Ньюэлл наконец-то анонсировал то,
чего все так долго ждали
Подписаться на push-уведомления