Что значит портирование игр
Что нужно знать о портировании игр на консоли Статьи редакции
Рассказывает основатель студии Mandragora.
Для многих инди-разработчиков консоли остаются неизведанной территорией. В то время, как выпуск игры на Steam — относительно простое и понятное дело, релиз на PS4, Xbox One и Nintendo Switch сопряжён с трудностями как бюрократическими, так и техническими.
Мы пообщались с Евгением Кистеревым, основателем студии Mandragora, которая 26 февраля выпустила на Switch свой «рогалик» SKYHILL. Он рассказал, к чему готовиться тем, кто хочет выпустить свои тайтлы на консоли.
Предположим, я сделал игру для ПК, а через пару лет решил, что неплохо было бы портировать его на консоли. Возникнут ли у меня какие-то проблемы при переносе игры на другую платформу? Нужно ли думать о потенциальном порте во время разработки?
Подумать о порте, не имея предыдущего опыта, не получится. Но некоторые вещи всё же можно предусмотреть. Первым делом я бы проследил за тем, что ресурсы игры грузятся ассинхронно и игра никогда не подвисает на одном кадре больше чем на секунду, даже во время загрузки локаций.
В случае, если ваша игра сделана на Unity, то, конечно же, придётся перейти на одну из последних версий движка. Очень часто с этим не возникает никаких проблем. Естественно, игра должна идеально поддерживать управление с геймпада во всех GUI и механиках.
Для SKYHILL нам потребовалось полностью переработать управление, перерисовать интерфейсы под управление с геймпада. Также во время создания этажей наша игра «зависала» на несколько секунд, перед тем как начать загрузку. Пришлось переписывать механизм генерирования контента так, чтобы за один кадр генерировался только один этаж. Загрузка игры из-за этого увеличилась в два раза по времени, но стала более безопасной.
Я хочу выпустить свою игру на PS4, Xbox One и Nintendo Switch сразу. Мне надо связываться с платформодержателями? Какие данные они от меня потребуют?
Ну, во-первых, для разработки под любую консоль нужен девкит, который не купишь в обычном магазине. Первый шаг — стать официальным разработчиком под определённую платформу. У каждого платформодержателя свои правила. Но обычно сильно помогает наличие выпущенных проектов или прямые контакты с представителями платформ.
Я думаю, очевидно, что это возможно, только если у вас есть юридическое лицо. Заранее я бы посоветовал подготовить дизайн-документацию для игры на английском языке. Нам сильно помогли личные знакомства с платформами и поддержка от нашего издателя.
Могут ли платформодержатели попросить внести какие-то изменения в игру?
Обычно нет, если только в вашей игре нет чего-то, что не соответствует правилам определённой платформы. Я бы посоветовал не добавлять в игру изображения, геймпады и консоли, которые можно опознать однозначно как девайсы определённой платформы. Также контент должен соответствовать возрастным ограничениям, под которые сертифицирована игра.
У нас была забавная история, когда одна из платформ нашла в окружении игры геймпад, похожий на геймпад от другой консоли, и попросила исправить это. Для того, чтобы вы понимали, в SKYHILL есть сцена с повешенным мужиком, и к ней не было никаких претензий.
Через какие вообще бюрократические процедуры нужно пройти, чтобы выпустить игру на консолях?
Нужно пройти барьер и убедить платформодержателей в том, что вы — перспективный и реальный разработчик, с которым стоит сотрудничать. Получить возрастные рейтинги на игру. Ну и главный страх, который вы слышите от тех, кто занимался портированием — процесс сертификации.
У каждой платформы есть много критериев качественного продукта и необходимо им соответствовать. В вашу игру будут реально играть, будут тестировать на техническое соответствие стандартам. Любое несоответствие критериям платформы — отказ в сертификации и потеря времени. Есть довольно много историй, когда разработчики пытались пройти сертификацию 7-10 раз. И каждый раз это занимает недели.
Вообще, половина из критериев сертификации могла бы относиться и к просто качественному продукту для ПК. Что произойдёт, если у пользователя отключится геймпад во время игры? Если он нажмёт на кнопку выключения устройства в любом месте игры?
Вторая же половина относится к SDK платформ. Ваша игра должна идеально работать в экосистеме ачивок, сохранений, профилей пользователей, облачных сохранений и так далее. Если бы часть этих требований предъявлялось к играм, которые выходят на Steam, то все бы от этого только выиграли.
В среднем, если всё складывается удачно, сколько времени уходит на бюрократические процедуры? С какой консолью проще, с какой сложнее?
На данный момент портирование на Switch выглядит проще всего. Например, работающий полностью билд SKYHILL у опытных портировщиков от издателя получилось сделать за неделю. А через месяц игра уже была загружена на сертификацию, но это больше из-за внутренних причин. В целом, можно было управиться за пару недель.
Что касается PS4 и Xbox One, то это — уже развитые платформы с кучей механизмов и они требуют гораздо больше серьёзного подхода и технического уровня. У тех, кто давно занимается портированием, есть самописные «обёртки», к которым привязывается любая игра, что сокращает время портирования в разы. Проблемы возникают когда пишешь это в первый раз. Это что касается технической части.
С точки зрения бюрократии я бы не выделил какую-то платформу. Тут именно есть большая разница. Если подступаешься к этому вопросу в первый раз (как, наверное, большинство из тех, кому эта статья интересна), то очень часто просто не знаешь с чего начать.
Путаешься в порталах, настройке девкитов, ищешь, как получить устройство, если зарегистрирован в СНГ. Получаешь возрастные рейтинги для разных регионов опять же. Во всём этом предстоит разбираться.
Nintendo и Microsoft сейчас более открыты для общения, если посмотреть в целом. У Xbox есть программа ID@XBOX, которая направлена как раз на небольших разработчиков. Nintendo тоже благосклонно относится к инди-разработчикам, поддерживают интересные проекты. У них же даже есть направление Nindies.
Для портирования мне ведь обязательно потребуется девкит? Где его достать?
Тяжело ответить прямо. Скажу лишь, что для разработчика из СНГ это не самая тривиальная задача.
Могут ли быть какие-то сложности из-за выбранного мной движка? Или без разницы?
Самые распространенные движки, конечно же, поддерживают сборку под консоли. Если вы делаете игру на 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 или большим количеством визуальных эффектов это может стать также серьёзной проблемой. Это же касается игр, которые используют много физики или просто плохо оптимизированы. ПК прощает гораздо больше.
Почему так сложно портировать игры на PC — кратко и просто о долгом и трудном
Портирование игр — это действительно нелегкая задача для разработчиков, даже если речь идет о выпуске игры на ПК, где она, собственно, и разрабатывалась. И в этой статье один из основателей студии Disparity Games Джейсон Старк (Jason Stark) расскажет, с какими трудностями сталкиваются его коллеги по цеху.
Вопросы сооснователю Disparity Games задавали журналисты сайта PC Gamer. Материал подготовлен на основе англоязычной статьи.
Как портируют игры на ПК
Геймеры спрашивают, почему разработчики просто не могут выпустить ту версию игры, которую они делали на PC во время тестирования. А когда они делают это и выпускают забагованный билд, те же геймеры сетуют на ошибки и винят девелоперов в лени.
Чтобы понять всю сложность процесса, достаточно просто представить, как много компонентов имеет любой современный компьютер. Различное «железо», тысячи версий драйверов, и иногда очень трудно предугадать, как их связка поведет себя в тех или иных условиях.
Даже хорошо оптимизированные и отлаженные игры часто работают не так, как нужно, если компьютер имеет специфический набор ПО и комплектующих. В этом смысле вопрос «хорошего» или «плохого» порта — это скорее вопрос вложения денег и времени: сколько ресурсов готов потратить разработчик, чтобы обеспечить наибольшую совместимость? Впрочем, абсолютный идеал все равно недостижим.
Перенести игру на консоли тяжело, но в случае возникновения бага на одном Xbox One, ты будешь знать, что то же самое будет на всех остальных Xbox One.
Больше платформ — больше проблем
При портировании игры разработчик фактически создает ее уникальную версию. Это означает, что выбор каждой дополнительной платформы для выпуска игры увеличивает сложность релиза на порядок. Это умножение, а не сложение. В случае нескольких платформ нужно не только выпускать, но еще и быстро реагировать на всевозможные проблемы, оперативно решать их.
Каждый патч или обновление нужно тестировать на каждой платформе отдельно. И только если ни на одной не возникло проблем, выпускать это в «паблик». Ведь безобидный «фикс» на одной платформе может вызывать критический сбой на другой. Нужно учитывать кучу факторов и особенности архитектуры каждой среды.
Создание ПК-порта игры с прошлого поколения консолей тоже довольно проблемное дело. Проект, который ранее запускался в 30 fps, далеко не всегда можно быстро «завести» в 60. А игры из прошлого десятилетия нельзя по мановению руки адаптировать к 4K-разрешению, как бы просто это не казалось.
Когда проще сделать игру заново
Короче говоря, портирование — это довольно непредсказуемый процесс. Но вместе с этим разработчик должен стремиться к тому, чтобы все версии одной и той же игры были похожи по своему функционалу и внешнему виду. При этом зачастую это невозможно на практике из-за кардинальных различий между платформами. А также из-за необходимости соблюдать лицензионные соглашения.
Вы редко слышите негативные рассказы о портировании игр, потому что в интересы разработчика не входит посвящать третьи лица в требования платформодержателей. Им не хочется читать критику в свой адрес.
Особенности продвижения
Если на минутку забыть о технических вопросах, то выпуск игр на разных платформах все равно является очень трудным делом. Ведь если игра выходит на системе, ее нужно продавать тем, кто этой системой пользуется. Нужно искать популярных «ютуберов», налаживать связь с сообществом игроков, делать промо-материалы для каждой платформы в отдельности.
Например, в коллективе из 20 человек вопросами продвижения могут заниматься трое. Они не участвуют в разработке как таковой, только занимаются изданием, маркетингом и продажами. Для маленьких студий вопрос выхода на нескольких платформах — это серьезная головная боль: рук не хватает.
К тому же никто не отменял непреднамеренных вещей вроде выпуска портов разного уровня качества. Это иногда выходит само собой, но игроки почти всегда начинают обвинять разработчиков в том, что они «продались» и перетянуть игроков на другую платформу. Хотя на самом деле большинство разработчиков хотят выпустить хороший порт для любой системы, просто не всегда это получается.
Впрочем, бывает и обратное, когда выходит переиздание какой-то древней игры и она пробивает чарты продаж. В таких случаях игроки готовы платить хорошие деньги, чтобы получить улучшенную версию любимой игры, так как это отличный способ отблагодарить девелопера за хорошую работу.