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