На чем написан source
«Выжить почти невозможно»: как создавался движок Source 2
В конце концов Valve помог перенос на новый движок реальной игры.
Почти все игры Valve созданы на базе собственного семейства движков Source. Создание второго поколения движка заняло у Valve по меньшей мере пять лет: первый проект на Source 2 вышел в 2015 году, разработка движка началась не позже 2010 года. Почему так долго?
Свою версию событий предлагает Ричард Гельдрих — программист, почти пять лет занимавшийся графикой в играх вообще Valve и движком Source в частности. У себя в твиттере Ричард рассказывает, как создавался движок Source 2 и с какими проблемами сталкивалась его команда.
Одной из основных проблем Гельдрих называет действия ветеранов Valve. Для развития движка активно нанимали новых людей, оказавшихся не готовыми к интригам со стороны старых сотрудников компании. Дело было в бонусах.
Чтобы развивать движок, требовалось нанимать новых людей, способных по-новому взглянуть на проблему. Но вот в чем дело: новички не понимали, как на самом деле работает компания. Система бонусов все извратила, но об этом вам никто не рассказывал.
Напротив, старички — разработчики, создавшие первое поколение Source — прекрасно знали, как работает компания, как добиться максимальных бонусов и как доводить коллег до увольнения.
Успехи новичков могли помешать разработчикам-ветеранам получать привычные бонусы. Чтобы избежать этого, вспоминает Гельдрих, ветераны отслеживали успехи новичков, и как только чувствовали угрозу, начинали выживать их из компании.
Выжить было почти невозможно. Когда я пришел в компанию, то попал как раз в команду Source 2. Ощущение было такое, словно вас, окровавленного, бросили к акулам.
Мне удалось выжить лишь потому, что еще оставаясь в команде Source 2, я взялся за Portal 2 и начал исправлять баги рендеринга, которыми никто больше не мог или не хотел заниматься.
В команде Source 2 ко мне и многим другим коллегам относились как к мусору. А вот в командах проектов на движке Source 1 меня очень ценили: я помогал улучшить и поправить рендеринг еще до релиза игры.
У затягивания разработки Source 2 была и еще одна причина. Движок, объясняет Гельдрих, на самом деле долго нигде не использовался: программисты писали код, но реальных проектов на базе Source 2 просто не существовало.
На протяжении многих лет не было ни внешних, ни внутренних команд, делавших на Source 2 какой-то реальный проект. Постепенно разработка движка стала своеобразным конкурсом для программистов: кто сможет быстрее всего написать самую запутанную систему.
Невозможно объективно оценить новый движок, когда нет ни результатов, ни клиентов, а все отзывы подаются только ради максимальных бонусов.
В какой-то момент, вспоминает Гельдрих, он предложил изменить подход и выложить Source 2 хоть куда-нибудь — например, в Steam, чтобы с ним могли поработать другие компании и дать разработчикам хоть какую-то реальную обратную связь.
Где-то 10 лет назад я поговорил с парой руководителей проекта Source 2. К тому моменту движок болтался в подвешенном состоянии уже несколько лет, и я дал им два совета.
Либо выложите демку Source 2 в Steam, чтобы разработчики могли с ним поработать, либо перенесите на новый графический движок игру на базе Source 1.
В конце концов они решили так и сделать. После переноса на Source 2 уже успешной игры [речь идет о Dota 2] движок немедленно смог оправдать свое существование.
Впрочем, прошло еще немало времени, прежде чем сотрудники других команд Valve по-настоящему заинтересовались Source 2. В частности, команда Counter-Strike Global Offensive была очень рада, что ей не надо переходить на новый движок.
На окончательную доводку движка Source 2 у Valve ушло еще несколько лет. Первыми полноценными играми, с нуля разработанными на этой технологии, стали Dota Underlords и Half-Life Alyx, вышедшие в начале 2020 года.
Source Modding — Часть 1 — Основы основ
В мире существует множество игровых движков, но нет ни одного движка, похожего на Source своей историей и особенностями.
В этом (пилотном) уроке мы разберем простейшие действия с исходными кодами SDK, а также внесем наше первое изменение в код Half-Life 2.
Вступление
Немножко терминов
Сам по себе Source SDK — набор утилит и программ, помогающих в разработке собственных уровней и модификаций для игры, а также исходные коды Half-Life 2 и эпизодов.
Игра/Мод (Для сурса нет никакой разницы, игра это или мод :p) — скомпилированные исходные коды SDK.
Так почему же именно Source?!
Что нам необходимо?
Введение в сурс дела
Репозиторий
Исходный код SDK находится в репозитории на GitHub. Склонируйте его в любое удобное для вас место:
Выбор ветки
Если вы хотите написать свой первый мод для Half-Life 2/Episode 1/2, то используйте директорию sp/ и Source SDK Base 2013 Singleplayer.
Стиль кода
Поля класса именуются с префиксом m_, использование венгерской нотации рекомендуется (на то есть свои причины, которые здесь обсуждать нет смысла):
Структура кода
SDK, так же как и движок, разделён на несколько частей.
Вот пути до некоторых таких файлов:
ВАЖНО: При внесении ЛЮБЫХ изменений в VPC файл решение должно быть заново перегенерировано!
Генерация проектов
Исключение HL2
SDK имеет внутри себя также разделение на HL2 и Episodic. Использование второго позволит нам иметь некоторые фичи, например отдельную от стамины шкалу заряда фонарика.
И поэтому, чтобы не компилировать лишний код, мы можем просто исключить HL2 из скриптов:
Другие скрипты
Рядом с creategameprojects.bat также лежит его клон для bash а также два интересных файла — createallprojects.bat и его клон для bash.
Эти два скрипта заставляют VPC создавать проекты не только для чистых библиотек мода, но и для различных утилит, таких как vrad (Radiosity!) или height2normal.
Сейчас использовать я его вам настоятельно не рекомендую, так как свои собственные компиляторы карт нам пока не нужны.
Первичная сборка и запуск
Сборка
Чтобы удостовериться, что вы всё сделали правильно, необходимо собрать всё сгенерированное решение. Итак, собираем (вы же ведь открыли решение в IDE?):
После сборки в папке game/mod_hl2/bin/ или game/mod_episodic/bin/ должны появится наши клиентская и серверная библиотеки!
Запуск — Способ 1 — Steam
Запуск — Способ 2 — Visual Studio
Я рекомендую использовать именно этот способ — не копировать же бинарники мода каждый раз после сборки!
Если карта загрузилась и вы можете передвигаться и двигать камеру мышью — сборка успешна!
Первая модификация в коде
Функции семейства Msg()
Заключение
Чему мы научились?
[Я надеюсь, что] из данного урока мы выяснили:
Что дальше?
Во второй части мы разберем систему сущностей Source SDK.
Общая информация о технологии
Разработчик: Valve Corporation
Серия движков: Source Engine
Дата анонса: 2004 год
Написан на языке: C++
Лицензия: Проприетарное программное обеспечение (Source Engine является частной собственностью Valve)
Последняя версия: Source Engine 2
Source engine вышедший из тени такого гиганта как Valve значительно превзошел возлагаемые на него надежды и проложил себе собственную дорогу к славе. Source разработан Valve Software движок, основанный на Qake Engine поставил собой точку на старых технологиях и подстегнул сообщество к созданию новой эры движков. Первое заявление Гейба Ньюела после приобретения движка «Когдда мы сели и увидели движок, мы поняли, что для создания грандиозного шутера от первого лица, не нужно делать инновационной разработки в этой области в которой, уже все сделано Кармаком».
В первых версиях движка была даже воплощена поддержка динамического освещения, но позднее, из-за недостаточной мощности компьютеров того времени, было принято решение убрать данную технологию. Графический движок был сильно переработан, что бы Half-Life не выглядел как его прямой конкурент Quake. Half-Life должен был не только выглядеть лучше Quake, но и быть лучше Quake в техническом плане. Из-за этой проблемы релиз Half-Life был перенесен почти на год. Half-Life была первой игрой в которой NPC персонажи разделялись на союзных и противников. В движок так же была добавлена скелетная анимация и лицевая мимика- это поистине гениальное нововведение, данная технология сейчас используется во всех физических моделях.
Задавая моделям скелет, программисты могут намного проще и качественнее создавать анимацию персонажей, что так же позволяло создавать различные сцены в играх быстрее и красивее. Нововведение так же сказалось и на лицевой мимике- если раньше персонажи, как правило, чревовещали своим голосом, то теперь их лица обрели свою жизнь. Этот движок позже регулярно перерабатывался и дорабатывался, как Valve, так и сторонними компаниями. Сами Valve обновляли его при помощи системы Steam. Компания Gearbox выпустила на нем несколько игр, из которых стоит отметить Half-Life: Blue Shift и Half-Life: Opposing Force. В модификации от Gearbox были добавлены текстуры большего разрешения, сглаживание и улучшена система лицевой мимики.
Для выхода Counter Strike: Condition Zero совместными усилиями Valve, Gearbox и TurtleRock была разработана новая версия движка, которая добавляла возможность использования высоко детализированных текстур. Текстуры накладывались сверху на другие и создавало ощущение шероховатости плоскости, как например щели, трещины и т.д. Так же были добавлены Alpha-текстуры, таким текстурам можно было задавать степень прозрачности, что используется в ряде сцен.
История разработки движка Source |
Немного истории разработки: началось все с 1998 года, когда разработчики завершая работу над своей первой игрой серии Half-Life, поняли, что в процессе разработки появилось множество наработок и деталей, которые им хотелось бы внедрить в движок, но т.к. игра уже была практически готова, они не рискнули вводить новые решения. В последующие же оды разработчики использовали термины для названия движка непосредственно как «GoldSource» и «Source». GoldSource развивался из исходного кода релизной версии движка, а Src осталась версией для экспериментов и относилась к будущей версии движка.
Таким образом, название Source стали использовать для описания нового движка, а GoldSource стало названием предыдущего поколения технологии. Стоит отметить, что название в дословном переводе означает «источник», однако слово source также употребляется в словосочетании source code — исходный код.
Первой игрой на движке Source стал многопользовательский шутер Counter-Strike: Source, вышедший в октябре 2004 года, он стал своеобразной демонстрацией движка, поэтому в его название и вписано название технологии, являя собой воссозданную с новейшей для того времени графикой версию классического шутера Counter-Strike.
Немногим позже было выпущено продолжение Half-Life — Half-Life 2, сюжетный научно-фантастический шутер, получивший, впоследствии, множество наград и отмеченный как имеющий графику, являющуюся одной из наиболее прогрессивных для своего времени. В Half-Life 2 очень активно используется физический движок, в основу которого лег Havok, лицензированный Valve. При помощи Havok Engine построены многочисленные головоломки, основанные на игре с физическими законами. В дальнейшем тематика головоломок с законами физики была интересно развита в другом проекте Valve — Portal выпущенном в 2007 году, основной идеей игры является перемещение с помощью телепортов. Помимо развитой физический модели, Half-Life 2 отличалась наиболее передовой для своего времени технологией лицевой анимации. Графический движок, использующий DirectX девятой версии, также отличался сильной оптимизацией и мог работать на старых моделях видеокарт, понижая свое качество графики и переходя на более ранние версии DirectX, вплоть до шестой версии.
В дальнейшем Source, чья структура описана разработчиками как крайне гибкая и модульная, был использован в большинстве игр компании, постоянно подвергаясь доработкам и усовершенствованиям. Было добавлено множество современных эффектов, а также расширены разные возможности движка, в том числе, например, и по работе с локациями больших размеров, добавлены новые платформы к списку поддерживаемых. Изначально Source был доступен на Windows, позднее добавились Xbox, Xbox 360, PlayStation 3, с 2010 года — Mac. С 2012 года была добавлена поддержка Linux первой портированной Valve игрой стала Team Fortress 2.
Технические характеристики Source |
Source является игровым движком, поэтому состоит из различных компонентов в числе которых: Физический движок, графический движок, аудио движок и т.д.
Одной из особенностей движка является его система анимации персонажей, в частности, лицевая анимация, которая содержит множество средств для создания выразительной мимики и точной синхронизации речи актеров с анимацией; также движок отличает продвинутый игровой искусственный интеллект, который может эффективно управлять противниками или союзниками игрока; он был одним из первых, где применялись сложные шейдерные эффекты; в играх на движке активно использовалась шейдерная вода, отражающая окружающий мир.
Portal 2 Concept Art by nofingerthumb
Физический движок создан на основе Havok. Он позволяет рассчитывать многие физические объекты, такие как твёрдые тела, упругие тела, верёвки, поверхности и т.п. Существует возможность создания реалистичных транспортных средств, от машины до катера на воздушной подушке и вертолёта. Для просчёта поведения транспортного средства на дороге или в воздухе используется много параметров, например сцепление колёс с дорогой, масса машины. Для придания реалистичного движения телу, используется физика «тряпичной куклы»; созданная заранее анимация может смешиваться с физикой реального времени.
hl inside.ru portal 2 046
С развитием Source, в него были добавлены: HDR-рендеринг, динамическое освещение и затенение с возможностями самозатенения объектов, мягкими тенями от (присутствует возможность использования традиционных карт освещения), многоядерный рендеринг для многоядерных процессоров, развитая система частиц.
sp sabotage darkness0196
SDK tools |
Помимо трёх основных утилит набор включает утилиту для распаковки базовых файлов при создании нового мода, а также файлы исходного кода библиотек части игр Valve, что позволяет вручную создавать игры с изменёнными характеристиками без декомпиляции движка. Однако для компиляции новых файлов необходимо знание языка C++ и компилятора.
Версии движка и обновления |
Ниже перечислены различные внутренние версии движка Source с перечнем игр, в которых применялась конкретная версия движка:
Ранние версии (2003) — ранняя версия движка применялась в утекшей в Сеть в 2003 году бета-версии Half-Life 2, игра была визуально похожа на Half-Life на GoldSource и не содержала множества технологий. На другой версии движка, уже близкой к дебютировавшей с 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, поэтому игровые модификации, выпущенные для более ранних версий, не совместимы с данной и более поздними версиями. Используется в Black Mesa; до 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.
day of defeat source screenshot 25d74092
Source Engine 2011 — используется в Portal 2, 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.
steam big picture 001
Source 2 Engine |
Source 2 001
Компания Valve официально анонсировала Source 2 на конференции разработчиков игр GDC 2015 в Сан-Франциско 3 марта. По словам Valve, Source 2 будет «доступен бесплатно для всех разработчиков контента». Аналогичное заявление на днях сделала компания Epic Games, чей движок Unreal Engine 4 больше не требует ежемесячной подписки для его использования.
«В случае с Source 2 мы хотим увеличить продуктивность труда творческих людей, — сообщил ведущий программист Valve Джей Стелли (Jay Stelly) в пресс-релизе. — С учётом того, как всё более важен становится создаваемый пользователями контент, Source 2 предназначен не только для профессиональных разработчиков. Он позволяет самим игрокам участвовать в создании и разработке их любимых проектов».
Модель распространения от Valve по сравнению с конкурентами выглядит намного интереснее, движок бесплатен для всех, но если выхотите сделать игру на Source 2 будте добры продавать ее через нашу площадку Steam. Source 2 мощный инструмент способный удовлетворить потребности любого разработчика, подробные спецификации движка пока не объявлены, как и дата анонса, но упоминается версии с поддержкой API Vulkan — новая разработка компании Khronos Group, которая позволит создателям игр выжимать максимум из самого современного компьютерного «железа». Пока не заявлено ни одного проекта на Source 2, но в сети гуляет видео в котором на закрытой презентации разработчикам была показана игра Dota 2, запущенная с использованием Source 2. Сейчас у каждого пользователя с аккаунтом Steam есть возможность запустить Dota 2 на Source engine 2.
Ранее так же был опубликован ролик с демонстрацией работоспособности движка и его совместимость с технологией виртуальной реальности, в котором видна лаборатория Aperture Science из дилогии игр Portal.
Valve приложили огромные усилия для того, что бы не быть похожими на всех, в итоге получили уникальную технологию опережавшую свое время. Не смотря на довольно продолжительный срок существования Source engine игры на выглядят довольно не плохо и не стесняли разработчиков в реализации своих идей. Все благодаря постоянным обновлениям не только игр, но и самого движка о чем говорят множество Build версий Source. Игры созданые на Source не только легендарные серии, о которых сышал каждый геймер Half Life, Portal, Left 4 dead, но и игры, которые превратились в киберспортивные дисциплины Counter Strike: Global offensive, Dota 2. На данный момент Valve являются организаторами чемпионата с наибольшим призовым фондом (13 000 000$) и он досих пор растет. Сейчас с анонсом Source 2 повис в воздухе вопрос будет ли это прорыв и новая эра для игр или очередная технология, коих на данный момент довольно много. Как минимум монетизация движка очень впечатляет, а консоль Steam Machines, контролера, Steam Link, Steam Lighthouse (устройство для шлема виртуальной реальности) говорит о намерении Valve проникнуть во все сферы связаные с компьютерными играми. Что ж нам остается только ждать, когда мы сможем насладиться результатами трудов Valve и в полной мере ощутить на себе некст ген индустрии компьютерных развлечений.
Родословная движков: история Source
Как движок Valve стал билетом в индустрию для новичков и моддеров — и почему он уже не так популярен, как раньше
cкриншоты из игр Counter Strike/ Half-life 2/ Portal/ Half-Life: Alyx/ Logo source/ Wikimedia/ Meery Mary для Skillbox Media
Если отсчитывать срок жизни Source с момента выхода Half-Life 2 в ноябре 2004 года, то в 2021-м ему исполнится семнадцать лет. За этот срок игровая индустрия пережила множество потрясений, но творения Valve всё это будто бы совершенно не коснулось.
Казалось бы, давно есть более совершенные инструменты — но Source долгое время пользовалась не только сама Valve, но и разработчики за пределами компании. Многие из игр на движке стартовали с модов. Впрочем, и сам Source начинался как модификация — а к ранним строчкам его кода приложил руку сам Джон Кармак.
Игровой энтузиаст. Любит видеоигры, настолки и рассказывать всем, как они устроены.
Период полураспада
Этим выражением обозначают срок времени, в течение которого половина ядер радиоактивного вещества распадается, а его излучение снижается в два раза. Команда Half-Life выбрала термин в качестве названия игры, чтобы подчеркнуть её научно-фантастический сеттинг, — но эта игра слов также удивительным образом отражает путь, пройденный Source.
Но для начала стоит объяснить: а что же такое, собственно, игровой движок?
Профессионалы индустрии чаще всего сравнивают игровой движок с камерой, на которую снимают фильм, или с заводом, где собирают машины. И в том, и в другом случае речь идёт о наборе инструментов, нужных, чтобы сделать игру, — среди них система физики, освещения, наборы ассетов, редактор уровней и так далее. Создавать всё это заново каждый раз слишком затратно и долго, поэтому разработчики довольно быстро поняли, что проще не писать собственный движок, а лицензировать уже готовый.
К такому выводу, например, пришли Гейб Ньюэлл и Майк Харрингтон, которые в 1996 году ушли из Microsoft, чтобы в августе того же года основать собственную компанию — Valve. Их первым проектом стал шутер Half-Life, созданный на доработанном движке Quake: лицензию помог добыть Майкл Абраш, бывший коллега Гейба и Майка, который теперь работал в id Software.
Готовый редактор здорово помог разработчикам Valve, но им всё равно пришлось серьёзно улучшить движок, чтобы воплотить в жизнь свои амбициозные идеи. В конце концов, Half-Life была не просто шутером — она была первым шутером с более или менее серьёзным сюжетом, за которым игроки от начала до конца следили глазами главного героя, без перерывов на кат-сцены и текстовые описания.
«Наши игры не про то, что мы запираем тебя в комнате с ружьём и кучкой врагов и говорим: „Иди получай игровой опыт“. Взгляните на поездку на поезде в Half-Life — она кинематографическая по духу».
Программисты Valve создали для игры систему скелетной анимации, переработали искусственный интеллект и добавили поддержку драйвера Direct3D. Благодаря этому в игре появились заскриптованные сцены и дружелюбные напарники, а Quake Engine превратился в самостоятельную технологию.
Однако в ноябре 1998 года, примерно за неделю до выхода Half-Life, разработчики встали перед дилеммой. «Мы поняли, что у нас уже есть проекты, над которыми нужно начать работу, но не могли рисковать и добавлять новый код в релизную версию игры», — объяснял Эрик Джонсон, проектный менеджер Valve.
Его же использовали фанаты для создания многочисленных модификаций. Вдохновляясь подходом id Software, которые делились с игроками исходным кодом своих игр, Valvе также выложила инструменты Goldsource в открытый доступ.
В июне 1999 года Мин Ли и Джесс Клифф придумали сетевой шутер про противостояние спецназа и террористов. Вскоре интерес к моду возрос до такой степени, что Valve купила права на бренд и пригласила в компанию Ли и Клиффа. В сентябре 2000 года Counter-Strike 1.6 появилась на полках магазинов.
В рознице игра продавалась в одном наборе с Team Fortress Classic, ещё одним классическим командным шутером. Он тоже начинался как модификация — только но не к Half-Life, а к первой Quake. В 1999 году Valve наняла создателей мода, чтобы те портировали игру на Goldsource — так они хотели прорекламировать движок среди моддеров.
Второе пришествие
Новый движок не писался с нуля: как и его предшественник, он стал результатом глубокой модификации — и история его появления была напрямую связана с продолжением флагманской серии Valve.
Гейб Ньюэлл сразу решил, что Half-Life 2 станет чем-то большим, чем просто сиквелом.
«Что движет нами в первую очередь? Ну, я просто ненавижу идею, что люди впустую потратят время на наши игры. Зачем работать четыре года своей жизни над чем-то, что не будет инновационным и окажется бесполезным?»
В 1999 году, после недель споров и обсуждений, разработчики сошлись на ключевом концепте — интерактивности и правдоподобии игровой вселенной. В новой Half-Life у игроков будет больше способов взаимодействовать с окружением. Сам мир игры станет богаче и разнообразнее. Напарники превратятся из NPC-функций в полноценных персонажей.
Изначально Valve планировали купить для этих целей лицензию на движок Quake III, но быстро осознали, что ни одна существующая технология не потянет их амбиций. «То, что делает id, всегда находится на передовой прогресса, но мы хотели создать другую передовую», — объяснял сооснователь компании Майк Харрингтон.
Разумеется, в процессе работы над Half-Life 2 программисты Valve также добавили в Source массу других улучшений: например, создание текстур на основе материала, из которого состоит объект, или динамические отражения на воде. Большинство нововведений служили практическим целям игры: в отличие от других студий, Valve гналась в первую очередь не за красотой графики, а за увлекательным игровым опытом.
«Это вопрос приоритетов. Джон [Кармак] и его ребята делают крутые вещи. Мы соединяем эти вещи с геймплеем… Нам нужно решить, хотим ли мы потратить время на работу над шейдером или же мы работаем над искусственным интеллектом. Так что в основе нашего процесса лежит вопрос: „Давайте начнём с момента, когда игрок запускает игру, — что он испытывает, что он чувствует?“ То, что мы делаем в техническом плане, исходит из этого».
Гейб Ньюэлл,
интервью с сайтом Rock, Paper, Shotgun, 2007 год
Когда публика впервые увидела техническое демо игры на конференции E3 2003 года, всех поразила фотореалистичная картинка и качество анимации, особенно в тот момент, когда модель Джи-Мэна пятилетней давности сменилась его же моделью из Half-Life 2.
Любительская запись презентации демо Half-Life 2
Тогда многие посчитали, что в Valve переписали движок с нуля — но когда они смогли поиграть сами, выяснилось, что у Source и Goldsource много общего. Например, хитбоксы: их у каждого объекта в Half-Life 2 по две штуки — один достался от Havok, другой — прямиком от первых частей Quake. Этим, кстати, пользуются спидраннеры, чтобы разгоняться до огромных скоростей за счёт махинаций с хитбоксом Havok.
Автоматизированный спидран Half-Life 2, где видно, как главный герой выталкивает себя за пределы уровня, активируя физические хитбоксы предметов
Да и кроме того, было попросту тяжело не заметить, насколько похожи у обеих частей интерфейсы, физика движений и даже экраны подзагрузок между частями уровней. Сам Джон Кармак в конце 2004 года отметил в своём блоге, что в Half-Life 2 «ещё есть кусочки раннего кода Quake».
Их можно сравнить с остатками радиоактивного излучения, которые сохранились после многократных реакций ядерного распада: пускай Source и представлял собой новую технологию, он всё равно сохранил связь с первоисточником. Эта особенность и станет его главным преимуществом.
В чём сила, Source?
В 2003 и 2004 годах игровое сообщество так пристально следило за разработкой Half-Life 2, её переносами и скандалами со сливом одной из ранних версий игры, что почти не заметило, как параллельно с ней шла работа над ещё двумя проектами на Source, которые тоже увидели свет в ноябре 2004 года.
Речь идёт о Counter-Strike: Source и Vampire: The Masquerade — Bloodlines, которую создала сторонняя студия Troika Games. У этих игр были свои проблемы, вызванные тем, что движку не хватало документации и работающих инструментов: тот же Faceposer заработал как следует только в начале 2004 года.
Особенно не повезло Bloodlines: мало того, что её выпустили в незаконченном виде, с массой багов и недоработанных механик, так ещё и 16 ноября, в один день с Half-Life 2, — решение, похоронившее не только шансы игры на коммерческий успех, но и студию Troika Games.
Тем не менее сам факт того, что Valve была готова продать лицензию на новый движок сторонней команде, свидетельствовал о том, что студия будет и дальше поддерживать независимых разработчиков и сообщество фанатов.
Что произошло дальше, вы знаете сами. На Source сделали несколько знаковых игр: Portal, Team Fortress 2, Left 4 Dead, Garry’s Mod, Titanfall, Dota 2. Многие из этих игр начинались как моды. Большинство из них стали народными хитами: та же Portal 2 по-прежнему держит первенство в игровом рейтинге Steam. И это не говоря уже о менее значимых релизах, неофициальных модах, ремейках старых игр, а также десятках тысяч карт, созданных сообществом.
Почему же движок стал популярен даже среди людей, далёких от разработки? На то есть несколько причин.
Доступность инструментов
Прежде всего, Valve предоставила каждому, кто хочет попробовать себя в моддинге или мапмейкинге, доступ к набору под названием Source SDK. В него входят три программы: Hammer Editor, Model Viewer и Faceposer.
Первая из них начиналась ещё в 1996 году как редактор карт Worldcraft, который моддер Бен Моррис разрабатывал для Quake. Вскоре его наняла Valve, а программа, пережив несколько обновлений, получила свое нынешнее название. Hammer Editor — причина, по которой вокруг Counter-Strike до сих пор существует сообщество мапмейкеров. Инструменты редактора позволяют делать карты, не залезая во «внутренности» движка, — и при этом они всё равно будут выглядеть красиво и прекрасно играться в мультиплеерных матчах.
Добавьте к этому редактор моделей персонажей Model Viewer и Faceposer — и получите удобный набор для создания игрового контента, который при этом не требует глубоких познаний в разработке.
Сёрфинг в Counter-Strike
Некоторые из творений фанатов удивляют своей оригинальностью. Так, в 2004 году игрок под ником Marionwed построил для Counter-Strike 1.6 карту, которая на деле была… трассой для сёрфинга. Изначально он создавал surf_the-gap, чтобы играть с друзьями, но процесс оказался настолько затягивающим, что вскоре идея выросла в целый мод, вокруг которого появились отдельные серверы и сообщество.
Сегодня сёрфинг, превратившийся чуть ли не в отдельную дисциплину, продолжает жить и процветать в CS:GO, а на YouTube можно найти множество туториалов и записей забегов от лучших сёрферов.
Подборка мировых рекордов на трассах для сёрфинга в CS:GO
Поддержка сообщества
Когда Valve запустила свою цифровую торговую площадку в марте 2004 года, у компании было три цели: упростить загрузку патчей для игр, усложнить жизнь пиратам и забрать себе часть выручки. Однако вскоре Гейб Ньюэлл понял, что платформа хорошо подходит для поддержки Source.
Во-первых, Steam дал возможность автоматически обновлять инструменты движка на всех компьютерах, подключённых к сервису. Для своего времени это было прорывом: тот же Epic Games Launcher с интеграцией Unreal Engine появится только спустя пятнадцать лет.
Во-вторых, Valve постаралась сделать так, чтобы эта платформа стала одним из главных мест сбора игроков. В 2011 году заработал Steam Workshop, где пользователи делились контентом, созданным на основе их любимых игр: картами, уровнями, артами, модами и так далее. Изначально сервис предназначался для Team Fortress 2, но довольно скоро он распространился на многие другие релизы — так что теперь у фанатов появился ещё один повод проявить свою креативность.
Ещё раньше, в 2005 году, компания запустила ресурс Valve Developer Community (VDC), задачей которого было заменить статичную документацию веб-энциклопедией, которую дополняют и редактируют пользователи Source.
Трейлер The Stanley Parable
Этим сайтом воспользовался в том числе Дэви Риден, автор The Stanley Parable — нашумевшего «симулятора ходьбы», чей остроумный сюжет с множеством развилок деконструировал приёмы нарратива и свободу выбора в видеоиграх. Первая версия проекта появилась в качестве мода к Half-Life 2, собранного Ридом в Source SDK.
«Всё, что я знаю, я почерпнул у сообщества, на Source Wiki и форумах. Каждый моддер, которого я знаю, просто сел и начал изучать инструменты, пользуясь ресурсами сообщества… Если ты пользуешься движком вроде Source, продукт, который ты создашь, на сто процентов зависит от того, сколько времени ты вбухал, чтобы научить себя им пользоваться».
Дэви Риден,
интервью с сайтом Shacknews, 2011 год
Поддержка моддеров
Наконец, как и в случае с Goldsource, компания Гейба Ньюэлла продолжила поддерживать моддеров и начинающих разработчиков, время от время нанимая создателей, чтобы те могли закончить своё творение и выпустить его в качестве полноценной игры.
Самым известным случаем стала, пожалуй, Portal — головоломка, где пазлы решаются с помощью пушки, стреляющей порталами. Игра началась как бесплатная демка Narbacular Drop, которую сделали студенты колледжа DigiPen в качестве дипломного проекта. Там её увидел разработчик Valve Робин Уокер, который предложил создателям показать свою игру в офисе компании.
Вскоре создатели проекта представили его Гейбу Ньюэллу, который тут же нанял всю команду, чтобы она сделала полноценную игру для Valve. В октябре 2007 года Portal вышла в легендарном сборнике The Orange Box, куда также вошли Half-Life 2 с двумя эпизодами и Team Fortress 2 — сиквел к моду, созданному на движке Goldsource. Работал над ним, кстати, всё тот же Робин Уокер.
Когда Гейба Ньюэлла спросили, зачем он нанял моддеров и молодые команды, основатель Valve ответил:
«Игроки должны понимать, насколько важно, когда команды разработчиков остаются вместе. Неважно, насколько хорошую работу делает команда, когда создаёт первую игру, она всегда сделает её намного лучше во второй или в третий раз… Эти ребята сделали кое-что, что лучше, чем 98% геймплея, который я вижу [в других играх]. Идея, что они никогда больше не будут работать вместе, была трагедией. Им нужна была возможность работать вместе и выпустить полноценную игру… Это оказалось хорошим решением».
Гейб Ньюэлл,
интервью с сайтом Rock, Paper, Shotgun, 2007 год
Новое поколение
Несмотря на то, что Source задумывался как технология, которая будет постоянно эволюционировать и обновляться, уже к началу 2010-х годов движок начал показывать свой возраст. Его визуал не мог соревноваться с более современными движками вроде Unreal или Frostbite. Инструментарий тоже.
Кое-кто всё же продолжал использовать Source: например, студия Винса Зампеллы Respawn Entertainment, которая сделала на движке обе части Titanfall и батл-рояль Apex Legends. Продюсер Дрю Маккой рассказывал, что разработчики выбрали Source из-за богатого набора инструментов, оставшихся после разработки других игр, и возможности быстро делать геймплейные прототипы.
Однако им все равно пришлось многое поменять. «В плане показа изображений это вообще-то довольно медленный движок», — говорил Маккой. Чтобы разогнать Source, программисты Respawn переделали почти каждую систему, от сетевых функций до анимации, из однопоточной в многопоточную, переписали звуковой код, добавили собственную систему освещения и ещё множество мелких улучшений.
«Дошло до того, что я ненавижу говорить, что это Source», — заявил Маккой.
Надо сказать, «настоящий» Source тоже не раз переживал значительные изменения. Несмотря на модулярную природу движка, время от времени он требовал доработок, которые ломали обратную совместимость. Так, на версии Source для Left 4 Dead не получится запустить моды для Half-Life 2 — слишком много отличий от «оригинала».
Valve понимала, что со временем их движку будет нужно полноценное обновление. Поэтому ещё в 2007 году, после релиза Half-Life 2: Episode Two, компания начала работать над преемником Source. Во многом поэтому мы так и не увидели третьего эпизода: левел-дизайнер Дарио Казале в беседе с IGN признавался, что команда не хотела браться за продолжение, пока не появится новый движок.
В 2015 году компания представила Source 2 на конференции GDC, а спустя несколько месяцев Dota 2 получила обновление Reborn, в результате которого игра переехала на новый движок. Вместе с ним пришло несколько важных нововведений:
Первыми играми, созданными на Source 2, стали коллекционная карточная игра Artifact и автобатлер Dota Undergrounds, но впервые потенциал движка по-настоящему показала Half-Life: Alyx, шутер для устройств виртуальной реальности, выпущенный в марте 2020 года. Критики расхвалили усилия Valve по переносу культовой вселенной в формат VR, но популярности первых двух частей игра так и не достигла — и то же самое можно сказать о Source 2.
Трейлер Half-Life: Alyx
И дело тут даже не в качестве движка — просто конкуренты всё это время не сидели на месте. За последние десять лет лидерами рынка стали Unreal Engine и Unity, которые могут похвастаться не только более продвинутыми инструментами, но и мощной экосистемой, куда входят обучающие сайты, программные приложения, магазины ресурсов, а в случае с Unreal — ещё и полноценной интеграцией с Epic Games Store. Сегодня в этих двух движках делают всё — от изометрических RPG до шутеров от первого лица с фотореалистичной графикой.
И даже Respawn Entertainment в своей последней игре, Star Wars Jedi: Fallen Order, использовала Unreal Engine 4. Геймдиректор игры Стиг Асмуссен и Винс Зампелла объясняли свое решение просто: движок мощный, а разработчиков, которые знают Unreal, гораздо больше, чем разработчиков, знающих Source.
Что касается движка Valve, то на сегодня точно известно о разработке только одной игры с его использованием — это Sandbox, которую делает студия Гарри Ньюмана Facepunch. Впрочем, Source 2, как и его предок, рассчитан скорее не на разработчиков, а на игровое сообщество — мапмейкеров и моддеров.
«С помощью Source 2 мы хотим усилить продуктивность авторов. Учитывая, насколько важным становится контент, сделанный пользователями, Source 2 создан не только для профессиональных разработчиков, но и для того, чтобы пользователи могли участвовать в разработке их любимых игр. Мы сделаем Source 2 бесплатным для разработчиков контента».
В доказательство своих намерений Valve уже в 2014 году выпустила обновлённую версию SDK для Dota 2, а в 2020 году похожим набором обзавелась Half-Life: Alyx.
Неизвестно, станут ли эти программы началом новой Portal. Но можно сказать, что до сих пор мало где можно найти такие же эффективные дизайнерские инструменты, как в Source. Поэтому этот движок до сих пор лучше всего подходит для того, чтобы собрать собственный мод для Half-Life или карту для Counter-Strike и поделиться им с теми, кому это интересно. И пока у игр Valve есть поклонники, стоит быть уверенным — такие люди обязательно найдутся.
Возможность запустить старую версию программы на новой версии программного обеспечения.