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