Ecstatica II — компьютерная игра в жанре action-adventure, изданная компанией Psygnosis в 1997 году на MS-DOS и Windows. Является прямым продолжением Ecstatica.
Сюжет История начинается непосредственно там, где заканчивается первая часть игры, когда безымянный путешественник, отказавшийся быть принцем неназванной страны, спас Экстатику из обречённого города Тирих. Принц возвращается в его королевство с Экстатикой планируя жениться, но находит свой замок опустошённым и разграбленным, а своих людей жестоко убитыми демонами, гоблинами и варварами. Как только он появляется у разводного моста, крылатый демон хватает Экстатику и уносит её, пока принц был сбит другим крылатым демоном. Очнувшись, он находит себя привязанным к позорному столбу. Тем не менее, принц возвращается к жизни и освобождается благодаря чудесному женскому голосу, побуждающему его победить злобного архимага и вернуть мировой баланс восстановив 7 древних знаков. Также у него появляется возможность вызволить возлюбленную Экстатику у архимага прежде чем он принесёт её в жертву.
Технологии, применённые при разработке игры Необычная элипсоидная графика Для 3D-графики используется целочисленная математика с фиксированной точкой. Собственный байт-код интерпретатор для игровых скриптов и AI.
Интересные моменты исходного кода Стиль кода очень процедурный и "досовский" (что нормально для середины 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). Возможно режим редактирования даже рабочий, если настроить окружение.
Примечания
Ссылки . stopgame.ru
Категория:Компьютерные игры в жанре приключенческого экшена Категория:Слэшеры Категория:Игры для DOS Категория:Компьютерные игры 1998 года Категория:Компьютерные игры, изданные Psygnosis Категория:Однопользовательские игры Категория:Компьютерные игры, разработанные в Великобритании