Воссоздание игрового движка - это тип процесса ремастеринга движка видеоигры, при котором новый игровой движок пишется с нуля как клон оригинала с возможностью загрузки файлов данных исходной игры, таких как музыка , текстуры , скрипты , шейдеры , уровни., и больше. Новый движок должен читать эти файлы данных и, теоретически, загружать и понимать их таким образом, чтобы их нельзя было отличить от оригинала. Результатом правильного клона движка часто является возможность играть в игру на современных системах, на которой старая игра больше не могла работать. Это также открывает возможность сотрудничества с сообществом, так как многие проекты переделки движка, как правило, имеют открытый исходный код. Воссоздание игрового движка может быть полезным для издателей игр, потому что для законного использования воссоздания по-прежнему требуются исходные файлы данных, поскольку игрок все равно должен приобрести оригинальную игру, чтобы законно играть в воссозданную игру (как подробно описано в этом списке воссозданий игрового движка ).
Мотивация
Воссоздания игрового движка позволяют использовать классические игры с более новыми версиями операционных систем , новейшим оборудованием или даже с совершенно другими операционными системами, чем предполагалось изначально. Еще одна мотивация - возможность исправлять ошибки движка, что часто бывает сложно или невозможно с исходными движками (за заметными исключениями, см. Патч сообщества ), когда программное обеспечение перестало поддерживаться , а исходный код недоступен.
Методы
Низходящий
Когда воссоздание игрового движка выполняется по методологии разработки «сверху вниз» , на первом этапе программируется общая функциональность игры и определяется структура. Затем, на более поздних этапах, результирующий движок адаптируется к конкретным деталям поведения исходной игры, часто путем обратного проектирования, отладки и профилирования оригинала. Примером является OpenRA, основанная на спецификациях, внесенных сообществом в результате повторных реализаций «чистой комнаты» [1] без разборки исходного исполняемого файла, что приводит к игровым движкам, поведение которых отличается от оригинала. [2] Другим примером является ремейк Spring Engine движка Total Annihilation , который стал использоваться во многих других играх. Как правило, этот подход приводит только к приближению исходного поведения, а не к идентичному поведению «по тактовому циклу ». С положительной стороны, исполняемый код существует быстрее, а итоговый исходный код менее привязан к конкретной отдельной игре и может быть повторно использован в качестве общего игрового движка для других игр.
Вверх дном
В отличие от воссоздания игрового движка сверху вниз , разобранные / декомпилированные версии снизу вверх для конкретной игры часто способны точно воспроизвести поведение оригинала. В этих случаях ядро игры воссоздается снизу вверх с обратным проектированием исходного дизассемблированного двоичного исполняемого файла, инструкции ЦП за инструкцией. На этапе разработки это имеет тот недостаток, что в течение долгого времени не существует работающего прототипа. Также с отрицательной стороны, полученный код очень специфично привязан к этой единственной игре, часто уродливой («псевдосборочный код » [3] [4] ), и вряд ли может быть повторно использован в качестве общего игрового движка. Примеры - CSBWin или OpenTTD . Чаще всего результат также называется не «игровой движок», а «игровой отдых» или «игровой клон». MAME - это пример проекта эмуляции движка видеоигры, который также следует этой философии для точного представления игр.
Исходный код порты
Иногда, как это было в случае с некоторыми движками / игровыми ядрами в ScummVM , оригинальные разработчики помогали проектам, предоставляя исходный исходный код (их затем можно назвать исходными портами ). Это лучший вариант, оптимальный по точности и минимизации усилий. Пример - Под стальным небом . [5] [6]
Альтернативы
Эмуляция классических систем или операционных систем - альтернатива воссозданию движка; например, DOSBox - известный эмулятор среды PC / MS-DOS . Статическая перекомпиляция - это еще один подход, основанный на исходном двоичном исполняемом файле , потенциально обеспечивающий лучшую производительность, чем эмуляция; Примером является версия StarCraft для Pandora с архитектурой ARM 2014 года . [7] [8] [9] Другой альтернативой являются исходные порты для редких случаев, когда исходный код доступен; примерами являются Jagged Alliance 2 [10] или Homeworld [11] [12] [13] (больше примеров в Списке коммерческих видеоигр с доступным исходным кодом ).
Смотрите также
- Список воссозданий игрового движка
Рекомендации
- ^ "OpenRA / OpenRA" . GitHub . Проверено 30 августа 2018 .
- ^ Openra -цели развития на github.com
- ^ Релиз: Starcraft на pyra-handheld.com "Как видите, он не сильно отличается от дизассемблера x86, с той лишь разницей, что вы можете скомпилировать его для других 32-битных арок (нет способа, чтобы он работал на 64-битном. . "
- ^ Хаос наносит ответный удар для Windows (и Linux, MacOS X, Pocket PC) в энциклопедии Dungeon Master «Около 120 000 строк на языке псевдо-ассемблера. Безумная вещь. Но она работает».
- ^ «Последние разработки» . ScummVM.org . 2 августа 2012 . Проверено 14 июля 2013 года .
Поддержка Beneath a Steel Sky стала возможной благодаря Revolution Software, предоставившей нам исходный исходный код на ассемблере!
- ^ Исходный код «Исходный код для Beneath a Steel Sky на языке ассемблера (415 225 байт) xxxx» (2005)
- ^ Штайнлехнер, Питер (10 марта 2014 г.). "Starcraft für ARM-Handheld kompiliert" (на немецком языке). golem.de . Проверено 25 марта 2014 .
- ^ notaz (04.03.2014). «Старкрафт» . repo.openpandora.org . Проверено 26 марта 2014 .
- ^ notaz (04.03.2014). «Старкрафт» . openpandora.org . Проверено 29 марта 2014 .
Правило «без источника, без порта» не совсем верно, вы можете получить что-то похожее (но не то же самое), что и порт, путем статической перекомпиляции. Подобные вещи несколько раз проделывала M-HT для некоторых игр для DOS. Игра также была конвертирована для Android с похожим подходом.
- ^ Бернс, Эндрю (2004-02-25). «Исходный код Jagged Alliance 2 будет включен в Wildfire» . ign.com . Проверено 23 декабря 2012 .
- ^ Ларджент, Энди (2003-10-08). «Выпущен исходный код Homeworld» . Внутри игр для Mac . Архивировано из оригинала на 2013-10-12 . Проверено 10 января 2011 .
- ^ «Архивная копия» . Архивировано из оригинала на 2012-08-04 . Проверено 30 марта 2014 .CS1 maint: заархивированная копия как заголовок ( ссылка )
- ^ сотрудники pandorapress (23.06.2011). «Игра недели №3 - Homeworld SDL» . pandorapress.net . Проверено 24 апреля 2013 .
[...] выпущен порт HomeworldSDL. [...] позволяет вашей Pandora испытать отличную работу, проделанную ребятами из HomeworldSDL.