Source

Source
Изображение логотипа
Тип игровой движок
Разработчик Флаг США Valve
Аппаратные платформы
Поддерживаемые ОС
Написан на языке C++
Лицензия проприетарная
Последняя версия Source Engine 24 (2013)
Часть серии движков Source
Предыдущий движок серии GoldSrc
Следующий движок серии Source 2
Первая игра на движке Half-Life: Source[1] (2004)
Последняя игра на движке Half-Life 2 RTX[2][3][4] (в разработке)
Логотип Викисклада Медиафайлы на Викискладе

Source — игровой движок, разработанный компанией Valve Corporation для собственного использования и лицензирования другими разработчиками. Получил наибольшую известность благодаря использованию в Half-Life 2 (2004)[5][6]. В дальнейшем применялся в других играх серии Half-Life, серии Counter-Strike, а также в Portal и Portal 2, Team Fortress 2, Dota 2, Titanfall и Titanfall 2, Apex Legends, Dear Esther и многих других[7][8][9].

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

[править | править код]

История разработки движка Source берёт начало в 1998 году: когда разработчики завершали работу над первой игрой своей студии, Half-Life, они поняли, что существуют наработки, которые бы им хотелось внедрить в её движок, но решили не рисковать, вводя новые решения в почти готовую игру, и разделить код движка:

Эрик Джонсон, разработчик Valve:
«Когда мы были очень близки к релизу Half-Life (где-то в неделе до него), мы поняли, что есть несколько проектов, которые надо начинать разрабатывать, но мы не могли рисковать, что-то меняя в коде выходящей версии игры. Мы решили разделить код в VSS (Microsoft Visual SourceSafe) на $/GoldSrc и /$Src. В течение нескольких лет мы использовали эти термины непосредственно как «GoldSource» и «Source». По крайней мере, первоначально ветка кода GoldSrc относилась к исходному коду уже выпущенной версии, а Src относилась к будущему варианту, с более рискованной технологией, над которой мы работали. Когда пришло время показывать Half-Life 2 в первый раз на выставке Е3, это была часть нашего внутреннего общения, ссылаться на Source движок против движка GoldSource, и название прижилось.»[10]

Таким образом, название Source стали использовать для описания нового движка, а GoldSource стало названием предыдущего поколения технологии. Название в дословном переводе означает «исходник, источник», однако слово source также употребляется в словосочетании source code — исходный код.

Первыми играми на этом движке стали Half-Life: Source[1] (выпущенная в июне 2004 года, и ставшая переизданием оригинальной Half-Life с использованием старых ассетов) и Counter-Strike: Source (выпущенная в октябре 2004 года, и ставшая своеобразной демонстрацией движка: используя новые материалы, переработанные карты и преимущества физического движка, она воссоздавала оригинальный Counter-Strike на GoldSrc, но в новом качестве).

Немногим позже, в ноябре того же года, было выпущено полноценное продолжение Half-Life — Half-Life 2, сюжетный научно-фантастический шутер, получивший, впоследствии, множество наград и отмеченный как имеющий графику, являющуюся одной из наиболее прогрессивных для своего времени. Half-Life 2, находившаяся в разработке более шести лет, впоследствии стала наиболее знаковой игрой, использующей Source[5][6]. В этой игре очень активно применялся физический движок, в основу которого лег Havok, лицензированный Valve; при его помощи построены многочисленные головоломки, основанные на игре с физическими законами (в дальнейшем подобная тематика была сильно развита в другом проекте Valve — Portal 2007 года, во главу угла которой поставлена идея телепортации). Помимо развитой физический модели, Half-Life 2 отличалась наиболее передовой для своего времени технологией лицевой анимации. Графический движок, использующий DirectX девятой версии, также отличался сильной оптимизацией и мог работать на старых моделях видеокарт, понижая своё качество графики и переходя на более ранние версии DirectX, вплоть до шестой.

В дальнейшем Source, чья структура описана разработчиками как крайне гибкая и модульная, был использован в большинстве игр компании, постоянно подвергаясь доработкам и усовершенствованиям. Было добавлено множество современных эффектов, а также расширены разные возможности движка, в том числе, например, и по работе с локациями больших размеров (начиная с Half-Life 2: Episode Two, 2007), добавлены новые платформы к списку поддерживаемых: изначально Source был доступен на Windows; позднее добавились Xbox, Xbox 360, PlayStation 3, с 2010 года — Mac[11][12]; с 2012 года — GNU/Linux[13] (первой портированной на Linux игрой стала Team Fortress 2[14]), и т.д.

Дальнейшее развитие

[править | править код]

В 2015 году компанией была анонсирована новая итерация движка, названная Source 2. Анонс состоялся на конференции разработчиков видеоигр Game Developers Conference 2015.

Кроме того, существуют модифицированные другими студиями для своих нужд версии движка Source, которые не предлагались для лицензирования. Например, Titanfall, Titanfall 2 и Apex Legends используют существенно модифицированные силами Respawn Entertainment версии Source[15]. В качестве изменений, внесенных в движок Titanfall 2: доработанный рендер (работает только под управлением DirectX 11), измененное освещение с добавлением ambient occlusion, другой метод сглаживания (MSAA) и пр[16]. Расширен список аппаратных платформ: помимо Windows, игра вышла также на PlayStation 4 и Xbox One.

Технические характеристики

[править | править код]
Скриншот из Half-Life 2: перестрелка на одном из уровней в оригинальной версии игры.
HDR-рендерининг, ставший главной особенностью одного из обновлений Source.

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

Одно из изменений в движке Source — измененное освещение персонажей (слева — оригинальная HL2, справа — Episode One.

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

Физический движок

[править | править код]

Source использует собственный физический движок VPhysics[17], созданный на основе Havok[18][19][20] (первоначально базировался на Ipion Virtual Physics, который позднее был куплен компанией Havok и превращен в одноимённый движок[21][17]). Он позволяет рассчитывать многие физические объекты, такие как твёрдые тела, гибкие тела, верёвки, поверхности и т. п. Существует возможность создания реалистичных транспортных средств, от машины до катера на воздушной подушке и вертолёта. Для просчёта поведения транспортного средства на дороге или в воздухе используется много параметров, например сцепление колёс с дорогой, масса машины. Для придания реалистичного движения телу, используется физика «тряпичной куклы»; созданная заранее анимация может смешиваться с физикой реального времени.

Версии движка Source

[править | править код]

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

Ниже указаны различные внутренние версии движка Source (названия версий можно узнать в ряде случаев из консоли или из SDK).[22][23]

  • Ранние версии (2003) — ранняя версия движка применялась в утекшей в Сеть в 2003 году бета-версии Half-Life 2: игра была визуально похожа на Half-Life на GoldSource и не содержала множества технологий. Меню и GUI в целом были также полностью аналогичны таковым из релизных HL1 и Counter-Strike 1.6[24] На другой версии движка, уже близкой к дебютировавшей с Half-Life 2, создавалась игра Vampire: The Masquerade — Bloodlines.
  • Source Engine 2004 (Source Engine 6) — первая релизная версия движка, впервые примененная в Half-Life 2. Изначально поддерживает масштабирование, возможность обновлений, шейдерный рендеринг, лицевую анимацию, а также динамическое освещение. До 2005 года использовалась в: Half-Life 2, Counter-Strike: Source, Half-Life 2: Deathmatch, Half-Life: Source. Обновлена до Source Engine 7.
  • Source Engine 2005 (Source Engine 7) — обновлённая версия. По сравнению с предшественницей, поддерживает High Dynamic Range Rendering, для демонстрации новых технологий освещения разработчики выпустили Half-Life 2: Lost Coast, в сущности эта игра представляет собой уровень, не попавший в финальную версию Half-Life 2. Движок считается устаревшим, используется в: Half-Life 2: Lost Coast; до 2006 года использовался в: Half-Life 2: Deathmatch, Counter-Strike: Source, Half-Life Deathmatch: Source, Day of Defeat: Source; до 2010 года в Half-Life 2; до 2014 года — в Half-Life: Source.
  • Source Engine 2006 (Source Engine 7: Base Source Engine 2); с комплектом разработчика: Source SDK Base 2006 — третья версия движка, на которой были выпущены несколько игр. Также на нём до 2010 года базировался ряд многопользовательских игр Valve. Он был обновлен и поддерживает обновленную лицевую анимацию, многоядерный рендеринг и обновленный HDR. Для этой версии движка было выпущено большое количество модификаций (кроме того, выпущенные для более ранних версий модификации совместимы и с этой версией), которые не работоспособны на более поздних версиях, поэтому авторами модификаций она все ещё используется. Использована в Half-Life Deathmatch: Source, SiN Episodes: Emergence, Dark Messiah of Might and Magic; до 2009 года использовалась в Day of Defeat: Source; до 2010 года в Half-Life 2: Episode One, Half-Life 2: Deathmatch, Counter-Strike: Source, Garry's Mod.
  • Source Engine 2007 (Source Engine 14); с комплектом разработчика: Source SDK Base 2007 — четвёртая версия движка, сильно доработана и обновлена, использовалась впервые в играх Valve сборника The Orange Box; обновлен шейдерный рендеринг, значительно доработано динамическое освещение и затенение, также появилась система мягких частиц и была добавлена кинематографическая физика, возможность, которая существенно расширила применение физического движка. Движок содержит значительные изменения по сравнению с Source Engine 7, поэтому игровые модификации, выпущенные для более ранних версий, не совместимы с данной и более поздними версиями. До 2010 года в Half-Life 2: Episode Two, Portal, Team Fortress 2, Day of Defeat: Source.
  • Source Engine 2008 (Source Engine 14: Base Source 3) — очередная версия движка с улучшенной кинематографической физикой и некоторыми визуальными эффектами (например, глубиной резкости); применена в Left 4 Dead.
  • Source Engine 2009 (Source Engine 15) — шестая, сильно доработанная версия движка; обновлены все функции, значительно доработана система частиц, лицевая анимация, масштабирование и возможность обновлений. Выпущена с игрой Left 4 Dead 2, позднее до этой версии были обновлены более ранние игры Valve. Используют: Left 4 Dead 2, Zeno Clash, Postal III; с сентября 2010 года: Counter-Strike: Source, Half-Life 2, Half-Life 2: Deathmatch, Half-Life 2: Episode One, Half-Life 2: Episode Two, Portal, Team Fortress 2.
  • Source Engine 2010 (Source Engine 17) — седьмая версия движка. Используется в: Day of Defeat: Source, Bloody Good Time.
  • Source Engine 2011 — используется в Portal 2, Black Mesa, Dota 2, Counter-Strike: Global Offensive, The Stanley Parable.
  • Source Engine Multiplayer (Source Engine 19) — вариант движка, адаптированный для нужд многопользовательских игр; до 2010 года использовали: Counter-Strike: Source, Team Fortress 2, Day of Defeat: Source, Half-Life 2: Deathmatch, Garry's Mod.
  • Source Engine Multiplayer (Source Engine 21) — до 2012 года использовали: Counter-Strike: Source, Team Fortress 2, Day of Defeat: Source, Half-Life 2: Deathmatch, Garry's Mod.
  • Source Engine Multiplayer (Source Engine 23) — улучшена работа с возможностью Big Picture Mode в Steam; до 2013 года использовалась в: Counter-Strike: Source, Team Fortress 2, Day of Defeat: Source, Half-Life 2: Deathmatch, Garry's Mod.
  • Source Engine 2013 (Source Engine 24); с инструментарием Source SDK Base 2013 — одна из последних версий движка, на которую Valve перевели большую часть своих игр[25]. В числе изменений: для оптимизации использования дискового пространства было решено отказаться от использования громоздких .GCF-файлов (архивов с ресурсами игр), в пользу файловой системы под кодовым именем SteamPipe. Игры на новом движке устанавливаются теперь в каталог Steam\SteamApps\Common, а файлы игры хранятся в .VPK-файлах. Для игр Counter-Strike: Source, Team Fortress 2 и Half-Life 2: Deathmatch создана удобная система добавления пользовательского контента (модификаций): присутствует папка custom, в которой создаётся папка с произвольным именем, и уже в неё складываются классические папки материалов модификации (materials, models и т. д.). Добавлена совместимость с Linux. С 2013 года используется в: Half-Life: Source, Half-Life 2, Half-Life 2: Deathmatch, Half-Life 2: Lost Coast, Half-Life 2: Episode One, Half-Life 2: Episode Two, Counter-Strike: Source, Day of Defeat: Source, Portal, Team Fortress 2, Dota 2, Garry's Mod, Tactical Intervention, Alien Swarm.

Средства разработки

[править | править код]

Аспекты разработки на движке Source хорошо документированы. Подробное описание всех терминов, связанных с разработкой, и прочую информацию, можно найти в официальной вики разработчиков Valve, Valve Developer Community[26].

В Steam доступен к свободной загрузке набор инструментов для работы с движком и создателей модов, называющийся Source SDK[27].

Source SDK — набор утилит для создания модификаций на движке Source, бесплатно доступный через Steam игрокам. В набор входят: Valve Hammer Editor (редактор карт), Faceposer (утилита для создания лицевой анимации моделей), Model Viewer (программа просмотра моделей формата .MDL).

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

В качестве архивов с ресурсами изначально применялись файлы формата GCF (Game Cache File), который позднее был заменен на формат VPK (Valve Pak)[28].

Игры, использующие Source

[править | править код]

Движок Source стал технологической основой при разработке разнообразных игр: на нем построены все игры самой компании Valve, выходившие в период с 2004 по 2016 годы, такие как Half-Life 2, Half-Life 2: Episode One, Half-Life 2: Episode Two, Portal, Portal 2, Left 4 Dead, Left 4 Dead 2, Team Fortress 2, Dota 2[К 1], Counter-Strike: Source, Counter-Strike: Global Offensive и многие другие.

Движок пользовался спросом у сторонних компаний, в числе игр на лицензированном Source: Vampire: The Masquerade — Bloodlines, Dark Messiah of Might and Magic, Dear Esther, Tactical Intervention, The Stanley Parable, Titanfall, Titanfall 2, Apex Legends и прочие[7][8][9].

Для Source-игр было выпущено много пользовательских модификаций (для запуска модификации может быть необходима игра, для которой он сделан, однако часто возможен запуск модификации и самой по себе), некоторые из которых переросли в самостоятельные игры. В их числе: Synergy, Insurgency: Modern Infantry Combat[К 2], Dystopia, NeoTokyo, Age of Chivalry[К 3], D.I.P.R.I.P., Eternal Silence, Zombie Panic! Source, Pirates, Vikings and Knights II, Black Mesa: Source[К 4], No More Room in Hell, Lambda Wars.

Примечания

[править | править код]

Комментарии

  1. Позже была перенесена на Source 2.
  2. Позже была превратилась в самостоятельную игру Insurgency.
  3. Позже была превратилась в самостоятельную Chivalry: Medieval Warfare, но на другом движке.
  4. Позже была переделана и переиздана как отдельная игра Black Mesa.

Источники

  1. 1 2 Half-Life: Source (англ.). Steam. — официальная страница игры в Steam. Дата обращения: 10 февраля 2024. Архивировано 18 февраля 2012 года.
  2. James Archer. Half-Life 2 RTX mod brings ray tracing and DLSS to another Valve classic (англ.). Rock Paper Shotgun (22 августа 2002). Дата обращения: 10 января 2024.
  3. Half Life 2 RTX project announced, DLSS3, full ray tracing and more added with NVIDIA RTX Remix (англ.). Videocardz.com (22 августа 2002). Дата обращения: 10 января 2024.
  4. Андрей Шиллинг. Half-Life 2 RTX – в игре появилась трассировка лучей через RTX Remix. Hardwareluxx (22 августа 2023). — «Первыми были улучшены Portal Prelude RTX и Portal RTX, игра Half-Life 2 RTX стала третьей доработкой на оригинальном движке Source Engine». Дата обращения: 10 февраля 2024.
  5. 1 2 Alessandro Fillari. Most Influential Games Of The 21st Century: Half-Life 2 (англ.). GameSpot (21 ноября 2019). — «The linchpin of Half-Life 2 was Valve's proprietary Source engine. The sequel made smart use of its improved rendering tech to increase the scale and density of the world, along with giving each character a higher level of detail». Дата обращения: 14 января 2024. Архивировано 9 октября 2023 года.
  6. 1 2 Andy Kelly. The many ways Half-Life 2 changed gaming forever (англ.). GamesRadar+ (17 ноября 2019). — «Half-Life 2 and the Source engine are landmarks in game design. In the sequel to Gordon Freemans similarly groundbreaking debut, Valve uses a cast of vivid characters and intricately detailed levels to tell a story in a unique way, while creating a fun, dynamic, and brilliantly designed shooter to boot. The joy of sending a sawblade spinning through a group of zombies with the gravity gun is as powerful today as it was in 2004. Its remarkable how well the game holds up to modern scrutiny». Дата обращения: 14 января 2024. Архивировано 3 сентября 2023 года.
  7. 1 2 Lex Luddy. 15 Best Source Engine Games Of All Time (англ.). TheGamer (23 июня 2023). Дата обращения: 14 января 2024. Архивировано 26 марта 2023 года.
  8. 1 2 20 Best Source Games (англ.). IDGB (2023). Дата обращения: 14 января 2024. Архивировано 14 января 2024 года.
  9. 1 2 8 Best Games Made With The Source Engine (англ.). 2GA (24 ноября 2021). Дата обращения: 14 января 2024. Архивировано 4 октября 2022 года.
  10. Valve Developer Community. Страница обсуждения участника Erik Johnson. Valve Developer Community (1 сентября 2005). Дата обращения: 19 июня 2001. Архивировано 15 февраля 2012 года.
  11. «Valve to Deliver Steam & Source on the Mac». Valve (8 марта 2010). Дата обращения: 8 марта 2010. Архивировано 15 февраля 2012 года.
  12. Left 4 Dead 2, Team Fortress 2, Portal and Steam Coming to Mac in April. Kotaku (8 марта 2010). Дата обращения: 8 марта 2010. Архивировано 15 февраля 2012 года.
  13. Michael Larabel. Valve's Gabe Newell Talks Linux Steam Client, Source Engine. Phoronix (25 апреля 2012). Дата обращения: 28 апреля 2012. Архивировано 30 апреля 2012 года.
  14. Gabe Newell. Steam for Linux beta program is now open to the public! Steam (20 декабря 2012). Дата обращения: 20 декабря 2012. Архивировано 17 января 2013 года.
  15. Titanfall 2 тест GPU 2016. GameGPU Wiki (10 января 2017). Архивировано 18 мая 2023 года.
  16. Руководство по настройке графики и производительности в Titanfall 2. Nvidia. Архивировано 16 мая 2022 года.
  17. 1 2 VPhysics. Valve Developer Community. Дата обращения: 11 января 2024. Архивировано 9 декабря 2023 года.
  18. Логотип Havok на вступительном экране Half-Life 2.
  19. Justin Lloyd. Product Review: Havok 2: All Rag-Dolled Up. Game Developer (15 мая 2003). — «We aren't using the newest release yet, but during development we've given them lots of feedback and many of those issues have been addressed in Havok 2». Дата обращения: 11 января 2024. Архивировано 24 марта 2023 года.
  20. Havok, HL 2 and PSP. Megagames (25 марта 2004). — «The 2004 Game Developer's Conference also gave Havok the chance to announce a new marketing campaign that highlights Valve's use of the Havok 2.0 in HL 2. In a move which demonstrates that any problems between the two companies, as a result of the source-code theft, are now water under the bridge, both companies confirmed a campaign which will debut in early spring of 2004». Дата обращения: 11 января 2024. Архивировано 11 января 2024 года.
  21. Havok. Valve Developer Community. — «Havok is a company that licenses the physics middleware used in Source games. The original engine licensed by Valve, Ipion Virtual Physics (IVP), was acquired by Havok in 2000 with the original hefty license fees intact. It is now a legacy product superseded by Havok's in-house middleware suite. Havok was acquired by Microsoft in 2015». Дата обращения: 11 января 2024. Архивировано 8 декабря 2023 года.
  22. Source Engine branches (англ.). Valve Developer Community. — Описание версий в официальной вики разработчиков. Это — категория, она содержит ссылки на статьи о конкретных версиях движка. Архивировано 3 мая 2023 года.
  23. Differences between Source Engine branches (англ.). SourceRuns Wiki. Архивировано 15 января 2021 года.
  24. Half-Life 2: Leaked Beta (англ.). YouTube-пользователь Lupich (2015). — одно из видео-прохождений утекшей версии Half-Life 2. Архивировано 13 июня 2012 года.
  25. Valve. Source engine games on SteamPipe (англ.). Steam Support (2013). Дата обращения: 14 июля 2016. Архивировано 14 июля 2016 года.
  26. Valve Developer Community. Valve Developer Community. Дата обращения: 27 июня 2023. Архивировано 24 сентября 2018 года.
  27. Source SDK. Valve Developer Community. Дата обращения: 28 июня 2023. Архивировано 30 июня 2023 года.
  28. VPK Archive (англ.). Valve Developer Community. Архивировано 21 мая 2023 года.
  • Valve (англ.). — официальный сайт компании-разработчика. Дата обращения: 11 января 2024.
  • Valve Developer Community (англ.). — официальный сайт Valve для разработчиков. Дата обращения: 11 января 2024.
    • Valve Technology (англ.). — условия лицензирования. Дата обращения: 11 января 2024.
  • Source Engine (англ.). Giant Bomb. Дата обращения: 11 января 2024.
  • Source (англ.). MobyGames. Дата обращения: 11 января 2024.
  • Source Inside. — сайт, посвященный движку Source. Дата обращения: 11 января 2024.