Source  — игровой движок, разработанный корпорацией Valve[3]. Его особенностями считаются модульная основа и гибкость, синхронизация движения губ с речью, технология выражения эмоций и система физики, работающая по сети. Использует общий для продуктов Valve формат моделей движка .mdl. Физическая часть движка Source включает в себя часть переработанного кода Havok Physics и принципы «Ragdoll-физики», также этот движок может работать с видеокартой DirectX 8-9.

История версий

Первая версия

В начальных стадиях разработки движок Source Engine визуально выглядел как GoldSource, который использовался в первых проектах Valve Software. Игровое меню в стиле Half-Life и первых версий Steam, текстуры, не накладывавшиеся полностью, и в некоторых проявлениях кровь выглядела также, как и в Half-Life. Впервые эта версия использовалась в украденной версии Half-Life 2 (в народе её обозначают как Half-Life 2: Beta или Half-Life 2 Leak), но она была не совершенна и имела очень мало возможностей, например, на некоторых картах (своеобразные уровни) текстуры выглядели слишком ярко или же очень тускло. Также в этой версии движка использовался фонарик, изначально использовавшийся в Half-Life.

Следующие версии

Source Engine 2004

Это первый движок (также имеет название Source Engine 7), на котором была выпущена первая игра. Изначально он поддерживает масштабирование, возможность обновлений, шейдерный рендеринг, лицевую анимацию, а также динамическое освещение и затемнение. Изначально он использовался в некоторых играх до 15 мая 2010 года. Официально эта версия движка признана устаревшей. Игры, в которых использовалась эта версия:

    Half-Life 2 — до 15 мая 2010 года;
    Half-Life 2: Deathmatch — до 15 мая 2010 года;
    Counter-Strike: Source — до 15 мая 2010 года;
    Half-Life: Source

Source Engine 2005

Это вторая версия движка (также имеет название Source Engine 7: Base Source 2, на котором была выпущена вторая игра. Он был обновлён, и помимо предыдущих функций он поддерживает High Dynamic Range Rendering. Была выпущена всего одна игра с этой версией:

    Day of Defeat: Source — до 15 мая 2010 года;
    Half-Life 2: Lost Coast

Source Engine 2006

Это третья версия движка (также имеет название Source Engine 8), на котором были выпущены несколько игр. Он был обновлен и поддерживает обновленную лицевую анимацию, многоядерный рендеринг (но его включение было невозможным) и обновленный HDR. Эта версия движка была популярной до выхода 2007, ею пользовались многие разработчики компьютерных игр. Было выпущено всего несколько игр:

    Half-Life 2: Episode One — до 15 мая 2010 года;
    Half-Life: Deathmatch Source
    SiN Episodes: Emergence
    Dark Messiah of Might and Magic
    Garry's Mod — до 28 сентября 2010 года;

Source Engine 2007

Это четвёртая версия движка (имеет название Source Engine 14). Эта версия была сильно доработана и обновлена. Впервые движок был обновлен с выходом Half-Life 2: The Orange Box, также движок стал поддерживать обновлённый шейдерный рендеринг, значительно доработано динамическое освещение и затенение, также появилась система мягких частиц и была добавлена не полноценная кинематографическая физика. Игры, выпущенные на этой версии движка:

    Half-Life 2: Episode Two
    Portal
    Team Fortress 2

Source Engine 2008

Это пятая версия движка (имеет название Source Engine 14: Base Source 3). В ней была доработана кинематографическая физика и добавлена глубина резкости. Всего одна игра была выпущена на этой версии движка:

    Left 4 Dead

Source Engine 2009

Это шестая, сильно доработанная версия движка (также имеет название Source Engine 15). В этой версии были обновлены все функции и значительно доработана система мягких частиц, лицевая анимация, масштабирование и возможность обновлений. На ней было выпущено несколько игр:

    Left 4 Dead 2
    Zeno Clash

Так же с сентября 2010 года эта версия движка появилась и в предыдущих играх от Valve, а именно:

    Half-Life 2
    Half-Life 2: Deathmatch
    Half-Life 2: Episode One
    Half-Life 2: Episode Two
    Counter-Strike: Source
    Team Fortress 2 и другие.

Source Engine 2010

Это седьмая версия движка (также имеет название Source Engine 17). В этой версии добавлена звуковая подсистема. С этой версией были выпущены две игры:

    Alien Swarm
    Bloody Good Time

Source Engine 2011

Это восьмая и последняя на данный момент версия движка. На этом движке выпущена только одна игра:

    Portal 2

Примечание

Определённо версию движка игр Valve можно назвать только у игр, выходящих до 2007 года включительно. Так как например в Source SDK при выборе игры выбирается и движок, где чётко написано Source Engine 2006/2007/2009, так же в консоли можно посмотреть версию движка (protocol version), исходя из этого есть названия Source Engine 7/14/15. В Left 4 Dead и последующих играх конкретно версию движка назвать нельзя, protocol version тоже отсутствует. Так же версии движков Counter-Strike: Source и Left 4 Dead 2 существенно различаются, но здесь у них отмечена одна версия, Left 4 Dead 2 вышла в 2009 году, а Counter-Strike: Source обновилась до движка Source Engine 2009 в 2010 году. В графическом плане превосходит движок Left 4 Dead 2 , но у Counter-Strike: Source больше мелких улучшений (например, заметно был улучшен сервер браузер), которые появились после выхода Left 4 Dead 2. Zeno Clash вышла раньше Left 4 Dead 2, хоть и в 2009, но, судя по системным требованиям, движок скорее такой же, как у Left 4 Dead, а не как у Left 4 Dead 2.

Технологические возможности

Source обладает значительными преимуществами по нескольким ключевым аспектам разработки игр: анимация персонажей, продвинутый AI, реалистичная физика и шейдерный рендеринг.

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

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

Source содержит в себе сложный сетевой код, обеспечивающий поддержку для 32 игроков по LAN и Internet и содержит в себе полный набор инструментов для левел-дизайна, анимации персонажей, создания демоверсий и многого другого.

Масштабируемость и возможность обновлений

Движок Source сделан с расчётом на регулярное обновление, что выражается в его широких возможностях к модификации и улучшению без изменения каких-либо ключевых архитектурных особенностей движка (вот почему, в частности, не наблюдается изменения версии движка с 1.0 до 2.0). В комбинации с системой цифрового распространения Steam движок может обновляться сразу после выхода обновления. Например, если Source начнет поддерживать физические карты, то все игры, распространяемые через Steam и использующие собственно Source, начнут их поддерживать. Подобное можно было наблюдать после добавления разработчиками в движок HDR (High Dynamic Range).

Впрочем, тотальная модификация всех Source-игр на практике невозможна, потому что создателям модификаций не доступна система обновлений, а значит, развивать движок могут только сами разработчики.

Шейдерный рендеринг

В Source используются шейдеры Direct3D версии 3.0

High Dynamic Range Rendering

Впервые этот эффект был представлен в Day of Defeat: Source, который вышел 26 сентября 2005 года. Поддержка HDR стала одной из первых существенных модификаций движка. Эффект заключается в динамическом изменение яркости всего или отдельных участков изображения (например, адаптация глаз к дневному свету).

Лицевая анимация

Данная технология несколько раз совершенствовалась Valve. Лицевая анимация позволяет компьютерным персонажам максимально эффективно выражать эмоции, и отображать соответствующие произносимым звукам движения губ. Примечательно, что новая технология использует исключительно ресурсы видеокарты, снимая нагрузку с процессора. Технология доступна во всех играх, использующих движок Source, равно как и для всех модификаций для этих игр.

Динамическое освещение и затенение

К релизу Orange Box была доработана система освещения. Помимо старого типа прорисовки теней была добавлена возможность просчета теней по технологии Shadow Map, позволяющей прорисовывать правильные динамические тени (с учетом самозатенения и пр.).

Заранее просчитанное освещение

Геометрия мира освещена при помощи заранее просчитанных карт освещения. Статическое освещение (Vrad) может с высокой точностью (настраивается) просчитывать освещение, включая отражение света от зеркальных или матовых поверхностей, преломление света, частичное затенение (например, полупрозрачные объекты).

Косвенное освещение

Любые объекты в мире могут отражать свет уловленный с других объектов. Например: белый квадрат на чёрном фоне, поскольку квадрат светлее фона, то и небольшая область вокруг него будет светлее.

Глубина резкости

Глубина резкости используется для того, чтобы выдвинуть некоторые объекты на первый план, а другие, те что позади, представить размытыми.

Динамическая коррекция цвета

Для придания нужной атмосферы может использоваться коррекция цвета. Например, можно стилизовать игру под чёрно-белый фильм.

LOD

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

Многоядерный рендеринг

С обновлением движка Orange Box до 15 версии появилась функция многоядерного рендеринга, позволяющая получить прирост производительности на многоядерных процессорах.

Система мягких частиц

Обновление движка к релизу Orange Box внесло новую систему частиц, с помощью которой теперь вырисовываются такие эффекты, как огонь, дым, брызги крови, и т. д.

Кинематографическая физика

Во время той же июльской пресс конференции Electronic Arts было объявлено, что бывший сотрудник Weta Digital Грей Хорсфилд занимается созданием системы кинематографической физики для Source. Примеры такой физики можно увидеть в последнем тизере Half-Life 2: Episode Two, в сцене с разрушающимся мостом. Кинематографическая физика поддерживает систему ключевых кадров, детали к которым добавляет физическая система.

Данная система добавляет следующие возможности к физическому симулятору движка Source:

    Деформируемые объекты — до этого физические модели не могли быть изменены каким-либо образом, кроме как на основе заранее просчитанной анимации.
    Динамическое разрушение игровой геометрии — до этого линии разрушения должны были указываться создателем карты.

Кинематографическая физика поддерживает систему ключевых кадров, однако её точное поведение на данный момент не известно. Вполне вероятно, что у аниматоров появится возможность создавать длительные сцены с маленьким количеством ключевых моментов, детали к которым будет добавлять физическая система. Возможно, что аниматоры будут создавать несколько конечных положений, используемых для просчёта движений между ними (наподобие технологии Endorphin NaturalMotion). В конечном итоге разработчики получают в руки технологию, которая позволяет им создавать гораздо более сложные сцены чем раньше, затрачивая на это те же самые ресурсы.

Эффекты частиц

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

Вода

Вода в Source Engine имеет динамически просчитываемые отражения, а также всплески и брызги.

A.I. System

В Source используется один из самых продвинутых A.I. Персонажи под управлением Искусственного Интеллекта, могут прыгать, бегать, летать, ползать, плавать, закапываться, атаковать. Сложное построение карт перемещений помогает NPC обходить вокруг препятствий, прятаться за ними. NPC ориентируются благодаря слуху, нюху, зрению.

Звуковая подсистема

Звуковой движок построен на основе звуковой библиотеки Miles Sound System версии 6.6a. Библиотека использует для вывода программный интерфейс DirectSound и программный цифровой сигнальный процессор.

Материалы

Система материалов

Source engine использует систему материалов для описания свойств объекта. Из чего сделан объект, тонет ли он, как влияет на другие объекты его поверхность (например: машина скользящая на льду).

Карты нормалей

Для придания материалам объёма в Source Engine используются карты нормалей, которые определяют, как будут освещены отдельные точки на поверхности.

Смешивание текстур

В Source Engine поддерживается смешивание текстур, мягкие переходы от одной текстуры к другой.

Основная физика

Воссоздается благодаря переработанному физическому движку Havok. Он позволяет Движку рассчитывать многие физические объекты, такие как твёрдые тела, упругие тела, верёвки, поверхности и т. п.

Транспортные средства

В Source Engine используется технология для создания очень реалистичных транспортных средств, от машины до катера на воздушной подушке и вертолёта. Для просчёта поведения транспортного средства на дороге/в воздухе, используется очень много параметров, например сцепление колёс с дорогой, вес машины и т. п.

Верёвки, кабели

Динамическое поведение (например, могут встряхиваться или обрываться).

«Тряпичная кукла»

Для придания реалистичного движения тела, используется физика «тряпичной куклы» (в последних версиях Source Engine совмещена с анимацией).

Анимационная физика

В Source Engine анимация может смешиваться с физикой, что дает прирост реалистичности.E