stringtranslate.com

Обновление игрового движка

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

Мотивация

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

Методы

Сверху вниз

Когда воссоздание игрового движка создается по методологии разработки «сверху вниз» , на первом этапе программируется общая функциональность игры и определяется ее структура. Затем, на последующих этапах, полученный движок адаптируется к конкретным деталям поведения исходной игры, часто путем обратного проектирования, отладки и профилирования оригинала. Примером является OpenRA , основанная на спецификациях, предоставленных сообществом путем повторной реализации [1] без дизассемблирования исходного исполняемого файла, что приводит к созданию игровых движков, поведение которых отличается от оригинала. [2] Другим примером является ремейк движка Total Annihilation Spring Engine , который стал использоваться во многих других играх. Обычно этот подход приводит только к аппроксимации исходного поведения, а не к идентичному поведению « с точки зрения тактового цикла ». Положительным моментом является то, что выполняемый код выполняется быстрее, а полученный в конечном итоге исходный код менее привязан к конкретной отдельной игре и может быть повторно использован в качестве общего игрового движка для других игр.

Вверх дном

В отличие от воссоздания игрового движка «сверху вниз» , дизассемблированные/декомпилированные версии «снизу вверх» для конкретной игры часто могут точно воспроизвести поведение оригинала. В этих случаях ядро ​​игры воссоздается снизу вверх с помощью обратного проектирования исходного дизассемблированного двоичного исполняемого файла, инструкций ЦП за инструкциями. На этапе разработки это имеет тот недостаток, что в течение длительного времени не существует работающего прототипа. С другой стороны, полученный код очень специфично привязан к этой единственной игре, часто уродлив («псевдоассемблерный код » [3] [4] ) и вряд ли может быть повторно использован в качестве общего игрового движка. Примеры: CSBWin или OpenTTD . Чаще всего результат также называют не «игровым движком», а «воссозданием игры» или «клоном игры». MAME — это пример проекта эмуляции движка видеоигр, который также следует этой философии для точного представления игр.

Порты исходного кода

Иногда, как это было в случае с некоторыми движками/игровыми ядрами в ScummVM , первоначальные разработчики помогали проектам, предоставляя исходный исходный код (тогда их можно назвать исходными портами ). Это лучший случай, оптимальный по точности и минимизации усилий. Пример — « Под стальным небом» . [5] [6]

Альтернативы

Эмуляция классических систем или операционных систем — альтернатива воссозданию движка; например, DOSBox — известный эмулятор среды ПК / MS-DOS . Статическая перекомпиляция — это еще один подход, основанный на исходном двоичном исполняемом файле , потенциально приводящий к повышению производительности по сравнению с эмуляцией; Примером может служить версия StarCraft для Pandora на архитектуре ARM 2014 года . [7] [8] [9] Другой альтернативой являются порты исходного кода для тех редких случаев, когда исходный код доступен; примерами являются Jagged Alliance 2 [10] или Homeworld [11] [12] [13] (больше примеров в Списке коммерческих видеоигр с доступным исходным кодом ).

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

Рекомендации

  1. ^ "ОпенРА/ОпенРА". Гитхаб . Проверено 30 августа 2018 г.
  2. ^ Цели развития openra на github.com
  3. ^ Релиз: Starcraft на Pyra-handheld.com «Как видите, он не сильно отличается от дизассемблирования x86, единственное отличие состоит в том, что вы можете скомпилировать его для других 32-битных арок (на 64-битных версиях это не работает). ."
  4. ^ Хаос наносит ответный удар для Windows (а также Linux, MacOS X, Pocket PC) в энциклопедии Dungeon Master «Около 120 000 строк псевдоассемблерного языка. Безумная вещь. Но это работает».
  5. ^ «Последние события». 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. ^ нотаз (04 марта 2014 г.). "Стар Крафт". repo.openpandora.org . Проверено 26 марта 2014 г.
  9. ^ нотаз (04 марта 2014 г.). "Стар Крафт". openpandora.org . Проверено 29 марта 2014 г. Правило «нет источника — нет порта» не совсем верно, можно получить что-то похожее (но не то же самое) на порт посредством статической перекомпиляции. Подобные вещи несколько раз делались M-HT для некоторых DOS-игр. Игра также была конвертирована для Android с использованием схожего подхода.
  10. ^ Бёрнс, Эндрю (25 февраля 2004 г.). «Исходный код Jagged Alliance 2 будет в комплекте с Wildfire» . ign.com. Архивировано из оригинала 8 января 2013 года . Проверено 23 декабря 2012 г.
  11. ^ Ларджент, Энди (08 октября 2003 г.). «Выпущен исходный код Homeworld». Внутри Mac-игр . Архивировано из оригинала 12 октября 2013 г. Проверено 10 января 2011 г.
  12. ^ «Архивная копия». Архивировано из оригинала 4 августа 2012 г. Проверено 30 марта 2014 г.{{cite web}}: CS1 maint: архивная копия в заголовке ( ссылка )
  13. ^ Сотрудники pandorapress (23 июня 2011 г.). «Игра недели №3 – Homeworld SDL». pandorapress.net . Проверено 24 апреля 2013 г. [...] выпущен порт HomeworldSDL. [...] позволит вашей Pandora испытать превосходную работу, проделанную ребятами из HomeworldSDL.