Воссоздание игрового движка — это тип процесса ремастеринга игрового движка , при котором новый игровой движок переписывается с нуля как клон оригинала с возможностью загрузки файлов данных оригинальной игры, таких как музыка , текстуры , скрипты , шейдеры , уровни и многое другое. Новый движок должен считывать эти файлы данных и, в теории, загружать и понимать их таким образом, чтобы они были неотличимы от оригинала. Результатом правильного клонирования движка часто является возможность играть в игру на современных системах, на которых старая игра больше не могла работать. Это также открывает возможность для сотрудничества сообщества, поскольку многие проекты по ремейку движка, как правило, имеют открытый исходный код. Воссоздание игрового движка может быть выгодно издателям игр, поскольку для законного использования воссоздания по-прежнему требуются исходные файлы данных, поскольку игроку по-прежнему необходимо приобрести оригинальную игру, чтобы легально играть в воссозданную игру (как подробно описано в этом списке воссозданий игровых движков ).
Воссоздание игрового движка делается для того, чтобы позволить использовать классические игры с более новыми версиями операционной системы , последним оборудованием или даже совершенно другими операционными системами, чем изначально предполагалось. Другой мотивацией является возможность исправления ошибок движка , что часто бывает сложно или невозможно с оригинальными движками (за исключением некоторых случаев, см. патч сообщества ), когда программное обеспечение перестало поддерживаться, а исходный код недоступен.
Когда воссоздание игрового движка производится по методологии разработки сверху вниз , на первом этапе программируется общая функциональность игры и определяется структура. Затем, на последующих этапах, полученный движок адаптируется к конкретному детальному поведению оригинальной игры, часто путем обратного проектирования, отладки и профилирования оригинала. Примером является OpenRA, основанный на спецификациях, предоставленных сообществом путем повторных реализаций в чистой комнате [1] без разборки исходного исполняемого файла, что приводит к игровым движкам, поведение которых отличается от оригинала. [2] Другим примером является ремейк движка Total Annihilation Spring Engine , который в результате использовался для многих других игр. Как правило, этот подход приводит только к приближению оригинального поведения, а не к идентичному поведению « по такту ». С положительной стороны, работающий код существует быстрее, и в конечном итоге полученный исходный код менее привязан к конкретной, отдельной игре и может быть повторно использован в качестве общего игрового движка для других игр.
В отличие от воссоздания игрового движка сверху вниз , дизассемблированные/декомпилированные версии снизу вверх для конкретной игры часто способны точно воспроизвести поведение оригинала. В этих случаях игровое ядро воссоздается снизу вверх с помощью обратного проектирования исходного дизассемблированного двоичного исполняемого файла, инструкция ЦП за инструкцией. На этапе разработки это имеет тот недостаток, что в течение длительного времени не существует работающего прототипа. Также с отрицательной стороны, полученный код очень специфически привязан к этой единственной игре, часто уродлив («псевдоассемблерный код » [3] [4] ), и его вряд ли можно повторно использовать в качестве общего игрового движка. Примерами являются CSBWin или OpenTTD . Чаще всего результат также называют не «игровым движком», а «воссозданием игры» или «клоном игры». MAME является примером проекта эмуляции игрового движка, который также следует этой философии для точного представления игр.
Иногда, как это было с некоторыми движками/игровыми ядрами в ScummVM , оригинальные разработчики помогали проектам, предоставляя оригинальный исходный код (тогда их можно назвать исходными портами ). Это лучший случай, оптимальный для точности и минимизации усилий. Примером может служить Beneath a Steel Sky . [5] [6]
Эмуляция классических систем или операционных систем является альтернативой воссозданию движка; например, DOSBox является заметным эмулятором среды PC / MS-DOS . Статическая перекомпиляция является другим подходом, основанным на исходном двоичном исполняемом файле , что потенциально приводит к лучшей производительности, чем эмуляция; примером является версия архитектуры ARM 2014 года StarCraft для Pandora . [7] [8] [9] Другой альтернативой являются исходные порты для редких случаев, когда исходный код доступен; примерами являются Jagged Alliance 2 [10] или Homeworld [11] [12] [13] (больше примеров в Списке коммерческих видеоигр с доступным исходным кодом ).
Поддержка Beneath a Steel Sky стала возможной благодаря Revolution Software, предоставившей нам исходный код оригинальной сборки!
Правило "нет исходника, нет порта" не совсем верно, вы можете получить что-то похожее (но не то же самое) в качестве порта с помощью статической перекомпиляции. Подобная работа была проделана несколько раз M-HT для некоторых игр DOS. Игра также была конвертирована для Android с использованием несколько похожего подхода.
{{cite web}}
: CS1 maint: архивная копия как заголовок ( ссылка )[...] выпустили порт HomeworldSDL. [...]позволяет вашей Pandora ощутить великолепную работу, проделанную ребятами из HomeworldSDL.