Игровые движки: Valve GoldSrc и Source

Автор: Юрий Ильин

История команды Valve, их первого эпического творения - игры Half-Life - и его продолжения и многочисленных вариаций на тему, - довольно-таки противоречивая штука.

С одной стороны, это продолжение истории движка Quake, поскольку Half-Life начался именно с того, что основатели Valve лицензировали его у id Software (это произошло даже ещё до того момента, как выкристаллизовалась сама идея проекта и сценарий игры). Поэтому невольно приходит на ум поговорка "на чужом горбу да в рай".

С другой, Valve внесли колоссальный вклад в развитие 3D-шутеров: их заслуга состоит не столько в технологических усовершенствованиях движка (хотя и они были, и довольно существенные), сколько в новаторском подходе к дизайну игр такого рода. Half-Life прославила скриптовая "кинематографичность" - когда игрок не просто носится по уровню, отстреливая всё, что движется, а оказывается свидетелем и участником каких-то глобальных и не очень событий, на которые он ещё и не всегда способен повлиять.

В результате этого, а также титанической работы художников, вышла игра, настолько отличающаяся от Quake, что трудно поверить в какое-либо родство между ними.

Скриншот Half-Life. Фомка в качестве первого - и на долгое время основного - оружия. Давайте сюда хэдкрабов!

История разработки

Тот первый Half-Life, который мы все знаем, фактически, по словам его создателей, является Half-Life 2 (а игра, вышедшая именно под этим названием - de facto Half-Life 3).

Дело в том, что, несмотря на гигантскую проделанную работу, создатели Half-Life пришли в какой-то безрадостный момент к выводу, что получившийся дизайн просто никуда не годится. Только тот факт, что у основателей Valve - Гейба Ньюэлла и Майка Харрингтона - были "глубокие карманы" спасли положение. Фактически, они платили разработчикам деньги с собственных счетов.

Ньюэлл и Харрингтон в то время были ветеранами Microsoft, сделавшими неплохую карьеру в компании (Ньюэлл вообще говорит про себя, что он был "продюсером первых трёх релизов Windows") и заработавшими там по миллионном состоянию. Их прежний коллега Майкл Эбраш, ушедший к тому времени из Microsoft в id Software, вдохновил Ньюэлла и Харрингтона на аналогичный поступок, - пойти попытать счастья в игровой отрасли. Что они и сделали.

Благодаря Эбрашу, кстати, они и смогли купить у id Software исходники Quake, - а также получить несколько ценных советов. Затем они набрали команду из самых разношёрстных разработчиков; некоторые из них в буквальном смысле были выдернуты из колледжей, и вместо подработки доставкой пиццы сели за программирование и рисование.

Day of Defeat - один из наиболее популярных модов к Half-Life. Низкие полигоны красивой картинке не помеха.

И только после того, как команда оформилась, Ньюэлл и Харрингтон взялись за поиски издателя. Главная проблема оказалась именно в этом: никто их не знал и мало кто вообще захотел иметь с ними дело. Спасение пришло с самой неожиданной стороны: контракт с ними подписал никто иной как мистер Кен Уильямс, основатель компании Sierra Online (супруга Кена Роберта Уильямс - фактический создатель жанра Quest, к слову). Sierra в тот момент переживала непростые времена, фактически в её каталоге не было трёхмерных шутеров; Doom мало заинтересовал Уильямса, а потом он понял, что промахнулся, и стал искать, кто бы мог сделать шутер для Sierra. Нашёл.

Sierra очень либерально отнеслась к начинающим игроделам. Valve сорвала вообще все сроки разработки (через год, после начала работ над игрой, было принято решение переделать её практически с нуля, - для издателя игры это решение было крайне безрадостным, поскольку им это било по карману напрямую). Тем не менее, поддержки Sierra Valve не лишилась, и уже незадолго до успешного завершения процесса разработки, издатель добился немыслимого совершенно хайпа вокруг ещё не вышедшей игры.

В итоге Half-Life - трёхмерный шутер с великолепным сюжетом про неожиданные последствия научного эксперимента, дико страшной - и для тех времён, и даже для сегодняшнего дня - атмосферой и графикой, не оставлявшей большинству современников шансов (при достаточно пристойных системных требованиях, заметим), - становится в буквальном смысле легендой; чего только стоят 50 разных наград "Игра года"...

...И пожизненная прописка в народном фольклоре:

На фотографии, собственно говоря, Большой Адронный Коллайдер. Sapienti sat.

Counter-Strike, Blue Shift и другие

Про Counter-Strike, антитеррористический командный шутер, слышали, наверное, все.  Чуть меньше народу, вероятно, слышали про такие вещи, как Day of Defeat (командная игра типа CTF — Capture the Flag – на тему второй мировой войны) и Team Fortress.

Counter-Strike. Без комментариев.

Всё это — моды к игре Half-Life, причём сторонними разработчиками создававшиеся изначально. В итоге, впрочем, Valve просто приняла в штат и создателей Counter-Strike, и авторов Day of Defeat.

Отличия этих игр от оригинальной Half-Life, весьма существенны и в техническом плане: чего стоит только (относительно) реалистично стреляющее оружие, чьё поведение смоделированно с реальных образцов — автомат Калашникова АК-74 и крупнокалиберный пистолет Desert Eagle в CS, немецкий пулемёт MG-42 в Day of Defeat.

В «классические» CS и DoD, несмотря на выход уже новых версий на базе движка Source, до сих пор рубятся тысячи и тысячи игроков.

Команда GearBox также разработала два мода (точнее, Expansion Pack'а), в которых события в игре Half-Life получают альтернативное развитие.

А это новый контент, в частности, новая враждебная раса в Opposing Force, а в Blue Shift – ещё и существенный апгрейд графики: полигональность моделей людей и монстров была увеличена вдвое (причём как в аддоне, так и в оригинальной игре), вследствие чего человекообразные персонажи стали всё-таки походить на людей (впрочем, и системные требования подскочили вдвое).

Скриншот Blue Shift. Полигональность моделей увеличена вдвое по сравнению с оригинальной игрой.

Апгрейду со временем подвергся и CS — во всяком случае, полигональность персонажей явно претерпела неплохую «подтяжку меша».

Технические аспекты

Как уже было сказано, движок, легший в основу Half-Life – GoldSrc (это его внутреннее название) это видоизменённый Quake Engine, а точнее его модификация QuakeWorld.

При этом, на последних этапах разработки в исходники были добавлены фрагменты кода Quake II, но в очень небольших количествах.

По некоторым сведениям в Valve переписали около 70% исходников Quake Engine.

Одной из ключевых доработок оказалась скелетная анимация для персонажей (в Quake её не было). Планы Valve по скелетной анимации вызывали у потенциальных издателей будущей такой скепсис, что некоторые, услышав про неё, отказывались вообще дальше разговаривать. Потом, видимо, кусали локти.

Скелетная анимация позволила добиться очень плавной анимации, гораздо более плавной, чем в других современных 3D шутерах.

Ещё одним не слишком типичным шагом оказалась поддержка одновременно софтверного рендеринга, а также 3D ускорения по интерфейсам Direct 3D и OpenGL (сейчас это уже норма).

Серьёзной проработке подвергся «искусственный интеллект» монстров — они могли «тактически мыслить», взаимодействовать друг с другом, - ну и жить хотели тоже сильно. Так что бороться с ними бывало крайне непросто — действительно получалась битва не на жизнь, а на смерть. Как говорится, «Ах, если бы хэдкраб был вашей главной там неприятностью...»

Наконец, важным — для тех времён — достижением оказалась система Decals для отображения, например, дыр от пуль, пятен крови, водных брызг, какой-нибудь растущей на глазах плесени и т.д. По сути дела, это не более чем дополнительные текстуры, которые могут отрисовываться на мизерном расстоянии от любой уже затекстурированной поверхности, так что кажется, что это новая текстура появилась.

Поклонники CS и DoD знают, что в игре в любом месте можно оставить «свой» логотип, и что при взрыве гранаты на земле появляется тёмное пятно, - это и есть Decals.

След от гранаты - это и есть Decal.

Ну, и отдельно следует сказать о встроенном в игру программном DSP, в реальном времени обсчитывавшем акустику каждого помещения, исходя из её объёма и материала, из которого изготовлены стены. Так, выстрел из пистолета в большом металлическом ангаре или под водой будет звучать совсем иначе, нежели выстрел в комнате с бетонными стенами. Надо сказать, что страхолюдная атмосфера, которой славен Half-Life, в огромной степени создаётся именно звуковым сопровождением.

С ним необходимость в фоновой музыке просто отпадает, так что музыки в игре нет вовсе.

Source Engine: Half-Life 2, Counter-Strike: Source и другие

То, что теперь называется Source Engine, по сути дела, являлось изначально «вилкой» при разработке основного движка Half-Life – GoldSrc. Названия GoldSource и Source долгое время использовались только для внутренних нужд, но в итоге Source стал официальным публичным названием.

На нём и был воздвигнут исполин Half-Life 2.

Первая игра заканчивается тем, что некий непонятный G-Man «принимает на работу» главного героя — Гордона Фримена и погружает его в спячку до нужного момента.

Нужный момент наступает спустя одно или два десятилетия, когда Земля подверглась полномасштабному вторжению инопланетян. Угадайте, кого отправляют бороться с ними.

Начало игры происходит в некоем восточно-европейском городе City-17; столь «странный» выбор стартовой локации связан с тем, что арт-директор Half-Life 2 Виктор Антонов провёл всё детство в Болгарии, и его соратники сочли, что восточно-европейское соседство современной и исторической архитектуры, - самое то, что нужно.

Half-Life 2. Город 17.

В целом, геймплей обоих «Полураспадов» схож (в отличие от графики), однако в деталях обнаруживается масса различий: очень многие головоломки связаны с реалистичной физикой, и главным оружием, которым придётся орудовать, становится не фомка, а «гравитационная пушка», позволяющая перетаскивать с места на место предметы практически любого размера и массы, или швыряться ими. Отправка на головы пачке вооружённых противников целого автомобиля — что может быть лучше?

Если разработка первого Half-Life заняла два года, и это считалось очень продолжительным циклом, то работы над вторым Half-Life продолжались в течение целых шести лет. На самых последних, казалось бы, этапах Valve настигла катастрофа: в 2003 году немецкий хакер вломился во внутреннюю сеть компании и стащил исходники Half-Life 2, Counter-Strike: Source и скомпилированную раннюю версию игры.

В игру пришлось вносить существенные изменения, чтобы избежать появления вороха читов и — потенциально - вредоносных программ, эксплуатирующих код игры. В итоге, разработка игры Half-Life 2 растянулась ещё на год.

На хвост хакеру село ФБР, его вычислили и собирались выманить на территорию США под предлогом... трудоустройства специалистом по сетевой безопасности в Valve. Он, дурень, поверил, и уже готовился вылететь в Штаты, но тут его взяли за жабры сами немецкие власти, прознавшие о планах американцев.

Но зато когда игра вышла, раздался дружный восторженный вой. Одно издание поставило игре аж целых 11 баллов — из 10 возможных (без комментариев). Ну и миллионные тиражи и скачивания не заставили себя ждать.

Надо сказать, что Half-Life 2 изначально был лишён мультиплеерного компонента, вместо него геймерам сразу предложили Counter-Strike: Source, и лишь спустя несколько месяцев выпустили Half-Life 2: Deathmatch.

Counter-Strike: Source. Приятнее любоваться красотами, чем террористов отстреливать.

На базе того же движка очень быстро вышли и Day of Defeat: Source, и новый Team Fortress. CS:S и DoD:S, правда, получились в большой степени другими играми, так что не всякий дока из CS 1.6 показывал такие же успехи в CS:S. По крайней мере, на первых порах.

Технические особенности Source

  • Рендеринг по интерфейсу Direct 3D версий 7-9 с поддержкой Shader Model 3
  • Физический движок, отвечающий за реализм взаимодействия внутриигровых объектов (сильно модифицированная и адаптированная под использование в сети версия движка Havok)
  • Скелетная анимация для персонажей с поддержкой инверсной кинематики.
  • Имитация размытия в движении (Motion blur).
  • Технологии лицевой анимации и синхронизации губ (lip-syncing), так что они при разговоре движутся в полном соответствии с тем, что говорит персонаж. Lip-syncing поддаётся локализации, так что игровых персонажей можно заставить говорить на любом языке.
  • Динамическое освещение и затенение.
Day of Defeat: Source. Щас кто-то огребёт.

В 2005 году движок также получил поддержку HDR-рендеринга, а в 2007 — поддержку «мягких частиц», многоядерных процессоров и аппаратную поддержку лицевой анимации.

Поскольку Source Engine весь выстроен по модульному принципу, усовершенствования в него можно вносить «на лету». Свои игры Valve давно распространяет через систему доставки контента Steam, и движок апдейтится также через неё.

На модульном принципе в Valve, кажется, слегка помешались: даже продолжения к Half-Life 2 стали выходить уже отдельными эпизодами. В 2005 году вышла "техническая демонстрация" - Half-Life 2: Lost Coast, в котором обкатывалась технология HDR-рендеринга; затем последовали Half-Life 2: Episode One и Episode Two, отдельные "главы" - с новым геймплеем и новыми противниками, всё более умными.

У моддеров движок Source вызвал некоторое недовольство; во-первых, весь программный код для мода приходится писать на C++, иначе движок его не поймёт в принципе (хотя с выходом игры Left 4 Dead 2 появилась частичная поддержка скриптов на языке Squirrel). Разобраться в игровом SDK оказалось весьма непростым делом, что моддеров тоже не сильно обрадовало (как и некоторых коммерческих лицензиатов движка).

Основным инструментом для создания внутриигрового контента был и остаётся редактор Hammer (ранее именовавшийся WorldCraft), ранние версии которого поддерживали как игры на базе GoldSrc, так и Quake и Quake II. Последние версии «Молота», однако, «воспринимают» исключительно Half-Life 2.

С другой стороны, игры на движках GoldSrc и Source понимает также и редактор QuArK, про который было говорено в предыдущей статье.

Фактически очень немногие сторонние разработчики сейчас используют движок Source в своих играх, при всех его достоинствах. И все эти игры, к слову сказать, издаются Valve.

Продолжение следует.

игры
Комментарии  (обсудить на форуме)
Спасибо, реально очень интересно читать о таких вещах. Нужно сказать Фурсенке, чтобы включил в учебники истории

Спасибо, интересная статья!

Спасибо, интересная статья! я даже начал пытаться сделать свою карту по етим видео урокам: http://3dz.ru/gamedev/

Хорошая статья!Классная статья!дополнительно узнал про движки.
Кстати я делаю карты для контры 1.6,кто хочет тоже научиться делать мапы обязательно вам сюда!:http://cs-mapper.by.ru
сайт русский, от самого маппера Dmitrichа,карты на движке CS 1.6 делать просто,только нужно терпение и у вас всё получится.

Разделы:
Рубрики:
Популярное: