Обратная разработка игры another world

Возможно, все, кто застал золотую пору игр под DOS, не забывает и Another World. Ну, а нежели кому-то надобно освежить память, так извольте-с. Практически сейчас в частном блоге программиста Фабиена Сэнгларда была опубликована статья о его копаниях в исходниках игры. Исходниках, каковые ни при каких обстоятельствах не публиковались под какой-либо открытой лицензией и каковые кроме того не утекали никуда. Сэнглард обратную разработку.

Преинтересное чтение для программистов, да и не только.

К примеру, стало известно, что создатель игры Эрик Шаи написал весьма элегантную, в техническом смысле, совокупность, в базе которой лежала виртуальная машина, трактующая байт-код в реальном времени и генерирующая полноэкранную векторную графику.

Фактически, сам исполняемый файл Another.exe и воображал собой эту виртуальную машину.

“Байт-код делает все функции, которые связаны с игровой логикой посредством собственных кодов операции, но для более “серьёзных” операций, таких как рисование, воспроизведение музыки, управления и звука другими активами, применяет системные вызовы”, – пишет создатель изучения.

Применение методики виртуальной автомобили существенно облегчила задачу по портированию игры на другие платформы. Фактически говоря, она была изначально создана на Amiga 500 для нескольких платформ сходу: Amiga, Atari ST, Apple IIGS и DOS, а потом пережила безболезненное портирование на многие другие.

Весьма интересно кроме этого, что известные задники “рендерились” – как и вся другая графика в игре, они были векторными. К примеру, известный “первый экран” насчитывал целых 981 полигон.

Кое-какие умные трюки с памятью, предпринятые для ускорения создания самой игры, разрешили потом довольно безболезненно заменить все фоны. Как мы знаем, в 2006 году Шаи перевыпустил собственную ветхую игру с улучшенной графикой. Главное улучшение, но, пришлось на перерисованные (от руки, на этот раз) задники, каковые посредством всё того же “хака”, подгружались напрямую с диска в соответствующий буфер (background buffer).

На приведённом выше скриншоте видна отличие: на верхней части – оригинал, ниже – улучшенный вариант.

Случайное видео:


Интересные записи: