Gamedev Дмитрий Мучкин
4 477

Открытый мир Legacy of Kain: Soul Reaver

Удивительные решения, позволившие создать бесшовный открытый мир на PS One.

В закладки

Автор Eurogamer Джон Линнеман (John Linneman) написал материал, в котором рассказал о приёмах, использованных студией Crystal Dynamics для реализации бесшовного открытого мира в игре Legacy of Kain: Soul Reaver.

Редакция DTF выбрала главное.

В современной игровой индустрии открытый мир — нередкое явление. В основе этой составляющей игр лежит их способность загружать данные о локациях на лету без каких-либо загрузок. Сейчас это кажется нормой, но в 1999 году, когда вышла Legacy of Kain: Soul Reaver, открытый бесшовный мир был невероятно амбициозной концепцией.

Soul Reaver была одной из самых технически совершенных игр для PS One, за огромный мир, плавную анимацию и отличную музыку её помнят и спустя 18 лет.

Ключом к её успеху было то, как игра перенесла metroidvania-элементы ​в обширный трёхмерный мир. Собственный движок Crystal Dynamics под названием Gex раздвинул границы возможного в играх — и не только своей технологией загрузки локаций. В отличие от The Legend of Zelda: Ocarina of Time на Nintendo 64, выдававшей разрешение 320x240 и 20 кадров в секунду, Soul Reaver работала в разрешении 512x240, показывая 30 кадров.

Джон Линнеман
журналист Eurogamer

Помимо этого, в Ocarina of Time были загрузки, хоть игра и размещалась на картридже. В Soul Reaver их не было совсем. Это было серьёзным технологическим достижением, которое стало возможным благодаря тому, что игры для PlayStation располагались на CD — свободного места на них было достаточно для проектов невиданного масштаба.

Однако привод PS One читал диски всего лишь со скоростью 2X, поэтому в большинстве игр загрузок нельзя было избежать, в том числе и у предшественника Soul Reaver — Blood Omen. Однако для своей новой игры Crystal Dynamics разработали систему потоковой загрузки данных.

Игра была разделена на участки​, каждый из которых представлял из себя комнату, коридор или проход в другую комнату. В каждый момент времени Soul Reaver держала в памяти три участка — помещение, в котором находился игрок, и два соседних с ним. Когда главный герой перемещался на новый участок, самый далёкий от него стирался из памяти и загружался новый. Уровни были спроектированы так, что загрузка участков занимала меньше времени, чем перемещение по ним.

Джон Линнеман
журналист Eurogamer

Разработчики использовали и другие решения для оптимизации загрузки данных. Так, каждая единица карты (map unit) содержала список объектов, используемых в локации. Каждый из них загружался лишь один раз, а в списке было указано, сколько у него должно быть копий, и где они должны находиться.

Также Crystal Dynamics использовали таблицы поиска (look-up table) для разных частей текстур, что позволило им использовать одни и те же текстуры в разных местах и способствовало быстрой загрузке.

Помимо этого, разработчики распределили копии файлов ресурсов по всему CD. В наше время это не так важно, но тогда расположение данных на дисках сильно сказывалось на скорости их чтения. Многие студии использовали эту технику вплоть до появления Xbox 360 и PS3.

Джон Линнеман
журналист Eurogamer

В Soul Reaver игрок мог переключаться между двумя измерениями: спектральным и материальным. Это было необходимо для решения головоломок, но создавало дополнительные сложности при загрузке локаций.

Crystal Dynamics могли бы загружать две версии одних и тех же участков, но это ещё сильнее нагружало бы систему. Разработчики нашли красивое и эффективное решение: использовались одни и те же данные карт (map data), но геометрия двух версий уровня была привязана к разным координатам. Цвета текстур тоже изменялись при переходе из одного измерения в другое, что усиливало иллюзию.

Все эти технологии позволили движку Gex реализовать полноценную систему​ потоковой загрузки данных на консоли, которая совсем для этого не подходила. Можно было пробежать от одного конца мира до другого, не увидев ни единого экрана загрузки, при этом переключаясь между измерениями.

Джон Линнеман
журналист Eurogamer

Решения, использованные разработчиками, повлияли и на другие составляющие игры. Обычно проекты на PS One использовали стандарт Redbook Audio для проигрывания фоновой музыки — консоль считывала треки как с обычного музыкального CD.

Но в случае с Soul Reaver привод был полностью занят потоковой загрузкой локаций, поэтому этот способ не подходил Crystal Dynamics. Разработчикам пришлось воспользоваться форматом, похожим на MIDI: в одних файлах содержались звуки инструментов, а в других — последовательность, в которой они должны были звучать.

Crystal Dynamics воспользовались этой ситуацией, чтобы создать динамический саундтрек — музыка менялась на ходу в зависимости от геймплея. Результат оказался впечатляющим: качество звука было потрясающим, а размеры файлов — совсем небольшими.

#разбор

{ "author_name": "Дмитрий Мучкин", "author_type": "editor", "tags": ["\u0440\u0430\u0437\u0431\u043e\u0440"], "comments": 14, "likes": 52, "favorites": 8, "is_advertisement": false, "subsite_label": "gamedev", "id": 8398, "is_wide": false }
{ "id": 8398, "author_id": 6322, "diff_limit": 1000, "urls": {"diff":"\/comments\/8398\/get","add":"\/comments\/8398\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/8398"}, "attach_limit": 2, "max_comment_text_length": 5000 }

14 комментариев 14 комм.

Популярные

По порядку

Написать комментарий...
15

Ох какая крутая штука была в своё время ) с оригинальной вселенной и геймплеем.

Ответить
1

Почему была? Вселенная слишком хороша, чтобы отбрасывать игру из-за графония)

Ответить
1

Как написали ниже, те кто были причастны, уже сменили контору. Вероятность того что будет продолжение должного качества маловероятна, а играть в старый проект уже не так интересно, ибо сюжетную линию в целом помнишь. Нет той нотки неизвестности.

Ответить
7

Великолепная серия. В своё время переигрывал не раз. Жаль только что порт на PC был с неприятными багами на вроде кривой камеры.

Ответить
3

Госпаде, до сих пор джибошу, 10 из 10

Ответить
1

Разработчикам пришлось воспользоваться форматом, похожим на MIDI: в одних файлах содержались звуки инструментов, а в других — последовательность, в которой они должны были звучать.

Вы только что трекер. Это называется трекер. Since ажно december of 1987, ничего нового.

Никогда бы не подумал, что в Соул Ривере была трекерная музыка. Ну то-есть я знал что трекерная музыка при индивидуальном подходе может давать просто сногсшибательнейший звук (не прибегая при этом к генерящими в реальном времени звук синтезаторам, ибо это накладно по ресурсам), как например в первом Hitman'е, но даже там можно при желании и знании этого факта можно услышать ту самую "трекерность" в звучании, которая присуще обычной трекерной музыке на семплах как таковой: "нарочитая" искусственность в звуке и резкость.
Но здесь же это звучит просто как обычная музыка: весь звук и инструменты с кучей навешанных эффектов (тем более, что сам звук не синтезаторный), а сами семплы очень плавные и чистые (привет ADSR), - то-есть надо было либо использовать кучу очень и очень длинных семплов, либо писать отдельный программный семплерный синтезатор (что очень жирно для PSX-то). И тем более, что музыку писал Курт Харланд - не то что трекерщик, он даже не игровой композитор-то толком (так, балуется): он обычный музыкант и лидер группы Information Society, а такие всегда пишут по классике с выводом на прямую запись, а трекеры для них и прочие подобные вещи - мрак, "да что вы", "свят-свят-свят, окститесь".
Хотя, если разбирать звучание и само построение мелодий, становится понятно откуда растут ноги у жирнющей примеси электро (имеется ввиду жанр) (хотя это можно объяснить и без этого, Харланд всё таки сам по себе фристайл пишет, что как бы тоже электро), а также постоянное баловство со звуком запитченных в самый низ обычных семплов (что, собсно, и характеризует звучание всего саундтрека как такового).

Ответить
0

А мне, после великолепного и до сих пор очень любимого Blood Omen, эта часть, в 3D и с попрыгалками аля-Лара Крофт ну совсем не зашла. Хотя временами, особенно после статей вроде этой, хочется попробовать пересилить себя и наверстать упущенное.

Ответить
1

Согласен. В BOLoK совсем другая атмосфера и сеттинг. Всё-таки чувствуется, что SR делали совсем другие люди. Ну и SR2 скучноват и сильно затянут местами.

Ответить
0

Офигенная классика. Для своего времени была бомбой.

Ответить
0

Я вдруг было и забыл про этот шедевр!

Ответить
0

Приложите ссылку на видео Линнемана на Digital Foundry, она есть в оригинальной статье. Там больше и нагляднее (но, естественно, на английском).

Ответить
0

Люблю эту Серию и Разиэль мне нравится куда больше надменного Кайна)

Ответить
0

Моя любимая игра от Crystal Dynamics. Сценарист и директор была Эми Хенинг, потом она уйдет в Нати Дог делать Анчартеды )

Ответить
0

Великолепная серия, с потрясающим сюжетом и глубокими персонажами. И хотя я начал своё знакомство с ней с «другого конца» — с Legacy of Kain: Defiance, она всё равно произвела на меня неизгладимое впечатление. Один только саундтрек чего стоит. Жаль, что сейчас она, по большому счёту, осталась в прошлом: многопользовательская Nosgoth так и не взлетела, а о возможных продолжениях/римейках ничего не слышно. Будем надеяться, что однажды серию Legacy of Kain всё же перезапустят на современных платформах.

Ответить
0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } } ]
Игру с лучшим стелсом никто не заметил
Подписаться на push-уведомления