Часть серии статей о |
Графика видеоигр |
---|
Движок шутера от первого лица — это движок видеоигры, специализированный для моделирования трехмерных сред для использования в видеоиграх- шутерах от первого лица . Вид от первого лица относится к виду, когда игроки видят мир глазами своих персонажей. Шутер относится к играм, которые в основном вращаются вокруг владения огнестрельным оружием и убийства других существ в игровом мире, как неигровых персонажей , так и других игроков.
Развитие графических движков FPS характеризуется постоянным ростом технологий, с некоторыми прорывами. Попытки определить отдельные поколения приводят к произвольному выбору того, что представляет собой сильно модифицированную версию «старого движка», а что является новым движком.
Классификация сложна, поскольку игровые движки смешивают старые и новые технологии. Функции, которые считаются передовыми в новой игре в один год, становятся ожидаемым стандартом в следующем году. Игры с сочетанием как старых, так и новых функций являются нормой. Например, Jurassic Park: Trespasser (1998) представила физику в жанре FPS, которая не была распространена до 2002 года. Red Faction (2001) имела разрушаемую среду , что все еще не распространено в движках годы спустя.
Рендеринг игр для этого раннего поколения FPS уже осуществлялся от первого лица и с необходимостью стрелять, однако в основном они были созданы с использованием векторной графики .
Есть два возможных претендента на звание первого FPS, Maze War и Spasim . [1] Maze War был разработан в 1973 году и включал в себя одного игрока, пробирающегося через лабиринт коридоров, отрисованных с использованием фиксированной перспективы. Многопользовательские возможности, где игроки пытались стрелять друг в друга, были добавлены позже и были объединены в сеть в 1974 году. Spasim был первоначально разработан в 1974 году и включал в себя игроков, перемещающихся по каркасной 3D-вселенной. В Spasim могли играть до 32 игроков в сети PLATO . [2]
Разработанный компанией Incentive Software , движок Freescape считается одним из первых фирменных 3D-движков, которые использовались для компьютерных игр, хотя движок не использовался в коммерческих целях за пределами собственных игр Incentive. Первой игрой, использовавшей этот движок, была игра -головоломка Driller в 1987 году. [3]
Игры этого поколения часто имели в своих названиях «3D», но не были способны на полноценный 3D-рендеринг. Вместо этого они использовали методы ray casting 2.5D для создания кажущейся трехмерной среды из 2D-карты и плоские спрайты для рисования врагов вместо 3D-моделей . Эти игры также начали использовать текстуры для геометрии окружающей среды вместо простых каркасных моделей или сплошных цветов.
Hovertank 3D от id Software был первым, кто использовал эту технику в 1990 году, но все еще не использовал текстуры , возможность, которая была добавлена вскоре после этого в Catacomb 3D (1991), затем с движком Wolfenstein 3D , который позже использовался в нескольких других играх. Catacomb 3D также была первой игрой, которая показывала руку персонажа игрока на экране, что еще больше усиливало вовлеченность игрока в роль персонажа. [1]
Движок Wolfenstein 3D был все еще очень примитивным. Он не накладывал текстуры на пол и потолок, а рейкастинг ограничивал стены фиксированной высотой, а все уровни находились на одной плоскости.
Несмотря на то, что он все еще не использовал настоящее 3D, id Tech 1 , впервые использованный в Doom (1993) и снова от id Software , снял эти ограничения. Он также впервые представил концепцию двоичного разделения пространства (BSP). Еще одним прорывом стало введение многопользовательских возможностей в движок. [1] Однако, поскольку он все еще использовал 2.5D, было невозможно нормально смотреть вверх и вниз в Doom , и все уровни Doom были фактически двумерными. [1] [4] Из-за отсутствия оси z движок не позволял поддерживать комнату над комнатой .
Успех Doom породил несколько игр, использующих тот же движок или похожие методы, что дало начало термину клоны Doom . Движок Build , использованный в Duke Nukem 3D (1996), позже устранил некоторые ограничения id Tech 1, например, движок Build мог поддерживать room-over-room, накладывая сектора поверх секторов, но используемые методы остались прежними.
В середине 1990-х игровые движки воссоздавали настоящие 3D- миры с произвольной геометрией уровней. Вместо спрайтов движки использовали просто текстурированные (однопроходное текстурирование, без деталей освещения) полигональные объекты.
FromSoftware выпустила King's Field , полностью полигональную игру в режиме реального времени от первого лица со свободным перемещением для Sony PlayStation в декабре 1994 года. Metal Head , выпущенная Sega для 32X, была игрой-шутером от первого лица в жанре симулятора мехов , которая использовала полностью текстурированную 3D - полигональную графику . [5] Годом ранее Exact выпустила компьютерную игру Sharp X68000 Geograph Seal , полностью 3D-полигональный шутер от первого лица, в котором использовалась игровая механика платформера, и большая часть действия происходила в свободных уличных условиях, а не в коридорных лабиринтах Wolfenstein 3D . В следующем году Exact выпустила ее преемницу для консоли PlayStation, Jumping Flash!, которая использовала тот же игровой движок, но адаптировала его, чтобы сделать больший акцент на платформер, а не на стрельбе. Серия Jumping Flash! продолжала использовать тот же движок. [6] [7]
Dark Forces , выпущенная в 1995 году LucasArts , считается одной из первых «настоящих 3D» шутеров от первого лица. Её движок, Jedi Engine , был одним из первых движков, поддерживающих среду в трёх измерениях: области могут существовать рядом друг с другом во всех трёх плоскостях, в том числе друг над другом (например, этажи в здании). Хотя большинство объектов в Dark Forces являются спрайтами, игра включает поддержку текстурированных 3D-рендеринговых объектов. Другая игра, считающаяся одной из первых настоящих 3D шутеров от первого лица, — этошутер Descent 1994 года от Parallax Software . [ требуется цитата ]
Движок Quake ( Quake , 1996) использовал меньше анимированных спрайтов и использовал настоящую 3D-геометрию и освещение, используя сложные методы, такие как z-буферизация, для ускорения рендеринга. Уровни в Quake и некоторых последующих движках созданы с помощью геометрических объектов, называемых кистями , которые позволяют строить карты в трех измерениях, а не 2D-карты, проецируемые в 3D, как это делал Doom . Quake также была первой настоящей 3D-игрой, которая использовала специальную систему проектирования карт для предварительной обработки и предварительного рендеринга 3D-окружения: 3D-окружение, в котором происходила игра (впервые названное Картой ) , было упрощено во время создания карты, чтобы сократить обработку, необходимую при игре.
Статические карты освещения и 3D-источники света также были «запечены» во время рендеринга и добавлены в файлы BSP , хранящие уровни. Эти функции позволяют добиться более реалистичного освещения, чем это было возможно ранее.
Первые графические процессоры [8] появились в конце 1990-х годов, но многие игры в то время все еще поддерживали программный рендеринг. id Tech 2 ( Quake II , 1997) была одной из первых игр, использовавших преимущества аппаратного ускорения графики [9] ( позже id Software переработала Quake , добавив в игру поддержку OpenGL ).
GoldSrc , движок, созданный на основе движка Quake компанией Valve для Half-Life (1998), добавил поддержку Direct3D и скелетную структуру для лучшего рендеринга NPC , [10] [11] а также значительно улучшил искусственный интеллект (ИИ) NPC по сравнению с движком Quake. [10]
В этот период появились первые видеокарты с Transform, clipping и lighting (T&L) . Первой картой с этой инновационной технологией стала GeForce 256. Эта карта превосходила то, что могла предложить 3dfx в то время, а именно Voodoo3 , которая не дотягивала только из-за отсутствия T&L. Такие компании, как Matrox с их G400 и S3 с их Savage4, были вынуждены уйти с рынка 3D-игр в этот период времени. Год спустя ATI выпустила Radeon 7200 , настоящую конкурирующую линейку видеокарт.
Хотя все игры этого периода поддерживали 16-битный цвет , многие также принимали 32-битный цвет (на самом деле 24-битный цвет с 8-битным альфа-каналом). Вскоре многие сайты с эталонными тестами начали рекламировать 32-битный цвет как стандарт. Unreal Engine , используемый в большом количестве игр FPS с момента его выпуска, был важной вехой в то время. [12] Он использовал Glide API , специально разработанный для графических процессоров 3dfx , [11] вместо OpenGL . Вероятно, главной причиной его популярности было то, что архитектура движка и включение языка сценариев упрощали его модификацию . [13] [14] Еще одним улучшением Unreal по сравнению с предыдущим поколением движков была его сетевая технология , которая значительно улучшила масштабируемость движка в многопользовательском режиме . [15]
id Tech 3 , впервые использованный для Quake III Arena , улучшился по сравнению со своим предшественником, позволив хранить гораздо более сложные и плавные анимации. Он также улучшил освещение и затенение и представил шейдеры и кривые поверхности. [16]
Новое графическое оборудование предоставило новые возможности, позволив новым движкам добавлять различные новые эффекты, такие как эффекты частиц или туман, а также увеличивать детализацию текстур и полигонов. Во многих играх были представлены большие открытые среды, транспортные средства и физика тряпичной куклы .
Средние требования к видеооборудованию: обычно требовался графический процессор с аппаратным T&L , такой как DirectX 7.0 GeForce 2 или Radeon 7200. Рекомендовались GeForce 3 или Radeon 8500 следующего поколения из-за их более эффективной архитектуры, хотя их вершинные и пиксельные шейдеры DirectX 8.0 были малопригодны. Несколько игр по-прежнему поддерживали чипсеты DirectX 6.0, такие как RIVA TNT2 и Rage 128 , и программный рендеринг (с интегрированным Intel GMA ), хотя было очевидно, что даже мощный процессор не мог компенсировать отсутствие аппаратного T&L.
Игровые движки, изначально разработанные для платформы ПК , такие как Unreal Engine 2 , начали адаптировать для консолей шестого поколения, таких как PlayStation 2 или GameCube , которые теперь обладают вычислительной мощностью, достаточной для обработки видеоигр с интенсивной графикой.
Новое поколение графических чипов позволило текстурам на основе пиксельных шейдеров , рельефному отображению и технологиям освещения и теней стать обычными. Технологии шейдеров включали HLSL (для DirectX ), GLSL (для OpenGL ) или Cg .
Это привело к устареванию графических чипов DirectX 7.0, таких как широко распространенные GeForce 2 и Radeon 7200 , а также чипсетов DirectX 6.0, таких как RIVA TNT2 и Rage 128 , и интегрированных графических ускорителей на плате . До этого поколения игр мощный ЦП был способен в некоторой степени компенсировать старую видеокарту. Средние требования к видеооборудованию: минимум — GeForce 3 или Radeon 8500 , настоятельно рекомендуется GeForce FX, Radeon 9700 (или другие карты с поддержкой Pixel shader 2.x ). Radeon 9700 продемонстрировал, что сглаживание (AA) и/или анизотропная фильтрация (AF) могут быть полностью пригодными для использования опциями даже в самых новых и требовательных играх того времени, и привел к широкому принятию AA и AF в качестве стандартных функций. До этого многие графические чипы поддерживали AA и AF, но это сильно снижало производительность, поэтому большинство геймеров предпочитали не включать эти функции.
Благодаря этим новым технологиям игровые движки стали легко интегрировать внутренние и внешние среды, использовать шейдеры для более реалистичной анимации (персонажи, вода, погодные эффекты и т. д.) и в целом повысить реализм. Тот факт, что GPU выполнял некоторые задачи, которые уже выполнялись CPU , и, в более общем плане, возросшая доступная вычислительная мощность позволили добавлять реалистичные физические эффекты в игры, например, с включением физического движка Havok в большинство видеоигр. [17] Физика уже была добавлена в видеоигру в 1998 году с Jurassic Park: Trespasser , но ограниченные аппаратные возможности в то время и отсутствие промежуточного программного обеспечения, такого как Havok, для обработки физики сделали ее технической и коммерческой неудачей. [18]
id Tech 4 , впервые использованный для Doom 3 (2004), использовал полностью динамическое попиксельное освещение , тогда как ранее 3D-движки в основном полагались на предварительно рассчитанное повершинное освещение или карты освещения и затенение Гуро . Подход Shadow volume, используемый в Doom 3, позволял создавать более реалистичное освещение и тени, [19] но это имело свою цену, поскольку он не мог отображать мягкие тени, и движок был в основном хорош в помещениях. Позже это было исправлено для работы с обширными открытыми пространствами с введением технологии MegaTexture в движке id Tech 4 .
В том же году Valve выпустила Half-Life 2 , работающую на их новом движке Source . Этот новый движок был примечателен тем, что, помимо прочего, имел очень реалистичную лицевую анимацию для NPC , включая то, что было описано как впечатляющая технология синхронизации губ . [20]
Дальнейшие усовершенствования графических процессоров , такие как Shader Model 3 и Shader Model 4 , ставшие возможными благодаря новым графическим чипсетам, таким как серии GeForce 7 или Radeon X1xxx , позволили улучшить графические эффекты.
Разработчики этой эпохи 3D-движков часто хвастаются своим все более фотореалистичным качеством. Примерно в то же время киберспорт начал привлекать внимание. Эти движки включают реалистичные материалы на основе шейдеров с предопределенной физикой, среды с процедурными и вершинными шейдерными объектами ( растительность , мусор, созданные человеком объекты, такие как книги или инструменты), процедурную анимацию , кинематографические эффекты ( глубина резкости , размытость изображения и т. д.), рендеринг с высоким динамическим диапазоном и унифицированные модели освещения с мягким затенением и объемным освещением .
Однако большинство движков, способных создавать подобные эффекты, являются развитием движков предыдущего поколения, таких как Unreal Engine 3 , Dunia Engine и CryEngine 2 , id Tech 5 (который использовался с Rage и использует новую технологию виртуального текстурирования [21] ).
Первые игры, использующие Unreal Engine 3, были выпущены в ноябре 2006 года, а первая игра, использующая CryEngine 2 ( Crysis ), была выпущена в 2007 году.
Дальнейшие усовершенствования графических процессоров , такие как Shader Model 5 , ставшие возможными благодаря новым графическим чипсетам, таким как серии GeForce 400 или Radeon HD 5000 и более поздние, позволили улучшить графические эффекты, такие как динамическое смещение карт и тесселяция .
По состоянию на 2010 год были выпущены две предстоящие эволюции основных существующих движков: Unreal Engine 3 в DirectX 11 , на котором основана Samaritan Demo [22] (которая используется в Batman: Arkham City , Batman: Arkham Knight и других играх UE3 на базе DX11) и CryEngine 3 , на котором работают Crysis 2 и 3 .
Немногие компании обсуждали будущие планы относительно своих движков; id Tech 6 , будущий преемник id Tech 5, был исключением. Предварительная информация об этом движке, который все еще находился на ранних стадиях разработки, как правило, показывала, что id Software смотрела в сторону направления, в котором трассировка лучей и классическая растровая графика будут смешаны. [23] Однако, по словам Джона Кармака , аппаратного обеспечения, способного поддерживать id Tech 6, еще не существовало. [24] Первая игра, использующая движок, Doom , была выпущена в середине 2016 года.
В сентябре 2015 года Valve выпустила Source 2 в обновлении Dota 2. [25]
Вероятно, самой большой привлекательной чертой Unreal была возможность его модифицировать. Тим Суини (основатель Epic) написал простой скриптовый движок для игры под названием UnrealScript.
Главным преимуществом новой системы освещения (помимо упомянутого прямого контроля художника над своим шедевром) является возможность рендеринга теней в реальном времени для каждого кадра (...) Во-вторых, с помощью теневых объемов очень сложно рендерить размытые, "мягкие" тени, преобладающие в реальности. (...) В-третьих, подводя итог двум предыдущим абзацам, приходим к выводу, что теневые объемы плохо подходят для рендеринга теней на больших открытых пространствах.
Но все же невероятно реалистичные детали и непревзойденное внимание к деталям в анимации лица и тела оживляют персонажей, как ни одна игра даже близко не подошла к этому. Шесть лет назад было несколько моделей лиц, мешки воображения и несколько отличных озвучек; теперь у нас есть огромный список актеров, у каждого из которых есть что сказать (с впечатляюще точной динамической синхронизацией губ), и они делают это с таким впечатляющим набором видимых эмоций, которые наполняют игру головокружительной достоверностью, которая навсегда изменит то, как люди смотрят на игры.
Джон считает, что трассировка лучей полезна для очень специфической модели данных, которую он создал, называемой "разреженные воксельные октодеревья", которая позволяет ему хранить огромные объемы данных таким образом, чтобы к ним было легко получить доступ с помощью методов трассировки лучей (...). Эта новая модель данных и алгоритм, над которыми сейчас работают для id Tech 6, позволят, по словам Джона, создать практически бесконечное количество геометрических деталей в мире без проблем, наблюдаемых с движками тесселяции или попытками локального хранения гигабайт данных.
Я все еще думаю, что будет еще одно поколение, в котором мы виртуализируем геометрию с id Tech 6 и сделаем некоторые вещи, которые действительно революционны. (...) Я знаю, что мы можем дать толчок следующему поколению, если мы сможем виртуализировать геометрию так же, как мы виртуализировали текстуры; мы можем делать вещи, которые никто никогда не видел в играх раньше.