stringtranslate.com

Игровой движок воссоздания

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

Мотивация

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

Методы

Сверху вниз

Когда воссоздание игрового движка производится по методологии разработки сверху вниз , на первом этапе программируется общая функциональность игры и определяется структура. Затем, на последующих этапах, полученный движок адаптируется к конкретному детальному поведению оригинальной игры, часто путем обратного проектирования, отладки и профилирования оригинала. Примером является 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] (больше примеров в Списке коммерческих видеоигр с доступным исходным кодом ).

Смотрите также

Ссылки

  1. ^ "OpenRA/OpenRA". GitHub . Получено 2018-08-30 .
  2. ^ Цели развития openra на github.com
  3. Выпуск: Starcraft на pyra-handheld.com «Как вы видите, это не сильно отличается от дизассемблирования x86, единственное отличие в том, что вы можете скомпилировать его для других 32-битных архитектур (нет способа, чтобы это работало на 64-битных...»
  4. Chaos Strikes Back для Windows (и Linux, MacOS X, Pocket PC) в энциклопедии Dungeon Master «Около 120 000 строк на псевдоассемблере. Безумная затея. Но она работает».
  5. ^ "Latest Developments". ScummVM.org . 2 августа 2012 г. Получено 14 июля 2013 г. Поддержка Beneath a Steel Sky стала возможной благодаря Revolution Software, предоставившей нам исходный код оригинальной сборки!
  6. ^ Исходный код "Исходный код Beneath a Steel Sky на языке ассемблера (415 225 байт) xxxx" (2005)
  7. ^ Штайнлехнер, Питер (10 марта 2014 г.). «Starcraft für ARM-Handheld kompiliert» (на немецком языке). golem.de . Проверено 25 марта 2014 г.
  8. ^ notaz (2014-03-04). "StarCraft". repo.openpandora.org . Получено 2014-03-26 .
  9. ^ notaz (2014-03-04). "Starcraft". openpandora.org. Архивировано из оригинала 2015-12-10 . Получено 2014-03-29 . Правило "нет исходника, нет порта" не совсем верно, вы можете получить что-то похожее (но не то же самое) в качестве порта с помощью статической перекомпиляции. Подобная работа была проделана несколько раз M-HT для некоторых игр DOS. Игра также была конвертирована для Android с использованием несколько похожего подхода.
  10. Бернс, Эндрю (25.02.2004). «Исходный код Jagged Alliance 2 будет в комплекте с Wildfire». ign.com. Архивировано из оригинала 8 января 2013 г. Получено 23.12.2012 .
  11. ^ Ларджент, Энди (2003-10-08). "Homeworld Source Code Released". Inside Mac Games . Архивировано из оригинала 2013-10-12 . Получено 2011-01-10 .
  12. ^ "Архивная копия". Архивировано из оригинала 2012-08-04 . Получено 2014-03-30 .{{cite web}}: CS1 maint: архивная копия как заголовок ( ссылка )
  13. ^ Сотрудники pandorapress (2011-06-23). ​​"Игра недели № 3 – Homeworld SDL". pandorapress.net . Получено 2013-04-24 . [...] выпустили порт HomeworldSDL. [...]позволяет вашей Pandora ощутить великолепную работу, проделанную ребятами из HomeworldSDL.