Портирование с Wii или PSOne — сложная и запутанная задача, которую можно разбить на несколько отдельных инженерных усилий, работающих параллельно для создания работающего конечного продукта. Лучшее, что вы можете сделать перед переходом на целевое оборудование, — это отделить весь непереносимый код, обеспечив при этом, чтобы игра продолжала работать должным образом. Когда вы решаете перейти на новую платформу, ваши усилия переключаются на повторную реализацию непереносимых разделенных частей.
Итак, чтобы ответить на ваш вопрос, да, вам нужно будет стать или работать с лицензированным разработчиком Sony и Nintendo, чтобы использовать этот подход. Что касается Sony, я даже не знаю, предлагают ли они больше программу разработки PSOne, которая вызывает проблемы. Ваш представитель Sony по работе с клиентами может помочь прояснить ситуацию.
Основные подсистемы, которые, вероятно, будут в центре внимания при переносе:
- Визуализация Графический код содержит фундаментальные предположения об оборудовании, на котором он выполняется, для оптимальной работы. Совместимость на уровне API — это поверхностная совместимость, и она не принесет вам столько пользы, сколько вы надеетесь. Планируйте найти точку входа в средство рендеринга и определить, какие данные вам нужны для рендеринга сцены, и переписать оттуда весь код рендеринга для вашего целевого оборудования.
- Сохранение игры. Сериализацию состояния игры и архивирование необходимо разделить. Старые игры часто используют структуры fwrite() с заполненными полями #pragma. Это все еще будет работать для вас?
- Сеть Игры для Wii записываются в высокоуровневые службы, которые недоступны на вашем целевом оборудовании. На низком уровне сокеты остаются сокетами. Какие сетевые службы используют ваши игры для Wii?
- Контроль От того, откуда вы идете, к тому, куда вы идете, все, кроме полного редизайна или переосмысления входных данных, приведет к плохим отзывам о программном обеспечении.
- Управление памятью Консольные игры часто делают фундаментальные предположения о скорости, с которой системное программное обеспечение возвращает память из кучи, какой степени фрагментации это вызовет, а также о том, сколько времени игра должна работать в этих условиях. Эти предположения об управлении памятью устарели на новой платформе. Целесообразно написать свой собственный менеджер памяти, который обеспечивает защиту от операционной системы. Кроме того, консольные игры, скомпилированные для выпуска, лишены большей части обработки ошибок и не справляются изящно с нехваткой памяти — просто предупреждение.
- Контент Узким местом будет системная память. Можете ли вы разместить необходимые активы в памяти? С текстурами вы можете уменьшить количество мипов там, где это необходимо, а с синхронизацией графического оборудования вы можете вытянуть дальнюю плоскость отсечения. Если активы находятся в памяти, вам может понадобиться технический художник, чтобы уменьшить плотность лиц ваших моделей, или программист анимации, чтобы внедрить более удобный кодек анимации. Это очень специфично для игры.
Вы также сталкиваетесь со стандартным набором проблем с такими вещами, как битовая совместимость (хотя Wii и PSOne обе 32-битные), особенности компилятора, несовместимость скриптов сборки и проприетарные расширения компилятора.
Игры довольно сложно тестировать. Хорошее эмпирическое правило заключается в том, что в вашей команде должно быть достаточно тестировщиков, чтобы пройти игру максимум за два дня, охватив все основные аспекты игры. В играх, на прохождение которых уходит много времени (ролевые игры с более чем 30 часами геймплея), ваша команда тестировщиков должна быть достаточно большой, чтобы обеспечить полное покрытие. Поскольку вы просто делаете порт, вы можете придумать план тестирования, который максимизирует охват вашего нового кода, не заставляя команду тестировать каждую стену в вашей игре, чтобы убедиться, что она (все еще) имеет отсечение. Игра была отправлена один раз.
Чтобы стать лицензированным разработчиком, необходимо подать заявку. Сроки изготовления, по опыту, не очень хорошие. Вообще говоря, приоритет отдается студиям с выпущенными играми и организованным офисам с достаточно хорошей безопасностью и возможностью покупать (относительно) дорогие комплекты для разработки. Возможно, вам лучше работать с лицензированным разработчиком, если вы не соответствуете этим критериям.
Разработка консолей и игр является сложной задачей для людей, уже имеющих в этом опыт. Нет книги, которая охватывает все это. Я рекомендую попытаться нанять эксперта, имеющего опыт выпуска игр, на должность системного программиста или программиста движка. Однако какие типы программистов и наборов навыков существуют в играх — это совершенно другой вопрос для Stack.
person
Michael Labbé
schedule
24.10.2009