Ecstatica II

Ecstatica IIкомпьютерная игра в жанре action-adventure, изданная компанией Psygnosis в 1997 году на MS-DOS и Windows. Является прямым продолжением Ecstatica.

Ecstatica II
Разработчик Эндрю Спенсер
Издатель Psygnosis
Дата выпуска Март, 1997
Жанр action-adventure, слэшер
Возрастные
рейтинги
ELSPA: 18+
ESRB: M (переиздание)
Технические данные
Платформы MS-DOS, Windows
Режимы игры однопользовательский
Носитель Дискеты 3½" или CD-ROM (1)

Сюжет

История начинается непосредственно там, где заканчивается первая часть игры, когда безымянный путешественник, отказавшийся быть принцем неназванной страны, спас Экстатику из обречённого города Тирих. Принц возвращается в его королевство с Экстатикой планируя жениться, но находит свой замок опустошённым и разграбленным, а своих людей жестоко убитыми демонами, гоблинами и варварами. Как только он появляется у разводного моста, крылатый демон хватает Экстатику и уносит её, пока принц был сбит другим крылатым демоном. Очнувшись, он находит себя привязанным к позорному столбу. Тем не менее, принц возвращается к жизни и освобождается благодаря чудесному женскому голосу, побуждающему его победить злобного архимага и вернуть мировой баланс восстановив 7 древних знаков. Также у него появляется возможность вызволить возлюбленную Экстатику у архимага прежде чем он принесёт её в жертву.

Технологии, применённые при разработке игры

  • Необычная элипсоидная графика
  • Для 3D-графики используется целочисленная математика с фиксированной точкой.
  • Собственный байт-код интерпретатор для игровых скриптов и AI.

Интересные моменты исходного кода[1]

  • Стиль кода очень процедурный и "досовский" (что нормально для середины 90-х).
  • Те объекты (actors), которые нужно рисовать находятся в display list.
  • Большая часть памяти выделена статически под данные разных видов.
  • Иногда используются весьма нетривиальные структуры данных.
  • Код для работы с структурами данных не особо оптимальный, но в игре не так много одновременных объектов, поэтому это не проявляется.
  • Многие ресурсы в файлах ресурсов хранятся как наборы "событий" (events).
  • Благодаря "событиям" (events) многое "управляется данными" (data-driven). Однако есть и то, что намертво "захардкодено" (UI, Init, некоторые игровые проверки).
  • В названиях процедур на английском есть забавные ошибки. Например, "pallette" (palette) и "ambiants" (ambients). То есть английский язык для программиста — не родной.
  • Для поддержки режима SVGA (640x480) по всему коду жёстко понаставили "if'ы". В результате игра поддерживает только два разрешения: 320x200 и 640x480.
  • Иногда код немного не совпадает и SVGA версия может, например, "забыть" что-нибудь стереть с экрана, например часть интерфейса.
  • Чтобы можно было переключаться между VGA и SVGA прямо из игры в код по-быстрому добавили две процедуры GoSVGA() и GoVGA().
  • Поддержку Win95 тоже добавляли "чтобы по-быстрому". Ведь в 1996 году поддержка Win95 ещё только набирала обороты. Например, обработку сообщений Windows и реагирование на сворачивание/восстановление окна, восстановление DirectDraw после сворачивания и остановку/запуск при этом музыки под Win95 приткнули "за компанию" в процедуру обновления позиции и перерисовки курсора мыши GetMouse().
  • В многих процедурах кода видны остатки режима редактирования ресурсов (Edit). Возможно режим редактирования даже рабочий, если настроить окружение.

Примечания

Ссылки

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.