Source — игровой 3D- движок, разработанный Valve . Он дебютировал как преемник GoldSrc в 2004 году с выпуском Half-Life: Source , Counter-Strike: Source и Half-Life 2. Другие известные сторонние игры, использующие Source, включают Vampire: The Masquerade – Bloodlines , Dear Esther и The Stanley Parable . Valve выпускала инкрементные обновления движка в течение его существования. На смену Source в 2015 году пришел Source 2 .
Источник отдаленно происходит от движка GoldSrc , который сам по себе является сильно модифицированной версией движка Quake Джона Кармака с некоторым кодом из движка Quake II . Кармак прокомментировал в своем блоге в 2004 году, что « в Half-Life 2 все еще есть фрагменты раннего кода Quake ». [1] Сотрудник Valve Эрик Джонсон объяснил номенклатуру движка в сообществе разработчиков Valve: [2]
Когда мы были очень близки к выпуску Half-Life (менее чем через неделю или около того), мы обнаружили, что уже есть несколько проектов, над которыми нам нужно было начать работать, но мы не могли рисковать и добавлять код в готовую версию игры. В тот момент мы разделили код в VSS на два
/$Goldsrc
и/$Src
. В течение следующих нескольких лет мы использовали эти термины внутри компании как «Goldsource» и «Source». По крайней мере, изначально ветвь кода Goldsrc относилась к кодовой базе, которая была выпущена в настоящее время, а Src относилась к следующему набору более рискованных технологий, над которыми мы работали. Когда пришло время впервые показать Half-Life 2 на E3 , частью нашей внутренней коммуникации было обращение к движку «Source» вместо движка «Goldsource», и название прижилось.
Source разрабатывался по частям с этого форка и далее, медленно заменяя GoldSrc во внутренних проектах Valve [3] и, отчасти, объясняя причины его необычной модульной природы. Разработка Source Valve с тех пор представляла собой смесь лицензированного промежуточного программного обеспечения и кода собственной разработки. Более старые версии Source используют Bink Video для воспроизведения видео, [4] однако более поздние выпуски движка Source используют видео WebM для фонов меню, полноэкранных видео и заставок. [5] .
Source был создан для постепенного развития с новыми технологиями, в отличие от нарушающих обратную совместимость «скачков версий» его конкурентов. Различные системы в Source представлены отдельными модулями, которые могут обновляться независимо. С помощью Steam Valve может автоматически распространять эти обновления среди своих многочисленных пользователей. На практике, однако, время от времени случались разрывы в этой цепочке совместимости. Выпуск Half-Life 2: Episode One и The Orange Box представили новые версии движка, которые нельзя было использовать для запуска старых игр или модов без выполнения разработчиками обновлений кода и, в некоторых случаях, контента. [6] В обоих случаях требовалось значительно меньше работы для обновления его версии, чем у конкурирующих движков.
Ветка Source 2006 — термин, используемый для игр Valve, использующих технологию, которая достигла своей кульминации с выпуском Half-Life 2: Episode One . HDR-рендеринг и цветокоррекция были впервые реализованы в 2005 году с использованием Day of Defeat: Source , что потребовало переписывания шейдеров движка. [7] Первое, наряду с комментариями разработчиков, было продемонстрировано в Half-Life 2: Lost Coast . Episode One представил затенение Фонга и другие более мелкие функции. Технология рендеринга на основе изображений находилась в разработке для Half-Life 2 , [8] но была вырезана из движка перед его выпуском. Она была снова упомянута Гейбом Ньюэллом в 2006 году как часть технологии, которую он хотел бы добавить в Source для реализации поддержки гораздо больших сцен, которые невозможны со строго полигональными объектами. [9]
Ветка Source 2007 представляла собой полную модернизацию движка Source для выпуска The Orange Box . Управляемая художником, многопоточная система частиц заменила ранее жестко закодированные эффекты для всех игр в ней. [ требуется ссылка ] Для ее поддержки была создана инфраструктура инструментов в процессе , которая также поддерживала начальные сборки Source Filmmaker . Кроме того, система лицевой анимации была сделана аппаратно ускоренной на современных видеокартах для качества «художественных фильмов и вещательного телевидения». [10] Выпуск The Orange Box на нескольких платформах позволил провести большой рефакторинг кода , что позволило движку Source использовать преимущества нескольких ядер ЦП. [11] Однако поддержка на ПК была экспериментальной и нестабильной [12] до выпуска Left 4 Dead . [13] Поддержка многопроцессорности была позже перенесена в Team Fortress 2 и Day of Defeat: Source . [14] Valve создала релиз The Orange Box для Xbox 360 собственными силами, и поддержка консоли полностью интегрирована в основную кодовую строку движка. Он включает в себя преобразователи ресурсов, кроссплатформенную игру и интеграцию с Xbox Live . [15] Программный код можно портировать с ПК на Xbox 360, просто перекомпилировав его. [16] Выпуск PlayStation 3 был передан на аутсорсинг Electronic Arts и сопровождался проблемами на протяжении всего процесса. Гейб Ньюэлл упомянул эти проблемы, критикуя консоль во время выпуска The Orange Box . [17]
Ветка Left 4 Dead представляет собой переработку многих аспектов движка Source посредством разработки серии Left 4 Dead . Поддержка многопроцессорности была дополнительно расширена, что позволило реализовать такие функции, как многопользовательский режим с разделением экрана, дополнительные эффекты постобработки, скрипты событий с помощью Squirrel и высокодинамичный AI Director . Интерфейс меню был повторно реализован с новой компоновкой, разработанной для большей ориентации на консоли. Эта ветка позже подпитывала выпуски Alien Swarm и Portal 2 , первая из которых была выпущена с исходным кодом, описывающим многие изменения, внесенные с момента начала ветки. Portal 2 , кроме того, стал результатом того, что Valve взяла на себя проблему портирования на PlayStation 3 внутри компании, и в сочетании с интеграцией Steamworks создала то, что они назвали «лучшей консольной версией игры». [18]
В апреле 2010 года Valve выпустила все свои основные игры Source на OS X , что совпало с выпуском клиента Steam на той же платформе. Valve объявила, что все их будущие игры будут выпущены одновременно для Windows и Mac. [19] [20] Первой игрой Valve, поддерживающей Linux, была Team Fortress 2 , портированная версия которой была выпущена в октябре 2012 года вместе с закрытой бета-версией Linux-версии Steam. Как портированные версии движка для OS X, так и Linux используют OpenGL и работают на Simple DirectMedia Layer . [21] В процессе портирования Valve переделала большинство игр, выпущенных до The Orange Box, в отдельные, но параллельные «однопользовательские» и «многопользовательские» ветки. Код игры для этих веток был опубликован разработчикам модов в 2013 году, и они служат текущей стабильной версией Source, предназначенной для модов. Включена поддержка внутренней системы распространения Steam Pipe от Valve, а также Oculus Rift . [22] В мае 2014 года Nvidia выпустила порты Portal и Half-Life 2 на свою портативную игровую консоль Android на базе Tegra 4 Nvidia Shield . [23]
Source 2 был анонсирован Valve в качестве преемника Source на конференции разработчиков игр в марте 2015 года. [24] Там Valve заявила, что он будет бесплатным для разработчиков с поддержкой графического API Vulkan , а также с использованием нового внутреннего физического движка под названием Rubikon. [25] [26] В июне 2015 года Valve объявила, что Dota 2 , изначально созданная на движке Source, будет перенесена на Source 2 в обновлении под названием Dota 2 Reborn . [27] [28] Reborn был впервые выпущен для публики в качестве опционального бета-обновления в том же месяце, прежде чем официально заменить оригинальный клиент в сентябре 2015 года, что сделало его первой игрой, использующей движок. [29] [30] Движок сменил Source к концу 2010-х годов.
Source SDK — это комплект для разработки программного обеспечения для движка Source, содержащий множество инструментов, используемых Valve для разработки ресурсов для своих игр. Он поставляется с несколькими программами командной строки, разработанными для специальных функций в конвейере ресурсов, а также несколькими программами на основе графического интерфейса, разработанными для обработки более сложных функций. Source SDK был запущен как бесплатный автономный набор инструментов через Steam и требовал покупки игры Source на той же учетной записи. С момента выпуска Left 4 Dead в конце 2008 года Valve начала выпускать «Инструменты для разработки» для отдельных игр, которые представляют собой те же программы, адаптированные для сборки движка каждой игры. После того, как Team Fortress 2 стала бесплатной, Source SDK был фактически открыт для всех пользователей Steam. Когда некоторые игры Source были обновлены до Source 2013, старые Source SDK были постепенно отменены. Три приложения, упомянутые ниже, теперь включены в установку каждой игры. [ необходима цитата ]
В Source SDK упакованы три приложения: Hammer Editor, Model Viewer и Face Poser. Model Viewer — это программа, которая позволяет пользователям просматривать модели и может использоваться для различных целей, включая разработку. Разработчики могут использовать программу для просмотра моделей и соответствующих им анимаций, точек крепления, костей и т. д. Face Poser — это инструмент, используемый для доступа к анимациям лица и системам хореографии. Этот инструмент позволяет редактировать выражения лица , жесты и движения персонажей, синхронизированную речь, последовательность выражений и другие актерские реплики, а также предварительно просматривать, как будет выглядеть сцена в игровом движке. [31]
Hammer Editor, официальный редактор уровней движка , использует инструменты рендеринга и компиляции, включенные в SDK, для создания карт с использованием метода двоичного разбиения пространства (BSP). Геометрия уровня создается с помощью трехмерных полигонов, называемых кистями ; каждой грани может быть назначена текстура , которая также определяет свойства поверхности, такие как звуки, используемые для шагов. [32] Грани также могут быть преобразованы в смещение, что позволяет создавать более естественные формы, такие как холмы.
Объекты декораций или сложная геометрия могут быть импортированы как отдельные 3D-модели из игрового каталога. Эти модели также могут быть использованы как физические объекты или интерактивные реквизиты. Редактор также имеет глубокую логическую систему ввода-вывода , которая может быть использована для создания сложных интерактивных элементов. Сигналы для запуска различных ответов или изменения состояния сущности могут быть отправлены между сущностями, такими как кнопки, NPC , неосязаемые кисти-триггеры и реквизиты карты.
Source Dedicated Server (SRCDS) — это автономный лаунчер для движка Source, который запускает многопользовательские игровые сессии без необходимости в клиенте. Он может быть запущен через Windows или Linux и может поддерживать пользовательские уровни и ресурсы. Большинство сторонних серверов дополнительно запускают Metamod :Source и SourceMod, которые вместе обеспечивают фреймворк поверх SRCDS для пользовательской модификации игрового процесса в существующих играх. [33] [34]
Source Filmmaker (SFM) — это приложение для 3D-анимации, созданное на основе движка Source. [35] Разработанный Valve, этот инструмент изначально использовался для создания фильмов для Day of Defeat: Source и Team Fortress 2. Он также использовался для создания некоторых трейлеров для игр на движке Source. SFM был выпущен для публики в 2012 году.
В июне 2016 года Valve выпустила Destinations Workshop Tools — набор бесплатных инструментов для создания виртуальной реальности (VR), работающих с использованием Source 2 SDK. [36]
В июне 2005 года Valve открыла вики-сайт Valve Developer Community . Он заменил статическую документацию Source SDK Valve на полноценный сайт сообщества на базе MediaWiki . [37]
Сотрудники Valve время от времени выпускают профессиональные и/или академические статьи для различных мероприятий и изданий, включая SIGGRAPH , Game Developer Magazine и Game Developers Conference , объясняя различные аспекты разработки движка Source. [38]
Titanfall , Titanfall 2 и Apex Legends не включены, поскольку их движки, изначально основанные на Source SDK, были модифицированы до такой степени, что фактически стали разными движками. [42]
Крис Грин
: Движок Source поддерживает широкий спектр шейдеров. Шейдер преломления на окне здесь требует, чтобы мы скопировали сцену в текстуру, преломили ее, а затем применили к поверхности окна. Для полной поддержки HDR каждый шейдер в движке необходимо было обновить, поэтому этот шейдер преломления был улучшен для поддержки полного диапазона контрастности.