Source — игровой движок, разработанный компанией Valve Corporation и используемый ею для создания собственных компьютерных игр. Впервые был использован при создании игр Half-Life 2 и Counter-Strike: Source в 2004 году.
Source является игровым движком, поэтому содержит в себе связку различных компонентов, в числе которых: графический движок, физический движок и т.п.
Одной из особенностей движка является его система анимации персонажей, в частности, лицевая анимация, которая содержит множество средств для создания выразительной мимики и точной синхронизации речи актеров с анимацией; также движок отличает продвинутый игровой искусственный интеллект, который может эффективно управлять противниками или союзниками игрока; графический движок был одним из первых, где применялись сложные шейдерные эффекты; в играх на движке активно использовалась шейдерная вода, отражающая окружающий мир.
Физический движок создан на основе Havok. Он позволяет рассчитывать многие физические объекты, такие как твёрдые тела, упругие тела, верёвки, поверхности и т.п. Существует возможность создания реалистичных транспортных средств, от машины до катера на воздушной подушке и вертолёта. Для просчёта поведения транспортного средства на дороге или в воздухе используется много параметров, например сцепление колёс с дорогой, масса машины. Для придания реалистичного движения телу, используется физика «тряпичной куклы»; созданная заранее анимация может смешиваться с физикой реального времени.
С развитием Source, в него были добавлены: HDR-рендеринг, динамическое освещение и затенение с возможностями самозатенения объектов, мягкими тенями от объектов (присутствует возможность использования традиционных карт освещения), многоядерный рендеринг для многоядерных процессоров, развитая система частиц.
Средства разработки
Source SDK — набор утилит для создания модификаций на движке Source, бесплатно доступный через Steam игрокам. В набор входят: Valve Hammer Editor (редактор карт), Faceposer (утилита для создания лицевой анимации моделей), Model Viewer (программа просмотра моделей формата .MDL).
Помимо трёх основных утилит набор включает утилиту для распаковки базовых файлов при создании нового мода, а также файлы исходного кода библиотек части игр Valve, что позволяет вручную создавать игры с изменёнными характеристиками без декомпиляции движка. Однако для компиляции новых файлов необходимо знание языка C++ и компилятора (например, Visual Studio).