Metro: Last light новости » 2010 » Февраль » 22 » Интервью Digital Foundry с Олесем Шишковцовым

Интервью Digital Foundry с Олесем Шишковцовым

13:02
 

 

Ведущий программист 4А Games Олесь Шишковцов отрицает родство их движка с X-Ray.
Главные преграды для развития X-Ray - это неспособность к распараллеливанию, слабый и глючный сетевой код, ужасное управление ресурсами и памятью, что не позволяло сделать стриминг или малый набор рабочих данных, вмещающийся в память консолей.
Другая проблема - текстовое скриптование на LUA, которое дает много рычагов управления, но заставляет дизайнеров быть почти программистами. Это было одной из причин задержки S.T.A.L.K.E.R.
Я начал личный проект для формирования будущей архитектуры и изучения возможностей дизайна движка. Он был неплохо развит и хотя проект не был функционален как игра (не было даже демки, так как я тогда не имел движка рендеринга), он дал мне ясное виденье последующих действий.

Шишковцов и его колега Александр Максимчук покинули GSC за год до релиза S.T.A.L.K.E.R., когда движок , основанный на приемлимой для ПК и консолей многопоточности, обрел форму. Шишковцов заявляет, что 4A engine не имеет ничего общего с X-Ray, потому что его портирование было бы очень сложным.
Простой порт не поместился бы в памяти даже без всех текстур, звуков и геометрии. А работал бы он на скорости 1-3 кадров в секунду. Но это ничего не значит, потому что без текстур и геометрии вы не увидите эти кадры! Я лично считаю, что GSC надо подождать следующее поколение консолей.

Шишковцов говорит, что философия распараллеливания отличается в разных играх. Например в Burnout Paradise от Criterion Games задачи распределяются в зависимости от числа доступных процессоров.
У нас нет выделенных потоков для выполнения специальных внутриигровых задач, кроме потока PhysX. Все потоки являются обычными работниками. Мы используем модель ориентированную на задачи (task-model), но без предварительных условий (pre-conditioning) или предварительной/пост синхронизации. Все потоки могут выполнятся паралельно без любых блокировок из точки их запуска. Нет взаимных зависимостей между задачами.
Это выглядит как дерево задач, которое начинается с самых тяжелых узлов в начале кадра (для самобалансирования системы). Последний раз когда я измерял статистику, мы выполняли около 3000 задач в 30-миллисекундном кадре на Xbox 360 в нагружающих процессор сценах со 100-процентной загрузкой всех аппаратных потоков.

4A Games увидела, что подобно распараллеливанию у Criterion, такая реализация работает и на консоли от Sony.
PS3 не такая уж и другая... Мы используем 'нити' для 'эмуляции' шестипоточного процессора и каждая задача может начать работу на SPU и переключится на другую 'нить'. Это разгрузка PPU, которая незаметна системе. Финальный результат этой прекрасной (помимо некоторых ограничений) модели - идеальное линейное приспособление к возможностям железа.

Движок является кросс-платформенным, но Метро 2033 не выйдет на PlayStation 3, только на PC и Xbox 360. Хотя консоль от Sony повлияла на большую часть разработки ядра.
С самого начала мы выбрали самую 'сложную' платформу. Много решений было принято со знанием ограничений и заковырок, которые мы встретим в будущем.
Для меня видеочип PS3 (они почему-то любят называть его RSX) был оптимальным выбором, потому что я был занят в ранних стадиях разработки NV40 и все казалось родным: RSX является прямым наследником этой архитектуры. Читая документы Sony это было как 'Ха! Они не понимают где потерялись эти циклы. Они кодировали sub-optimal code-path в GCM для этой штуки.' Все в таком роде...

Решение отбросить разработку на PS3 пришло от THQ и это дало позитивный результат для разработки, уменьшив число платформ до двух.
THQ не хотело рисковать с новым движком от новой студии, учитывая сложность программирования на этой платформе, особенно когда не было бизнесовой потребности в этом.
Решение разрабатывать для ПК и консоли было умным. Это позволило сфокусироваться на качестве для обеих платформ. Кстати, мы никогда не запускали Метро 2033 на PS3, только разрабатывали архитектуру для него. В студии много консольных игроков, но немного консольных разработчиков и Microsoft сделала многое чтобы снизить барьер при помощи своих отличных инструментов, компиляторов и анализаторов.
Наше решение разрабатывать для 'более сложной' платформы окупилось сразу. Целая игра была портирована на Xbox 360 в течение 19 рабочих дней. Хотя они не были восьмичасовыми...

Из-за малого объема памяти на консолях, также как и другим играм на Xbox 360, Метро 2033 приходится делать стриминг с DVD или жесткого диска.
При здаче консольной версии у нас было 1Гб сжатого OGG звука и почти 2Гб сжатых без потерь DXT текстур. Ясно, что они не влезут в память консоли.
По пути стриминга данных с DVD мы дошли до того, что мы не загружали предварительно ничего, даже базовых звуков ходьбы или оружия. Мы проделали много работы для компенсации времени поиска на диске, чтобы игрок не замечал этого. Это было тяжело.

Все эти оптимизации дали преимущества и ПК-версии Метро 2033.
Нам не нужно столько же памяти как играм только для ПК. Любого ПК с 512Мб ОЗУ и поддержкой DX10/DX11 в Windows 7 будет достаточно. DirectX 9 дублирует в системной памяти почти все ресурсы GPU, поэтому вам придется добавить около 256Мб для избежания свопинга.
Со стороны процессора есть проблемы. Поскольку система заточена под многопоточность, для ‘гладкой’ игры нужно как минимум два апаратных потока. Производительность процессора сильно не играет роли, кроме как в нескольких сценах за всю игру, если это конечно современная архитектура (не Intel Atom!) с более чем одним ядром.

ПК-версия обходит консольную по качеству графики. Метро 2033 имеет прекрасный объемный туман, удвоенную точность вычислений в PhysX, текстуры 2048х2048 (против 1024х1024 на консоли), улучшенную работу с картами теней, размытие объектов в DX10, подповерхностное рассеивание для отличных шейдеров кожи, Parallax Mapping для всех поверхностей и лучшую детализацию геометрии с менее аггресивным LOD. В DirectX 11 поддерживается тесселяция.
Я люблю три вещи в DirectX 11: вычислительные шейдеры, шейдеры тесселяции и разделение контекста draw/create. Главная вещь увеличивающая производительность – это вычислительные шейдеры. Сегодня в большинстве игр большая часть создания кадра тратится на постобработку. Легкий путь для добавления скорости – переписать эту постообработку через вычислительные шейдеры.
Даже простое размытие может ускорится в два раза. Например, мы переписали код глубины резкости, что заметно улучшило качество при сохранении оптимального количества кадров в секунду. В Метро 2033 все ‘органические’ вещи типа людей тесселированы, а монстры используют реальный displacement mapping. 

В свежей спецификации движка видно много похожих технологий, как в Killzone 2 от Guerrilla Games: много стандартных вещей для консольных шутеров. Их движок отлично работает на железе Sony, но Шишковцов имеет другую точку зрения.
Их исполнение кажется плохо оптимизированным. Иначе зачем они делали предварительно вычисленные карты освещения? Зачем они освещают динамические объекты иначе чем мир, при помощи подобных Light Probe вещей? Основываясь на моем опыте, вам нужно как минимум 150 полноценных источников света, чтобы закрытые пространства выглядели хорошо и натурально и намного больше, чтобы подсветить такие вещи как глаза, прочее. Похоже они упустили это из виду. 

Метро 2033 использует большое количество источников освещения отрендеренных на конвейере отложенного затенения.
Игрок проводит более половины игры под землей. Это темные туннели и слабо освещенные комнаты. Нет других источников электричества кроме генераторов. Отложенное затенение – это лучший выбор. P/S. Особенно на hd текстурах освещение и тени смотрятся реалистично. Нравится отражение на кафеле и специальной плитке для бассейнов. Визуально это смотрится интересно, убедительно и захватывающе. Нам нужно много малых источников света.

Оказывается обе HD консоли имеют сложности с убедительными тенями.
В этом нет ничего необычного. На Xbox 360 мы сначала рендерим традиционную глубину с точки зрения света, затем конвертируем в ESM (экспоненциальную карту теней) представление одновременно делая размытие по Гауссу. Далее во время освещения мы делаем одно билинейное обращение к таблице для получения процента затенения.
В конечном итоге мы избавляемся от шумов и ошибок затенения или многих обращений к таблице при фильтровании тени, чтобы получить что-то издалека похожее на тень. Конечно 10Мб eDRAM на Xbox 360 ограничивает разрешение карт теней, что заметно при движении источника света… Мы используем эту память для shadow mapping только два раза в кадр.

4A Engine также включает собственные решения для сглаживания. Разработчики решили использовать часть GPU ответственную за MSAA для других задач, но уменьшение ступенчатости граней остается важным аспектом визуального качества.
Последние два года на Xbox 360 мы использовали deferred rotated grid super-sampling, но позже переключились на аналитическое сглаживание (ААА). Это дало нам около 10Мб памяти и уменьшили загрузку GPU сглаживанием с переменных 2.5-3.0 миллисекунды до постоянных 1.4мс. Качество довольно неплохое. ААА работает немного не так, как вы предполагаете. Он не имеет полного определения граней.
Проще объяснить технику, как удвоение шейдером разрешения изображения используя определение участков/граней (подобно морфологическому АА) и обратное уменьшение к оригинальному размеру, получая сглаженную версию. Так как окно определения паттернов фиксировано и мало для реализации на GPU, качество значительно хуже для близких к горизонтальным и вертикальным линиям, чем например в MLAA.

Другим ключевым элементом технологии является искусственный элемент персонажей.
Каждый ИИ персонаж имеет чувства: зрение, слух и реакцию на столкновения. Модель зрения близка к реальности: угол обзора 120 градусов, переднее зрение более развито, также берутся во внимание освещенность и скорость цели. Например, подвижный объект видим лучше статичного. Также есть возможность ‘вглядываться’. Есть несколько уровней настороженности: легкое беспокойство, легкая тревога, тревога, сильная тревога, опасность.

Звуковая модель для ИИ интригует. 4A Engine пытается эмулировать реальное восприятие слуха получая переменные из всего в дизайне игры…
Каждый звук имеет 'метку для ИИ'... Звуки стрельбы отмечены как 'combat.shot'. Для этой метки расстояние слышимости например 50 метров, что достаточно много. Но используя порталы/секторы рендера обработчик слуха определяет ‘виртуальное расстояние’ с учетом стен и коридоров.
Так что персонаж никогда не услышит что-либо за стеной, потому что если ‘прямое’ расстояние всего пять метров, ‘виртуальное растояние’ при прохождении звука через стену составит 60 метров.

Реакция на столкновения и восприятие видимых объектов тоже обрабатывается. Если ИИ распознает гранату, он пытается сбежать.
Эта подсистема обрабатывает базовую информацию и решает что сейчас важно для персонажа. Разные уровни чувств объединены с разными типами поведения. Например, типичным поведением для ‘легкое беспокойство’ будет что-то типа ‘Кто здесь?’ и пристальный осмотр, что может вызвать состояние ‘сильная тревога’ и начало поиска.
Конечно, дизайнеры имеют полный контроль над всем и они могут заставить персонажей ровно стоять или показывать смешные анимации даже если возле них упадет ядерная бомба и это подходит к текущей сцене.

4А отлично поработали над консольной версией, выжав все соки из железа и получив невиданную для этой платформы графику. Технология в сочетании с восточноевропейским стилем отличает эту игру от шаблона Unreal Engine.
GPU Xbox 360 – это иной зверь. Он в 5-10 раз слабее современного железа на ПК. Но аппаратная мощность это лишь одна сторона уравнения. Так как программисты могут оптимизировать задачу под специфический GPU, мы можем получить почти стопроцентное использование всех блоков.
Это невозможно на ПК. В дополнение к грязным трюкам с MSAA, таким как использование некоторых поверхностей как multi-sampled (например hi-stencil masking the light-influencе делает это) или рендеринг multi-sampled shadowmaps и подальший семплинг корректных значений суб-пикселей, так как мы знаем какие паттерны и позиции имеют суб-пиксели, прочее.
Большая часть Метро 2033 идет на частоте 40-50 кадров в секунду, если мы выключим vsync на 360. Большинство уровней имеют более 100Мб сэкономленного места. Мы немного перестарались в оптимизации.

Полное интервью Digital Foundry с Олесем Шишковцовым выйдет на этой неделе. Там будет: прямое сравнение процессора Xenon с Intel i7, информация о HDR-освещению, ИИ, PhysX и много другого.
 
Автор: Deimos
Источник: GAMEINATOR

 


Похожие новости
Open Games о системе квестов в игре Метро 2033 Оnline
Экипируй вселенную "Метро 2033"
Так будет GTA 5 на РС или нет?!
«Непогребенные» в магазинах
QTV: Игронавты в гостях у 4АGames
Категория: Новости игры Метро 2033 | Просмотров: 12159 | Добавил: admin | Мнение о материале | Теги: GSC, S.T.A.L.K.E.R., Олесь Шишковцов, Движок, 4A ENGINE, Метро 2033, 4A Games |
Всего комментариев: 2
1 GaSHiSHiN (22.02.2010 13:37)
Всё очень подробно,но не понятно.)

Любого ПК с 512Мб ОЗУ и поддержкой DX10/DX11 в Windows 7 будет достаточно. DirectX 9 дублирует в системной памяти почти все ресурсы GPU, поэтому вам придется добавить около 256Мб для избежания свопинга.

Кто-нибудь может это объяснить ?


2 iMac (22.02.2010 15:24)
Я могу объяснить:D
Если просто говоря, то разработчики постарались максимально оптимизировать движок игры на мало-мощные компы!!! Они проделали большую работу с движком для соотношения максимальной красоты и высокой производительности vinsent

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Новости вселенной Метро

Игровые новости [218]Новости портала [40]
- Все объявления, нововведения здесь...
Новости игры Метро 2033 [178]
- Все последние новости о проекте игры Метро 2033
Новости игры Last Light [64]
- Все последние новости о сиквеле Metro 2033: Last Light
Новости игры Метро 2033 Онлайн [8]
- Новости проекта флеш браузерной игры Метро 2033 Онлайн
Видео Метро 2033 [19]
- Видео-архив роликов игры Метро 2033
Видео Last Light [19]
- Видео-архив роликов сиквела Metro 2033: Last Light
Видео Метро 2033 Онлайн [1]
- Видеоролики флеш проекта Метро 2033 Онлайн
Вселенная Метро 2033 [68]
- Все новости о новом проекте Дмитрия Глуховского
Дмитрий Глуховский [51]
- Новости связанные с творчеством Дмитрия Глуховского
Разное [95]
- Разное, так или иначе связанное с проектом Метро 2033

Последние:


Добро пожаловать!
Логин:
Пароль:



Навигация

Видео

Комментарии
07.01.2016 kakain
типо онлайн?  подробнее
03.12.2015 КутузOFF
Ребята, подскажите контакты Администрации игры Мет...  подробнее
03.12.2015 КутузOFF
Кто-то всё ещё желает отдохнуть в Турции?  подробнее
10.07.2015 Ной
Ребят это онлайн?  подробнее
15.01.2015 Shin
Наверняка крутая игра будет. Ждемс!  подробнее

Форум


Опрос
Что вы ожидаете от Metro: Last Light?
Всего ответов: 9215



Новое в галерее

Статистика
В метро всего: 1
Неизвестных: 1
Выживших: 0

Пользователи посетившие сайт сегодня: Charlesgroto, AaronGrips, BennyDox, TracyCit, Michaelevorm

Общая статистика




Proekt-metro © 2009-2033 Game сommunity™. Все права защищены. Авторское право на игру и использованные в ней материалы принадлежат Дмитрию Глуховскому и 4A Games. Права на издательство игры принадлежат компаниям THQ и Akella. Все торговые марки, логотипы и авторские права являются собственностью их соответствующих владельцев. Любое частичное или полное использование материалов с сайта, возможно только с указанием активной гиперссылки на источник в виде http://proekt-metro.ru. Используются технологии uCoz, благодаря этому . Тем не менее, карта Метро 2033 актуальна как никогда.

Разработчики 4A GamesИздатель THQИздатель АкеллаИздатель БУКАТехнологии NVIDIAСервис SteamПлатформа PS3Платформа XBOX 360Метро 2033 - Проект Дмитрия Глуховского