Создание своей RPG на движке Source

Если вы хотите научиться разрабатывать игры, моддинг существующих игр - отличное начало для изучения дизайна и создания прототипов без необходимости изобретать велосипед. В этой статье мы будем использовать Source Engine от Valve (на этом движке созданы Portal, Left 4 Dead, Half-Life и Team Fortress 2) для создания RPG-подобных квестов в Half-Life 2: Episode 2.

Обратите внимание, что эта статья подразумевает, что у вас есть базовые знания по Source SDK Hammer Editor и Face Poser, так что это проект не для начинающих, а скорее для программистов среднего уровня.

Если у вас нет этих навыков, вы может изучить по разработке игр на нашем сайте: например, созданию игр или .

Для освоения этого материала вы должны знать, как создавать и компилировать карты, размещать сущности и настраивать триггеры, прежде чем повторять действия, описанные здесь. Если вы захотите добавить свои диалоги, вам нужно знать ещё и как создавать и сохранять сцены в Face Poser. Ничего страшного, если вы никогда не работали с Source SDK раньше - в интернете полно статей, описывающих, как им пользоваться. Начните с Valve Developer Wiki , которая содержит множество полезных статей по теме, затем сходите на design3 (кстати, я один из участников проекта) за пошаговыми видеоинструкциями по Source Engine. Минимальные системные требования для использования инструментов, описанных выше, такие же, как для запуска Half Life 2: Episode 2: процессор на 1.7 ГГц, 512 Мб RAM, DirectX 8.1 и Windows не ниже XP. Ещё вам понадобится микрофон.

Подготовка

Прежде чем мы начнём, убедитесь, что у вас есть всё необходимое. Во-первых, вам нужна установленная копия Half-Life 2: Episode 2. Мы будем использовать эту игру, потому что это самая новая одиночная игра на движке Source, к которой можно написать мод. Если у вас нет второго эпизода, скачайте его с то простой Half-Life 2 тоже должен подойти.

Если вы хотите добавить свой диалог в эту RPG, вам понадобится приложение для обработки аудио. Мы будем использовать - оно свободное, имеет открытый исходный код и отлично подходит для наших задач.

Иллюстрация 1 - наш уровень в Hammer Editor

Сейчас наш уровень - просто грубый прототип, который полностью не текстурирован и не детализирован. Лучше всего именно с этого и начинать, а деталями заниматься уже в самом конце. Итак, давайте уже начинать делать нашу RPG. Не забывайте вовремя сохраняться! Некоторые нововведения в Hammer’е не полностью поддерживаются в Episode 2 и могут вызвать аварийное завершение редактора.

Создаём структуру квеста

В этой статье мы сосредоточимся на получении и выполнении заданий, построение системы развития персонажа с очками опыта - тема для отдельной статьи. На нашем уровне будут три неигровых персонажа (NPC), каждый будет давать нам по два задания. Мы можем их использовать также для предоставления игроку информации, атак на него или просто для того, чтоб добавить немного жизни уровню.

Для того, чтобы уровни были организованы, давайте использовать следующую конфенцию имён:

Иллюстрация 2 - конвенция имён, которую мы будем использовать

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

Прежде чем мы всё-таки начнём делать квесты, нам нужно разбить их на меньшие компоненты, а именно:

  • Trigger Start : запускает задание;
  • Sprite : показывает, где квест может быть начат;
  • Giver : NPC, который даёт это задание;
  • Scene Start : диалог, описывающий задание;
  • Sound Start : звук, который уведомляет игрока о получении задания;
  • Text Start : текст, описывающий задание;
  • Relay Content : прослойка, которая запускает необходимые для квеста процессы (например, спаунер NPC);
  • : <основное содержимое квеста - после выполнения оно должно запустить Relay Complete>;
  • Relay Complete : прослойка, которая настраивает уровень для последующего задания;
  • Text End : текст, который описывает, как выполнить задание;
  • Sprite : снова появляется, чтобы указать, с каким NPC нужно поговорить;
  • Trigger End : триггер, инициирующий окончание задания;
  • Scene End : заключительный диалог;
  • Sound End : звук, знаменующий окончание задания;
  • : <если есть следующее задание, оно активируется здесь>.

Если вы что-то из этого не поняли, не переживайте - пока мы просто составляем список всего необходимого. Это список лишь для одного задания, так что нам понадобится создать действительно много всяких сущностей. Чтобы не засорять мозг лишним, мы будем использовать VisGroups для разделения заданий и сокрытия того, что сейчас не нужно. VisGroups позволяет вам обозначить группы кистей и сущностей и быстро скрывать или показывать их. Если группа скрыта во время компиляции, всё, что содержится в этой группе, будет пропущено и не появится в игре. Это очень удобно, ведь вы можете избирательно просматривать отедльные группы объектов, сосредоточившись на них, а ничто другое вам мешать не будет.

Создание шаблона задания

Мы будем использовать шаблоны (instancing) - отличный инструмент Hammer Editor’а. Это позволит ссылаться нашей основной карте на другие. Мы создадим экземпляр задания, который в дальнейшем будем использовать как шаблон. После того, как мы его закончим, мы сможем просто раскопировать его и немного отредактировать настройки копий так, чтобы каждое задание стало уникальным. Таким образом, нам не придётся делать одну и ту же нудную работу много раз. К сожалению, Episode 2 не полностью поддерживает эту технологию, поэтому нам придётся конвертировать экземпляры в уровни перед компиляцией (мы коснёмся этого позже).

Для того, чтобы настроить наш шаблон задания, нам нужен новый файл карты. В Hammer’е выбирайте File, затем New, карту сохраните как «quest_instance» в папке «instances» в том же месте, где лежит ваша основная карта.

Лучше всего размещать сущности как можно ближе к координатам (0,0,0). Также стоит размещать их выше плоскости XY, чтобы не потерять при переносе. Для правильного размещения вы можете воспользоваться Selection Tool. Наш шаблон будет автоматически добавлять выбранный нами префикс ко всем сущностям внутри него. Триггеры и выставление некоторых значений буду описаны позднее, так что не переживайте, если вам показалось, что мы что-то упустили.

Нам понадобятся все сущности, упомянутые в списке выше. Давайте начнём с добавления NPC. Выберите Entity Tool, найдите npc_citizen в выпадающем списке и разместите его у начала координат. Этот парень будет давать нам задание. Нажмите Alt+Enter, чтобы открыть его настройки, и дайте ему имя «giver». Выставьте параметр Prevent picking up weapons? на Yes . Примените настройки нажатием на Apply и перейдите на панель Flags. Выставьте флаг Not Commandable , иначе наш работодатель будет всюду таскаться за игроком по карте. Выставьте ещё Don"t drop weapons и Ignore player push (чтобы он не уступал дорогу игроку).

Теперь нам понадобится триггер, который будет отслеживать, подошёл ли игрок к… Давайте называть его Гриша, потому что «этот парень» или «quest giver» звучат не очень хорошо. Так вот, чтобы отслеживать, подошёл ли игрок к Грише, создайте кисть со следующими размерами: 64 юнита в высоту, 32 юнита в ширину, 4 юнита в длину - и разместите объект прямо перед Гришей. Назначьте этому объекту текстуру nodraw , чтобы она не рендерилась. Чтобы изменить текстуру, выделите объект, переключитесь на Toggle texture, нажмите кнопку Browse, используйте фильтр по nodraw , двойным кликом выберите его и примените параметры (кнопка Apply). Затем назначьте этой сущности триггер, нажав Ctrl+T и выбрав func_button из списка. Назовите его «trigger_start» и измените скорость (speed) до нуля. Снова сохраните изменения.

Теперь давайте добавим спрайт, который будет уведомлять игрока, что у этого NPC есть задание. Поместите сущность env_sprite сверху от головы Гриши и откройте окно Object Propeties, нажав Alt+Enter. Назовите его «Sprite». Теперь нам нужно изменить режим ренедринга, чтобы спрайт отображался в игре корректно. В том же окне найдите опцию Render Mode и выберите World Space Glow из выпадающего меню. Вы можете изменить текстуру этого спрайта, используя это меню, если хотите. Убедитесь, что во кладке Flags стоит галочка напротив Start on .

Займёмся диалогом. Найдите в списке сущностей logic_choreographed_scene и поместите его за Гришей. Нам понадобится минимум две таких на каждый квест - одна для начального диалога, вторая для заключительного - так что скопируйте её и вставьте вторую поверх первой. Дайте им имена «scene_start» и «scene_end» соответственно. Добавление собственно диалога мы рассмотрим несколько позже.

Кроме всего этого, нам ещё нужны звуковые уведомления о том, что игрок получил задание и о том, что он его выполнил. Создайте две сущности ambient_generic , поместите их рядом с NPC и назовите «sound_start» и «sound_end». Если у вас нет своих подходящих звуков, используйте plats\elevbell1.wav (вводить нужно в поле Sound Name). На вкладке флагов все три опции должны быть отмечены галочкой.

После этого нам нужно добавить текст, который будет описывать задание. Создайте две сущности game_text и назовите их «text_start» и «text_end». Выставьте для обеих достаточно высокий параметр Hold Time (порядка 99999), чтобы текст не исчез, пока мы сами его не уничтожим. Нам нужно, чтобы текст был сбоку экрана и не мешал игроку, так что выставьте у обеих сущностей поля X и Y на 0.1.

Нам понадобится несколько прослоек, чтобы систематизировать триггеры. Прослойка (relay) - сущность, которая при активации запускает другие сущности. Одна прослойка обычно запускает действия, которые должны выполняться в одно время и в одном месте, чтобы ими было удобнее управлять. Создайте две сущности logic_relay и разместите их рядом с Гришей. Назовие их «relay_content» и «relay_complete». Эти две прослойки будут запускать все сущности в задании. Особенности конкретного задания придумайте сами - вам нужно установить для игрока цель вроде «собрать столько-то таких-то предметов» или «добраться до такого-то места». Для проверки выполнения этих условий вы можете использовать такие сущности, как math_counter или сущности областей вроде trigger_once . Когда эти сущности выяснят, что задание пройдено, они должны будут запустить «relay_complete», который, в свою очередь, запустит всё необходимое для ознаменования конца задания.

Добавим ещё один триггер напротив Гриши. Он будет практически идентичным стартовому триггеру, поэтому просто скопируйте «trigger_start» и переименуйте его в «trigger_end». Убедитесь, что флаг Starts locked включен. Убедитесь, что эти сущности не перекрывают друг друга и что стартовый триггер находится перед хитбоксом NPC (иначе игра будет путаться, выбираете ли вы триггер или «кнопку»), используя виды сверху и сбоку. Чтобы определить местонахождение хитбокса, выберите Гришу - вокруг него появится жёлтая рамка.

Теперь настроим триггеры, как показано на Иллюстрации 5. Вам пока не стоит переживать за триггеры в квадратных скобках, их мы добавим позже. Выберите перечисленные сущности, откройте их Object Properties, зайдите во кладку Outputs и настройте всё в соответствии с таблице ниже. Убедитесь, что вы сохраняете все изменения (кнопка Apply)!

Иллюстрация 5 - настройка триггеров.
Заголовки: Выбранная сущность \ Активировать по… \ Активируемая сущность \ Что активировать у сущности

Размещаем шаблоны

Наш шаблон готов, теперь мы можем размещать такие шаблоны по карте и настраивать их более детально. Разместите «func_instance» где вам удобно, откройте его Object Properties и под VMF Filename найдите ваш файл «quest_instance». Обратите внимание, что поиск работает несколько багованно, так что вам может потребоваться ввести путь к файлу вручную. Теперь вы можете раскопировать этот шаблон по карте: создайте столько заданий, сколько хотите.

Выберите первое задание и дайте ему импортировать все необходимые сущности (нажимайте Instancing, Collapse, Selection). Hammer даст всем сущностям префикс, по умолчанию «AutoInstance-». Всё импортированное будет выделено, нам останется только добавить их в одну группу через VisGroups. Откройте Object Properties и выберите там вкладку VisGroups. Вы увидите примерно следующее:

«Sewer» и «Main level» - группы, которые я создавал раньше, так что это нормально, что у вас их нет. Нажмите на «Edit Groups» и вы увидите следующее:

Здесь вы можете создать новые группы, которые потом будете использовать. Нажмите «New group» и вы увидите новый элемент в списке. Переименуйте его в «Quest_n», где n - номер задания. Как закончите с этим, нажмите «Close», вы увидите свою группу в главном списке. Отметьте чекбоксами для добавления сущностей в группу, нажмите «Apply», затем снова «Close». Тперь вы можете скрывать или просматривать группы, используя панель управления VisGroup, как показано ниже. Делайте так с каждым вашим заданием.

Добавление собственных звуковых файлов

Наша РПГ была бы крайне скучна без диалогов, раскрывающих историю, так что мы запишем их через Audacity. Для начала у вас должен быть микрофон. Из-за особенностей работы Face Poser вам стоит записывать по одному предложению за раз. С Audacity всё просто - настройте микрофон, нажмите на красную кнопку, скажите что-то, остановите запись и сохраните файл в формате.wav . Если у вас возникли какие-то проблемы, можете смело использовать встроенную справку, она очень хорошо сделана. Как закончите, создайте папку «RPG» и поместите в неё все файлы. Папку эту переместите в C:/Program Files/Steam/steamapps/half-life episode two/ep2/sounds/ . Сохранение всех файлов в папку на один уровень выше «sounds» принципиально - иначе движок их просто не увидит.

Идём дальше. Создайте файл «sound_script», чтобы движок мог связать наши звуки в редакторе с игрой. Запустите GCFScape, перейдите к File->Open, перейдите к своей папке «steamapps» и откройте файл «episode two content.gcf». После того, как GCFScape его прогрузит, вам нужно будет найти файл «game_sounds_manifest.txt», который размещён в «/steamapps/ep2/scripts». Нажмите на него правой кнопкой мыши и выберите «Extract» и разместите этот манифест в «/steamapps/half-life 2 episode two/ep2/scripts». С GCFScape мы закончили, можете закрывать его.

Теперь идите в папку со скриптами и откройте «game_sounds_manifest.txt», который мы только что извлекли. В этом файле лежат все звуковые скрипты, которые игра будет использовать, и нам нужно добавить наши записи туда же. Под последней строчкой кода, в последних скобках напишите ровно следующее:

Файл манифеста можно уже закрывать. Создадим файл «rpg_sounds.txt», на который мы ссылаемся и запишем в него следующее:

Первая строка - имя звука, которое отобразится в Face Poser: «rpg_sounds» - префикс, а вторая часть - собственно имя. Вы можете менять их как вам угодно. Следующие четыре строки говорят движку, что ему с этими звуками делать, примите их просто как данное. Последняя строчка - . wav файл, который будет загружаться, и относительный путь от папки «/steamapps/half-life 2 episode two/ep2/sound/». Всё, что вам нужно сделать - поместить в эту папку все свои звуковые файлы и убедиться, что их имена и расширения совпадают с указанными в скриптовом файле.

Если у вас стоит Windows Vista или Windows 7, нам придётся немного помочь Face Poser. Как указано выше, вам для этого понадобится патч Phoneme Extractor. Тут стоит упомянуть, что Source SDK обновляет себя каждый раз, как вы его запускаете, поэтому патч нужно ставить каждый раз, как вы открываете Source SDK. Да, это утомительно, но это самый простой путь, поверьте.

С открытым Face Poser мы начнём создавать новую сцену. Под меню «Choreography» нажмите «New». Я порекомендую вам сразу же её сохранить. Имя выберите сами, а папка для сохранения - «/steamapps/half-life episode two/ep2/Scenes/RPG_MOD/». Её потом будет гораздо проще найти, если вы дадите ей какой-то префикс, например, «RPG_». Теперь Face Poser попросит вас дать имя главному действующему лицу (Actor). Назовите его «!_targetN», где N - число от 1 до 8, т.к. у нас будет до восьми NPC в каждой сцене. Hammer будет использовать того NPC, которого вы укажете. У нас пока есть только Гриша, поэтому назовём действующее лицо «!_target1». Сделайте правый клик по имени действующего лица, которое появилось в меню «Choreography», затем перейдите к New->Channel->Create Channel box. Назовите этот канал «Audio». Теперь создайте ещё один канал и назовите его «Anim» (для анимации).

Теперь нам необходимо отсортировать наши аудиозаписи. В списке вкладок в нижней части экрана Face Poser дважды нажмите на «Phoneme Editor». В открывшемся окне нажмите «Load» и выберите.wav файл, который вы хотите добавить. Затем нажмите на «Re-extract», и Face Poser предложит вам написать содержимое аудиофайла текстом. Впишите его. Теперь, если вы нажмёте на кнопку проигрывания, вам будет показано лицо действующего лица, губы которого будут двигаться. Можете сохранять всё и закрывать это окно. Эти действия необходимо повторить для каждого звукового файла.

Если вы хотите добавить жесты, выражения лица или другую анимацию, Вам стоит делать это сейчас. Я не буду рассказывать, как это сделать в этой статье, вы можете прочитать об этом где-то ещё. Далее сохраните свою сцену (Choreography->Save). Теперь осталось применить эту сцену к нашему NPC.

Добавление стороннего аудио к NPC

Теперь нам нужно настроить диалог. Нам нужно добавить созданные нами сцены к «scene_start» и «scene_end», которые мы создавали раньше. Для этого нажмите Alt+Enter, чтобы открыть Object Properties, там найдите опцию «Scene file». Назначьте ей недавно созданную сцену и сохраните изменения. То же самое сделайте для «scene_end».

Активация событий

В целом, вы уже можете сами создавать триггеры, которые будут делать что угодно, но я приведу пример того, какое задание можно сделать и как его реализовать.

Игроку нужно убить пять врагов. Каждый раз, когда умирает враг, math_counter увеличивается на единицу. Когда счётчик доходит до пяти, math_counter вызывает logic_relay . В свою очередь, logic_relay прекращает спаун мобов, активирует NPC и «relay_complete».

Настройка автосохранения

Никто не любит, когда один случайный крэш убивает результат многочасовой игры. Поэтому вам стоит добавить сущность logic_autosave и вызывать её каждый раз, когда задание будет пройдено (вы уже знаете, как это делается).

Конец игры

Игра должна будет когда-нибудь закончиться, и будет не очень хорошо, если она просто вылетит в главное меню, поэтому стоит создать титры. Для этого просто разместите где-то на карте следующие сущности:

Заключение

Я рассказал всё, что хотел. Теперь вы можете создавать любые виды заданий, умеете работать с триггерами и, в общем-то, можете начинать писать свои несложные моды к играм. Удачи!

Пять лет на разработку игры - это долго. Особенно для тех, кто с нетерпением ждал продолжения. И вот, наконец, свершилось! В сиянии софитов, под канонаду батареи бутылок с шампанским со стапелей плавно и величаво сошла одна из самых ожидаемых игр третьего тысячелетия - Half-Life 2 . Если первая часть работала на движке от id Software , то теперь Valve обеспечила свою новую игру собственным мотором - Source Engine . Ожидается, что он окажется той чашей Грааля, которая подарит компании бессмертие, а Half-Life 2 - вечную молодость. Ведь движок - отличный инструмент для мододелов и игростроителей.
Если бы игра вышла, как было обещано, 30 сентября прошлого года - Source Engine действительно оказался бы вне конкуренции... Но сегодня, когда давно продается Doom 3 , свое превосходство новому движку Source придется доказывать в острой конкурентной борьбе. Окончательный расклад сил станет ясен не раньше чем через 3-4 месяца, когда разработчики игр и модостроители разберут новый инджайн, что называется, по винтику, но какие-то выводы можно сделать уже сейчас. Давайте посмотрим, что в активе у нового движка.

Игры и порно - одно и то же?
Пять лет на разработку - это и правда много. За это время в движок можно было внедрить массу новейших технологий, вложить в него не только время и деньги, но и душу. Работа над HL2 началась сразу после выхода первой части. В идеях у команды недостатка не было. Очень хотелось развить успех первой

игры. Первая HL родилась во многом благодаря тому, что Гейб Ньюэлл (Gabe Newell ), отец-основатель Valve, был большим поклонником Doom . Если бы не это, вряд ли перспективный сотрудник отдела операционных систем фирмы Microsoft бросил бы в 1996 году хорошо оплачиваемую работу и организовал собственную игровую компанию.
На этом общение с Doom и его создателем - Джоном Кармаком - не закончилось. Для своей игры свеженародившаяся игровая компания лицензировала у id Software движок Quake . Однако Гейб никак не мог согласиться с некоторыми взглядами Кармака, который считал, что сюжетная линия в экшене не более важна, чем сюжет в порнофильме. Взаимодействие игрока с игровым миром должно сводиться к истреблению монстров в красочных декорациях. Концепция виртуального тира. Главное, чтобы монстров было много, чтобы они были разнообразными и процесс умертвления выглядел на экране монитора максимально эффектно. Естественно, эти идеи лежали в основе игрового движка id Software - он позволял рисовать на экране самую красивую картинку на тот момент и легко обрабатывал десяток 3D-моделей.
У Гейба были несколько иные представления о роли сюжета и взаимодействии геймера с игровым миром. И чтобы реализовать их на движке id Software, его команде потребовалось 2 года упорной работы. Зато в результате появилась HL , которая завоевала более 50-ти наград “Игра года” и всенародную любовь.
Гейб оказался прав. Потому неудивительно, что в HL2 развили наработки первой части, сделали мир еще более достоверным и интерактивным. Поскольку id Software ни на йоту не ушла от прежних позиций, стало очевидным, что Valve для решения этих задач потребуется собственный движок. Source разрабатывался сразу двумя командами: HL2 и Team Fortress 2 . То же самое касается инструментария. Кроме того, команда Steam изготовила пользовательский интерфейс и VGUI 2 , встроенные в Half-Life 2.

вопросы. Как сказал Гейб: “Это та область, в которую мы планируем вложить много времени и усилий. Мы ждем не дождемся увидеть, что модеры сделают с движком Source .
По некоторым сведениям, документация будет значительно подробней, чем для первой HL (а по тем временам она была очень неплохой). Valve, воодушевленная активностью сообщества мододелов по отношению к HL, очень хочет повторить подобное со второй частью. Специально для этого в игру заложено множество возможностей для модифицирования. Например, интерфейс легко изменяем и имеет множество настроек. Игровой редактор в значительной степени переработан и улучшен. В дополнение к SDK будут выпущено множество различных утилит, в том числе объемные библиотеки текстур и заготовки моделей. “Мы надеемся, что авторы модификаций, получив это, смогут сосредоточить больше внимания на каких-то новшествах и геймплее, чем на механизме создания самого мода ”, - считает Гейб Ньюэлл.
Доктор из первой части игры
и из второй. Почувствуйте
разницу.
Возможности самого движка Source позволяют модерам не только тотально переделать HL2, но и практически сделать новую игру. По сравнению с первой HL размеры карт можно свободно увеличивать в 10 раз! Стало реально создавать огромные открытые пространства и делать города, которые тянутся на многие километры. В игровом редакторе (это известный всем Valve Hammer Editor ) появилась система для создания или изменения любых ландшафтов на карте. Кроме того, Source обладает отличной физической моделью и свободно оперирует большим количеством “интерактивных” объектов. То есть предметами, которые игрок может как-то использовать во время игры. Например, из разбросанных на улице шин можно соорудить препятствие для погони или укрытие для засады. Это значительно меняет тактику прохождения. Так что мододелам придется задумываться не только над дизайном самого уровня, но и над распределением подобных объектов.
Некоторые фишки реализованы в движке, но не вошли в Half-Life 2, а некоторые поддаются значительной трансформации. Например, деформацию поверхности можно будет использовать в модах, но вы не встретите ее в игре. То же самое касается смены дня и ночи. Погодные эффекты же и вовсе можно изменить до неузнаваемости.

Красота спасает мир
Новый движок Valve использует все преимущества DirectX 9 - динамичный рендеринг для отрисовки открытых пространств, рельефные текстуры для персонажей, мягкие тени, улучшенное сглаживание и прочее. Однако на данный момент, поскольку видеокарты с полной поддержкой DX9 дороги, в движке
созданы эквивалентные эффекты для DX8. Реализованы шейдеры DX8.1 для водных поверхностей. По информации от Valve, следующие версии движка будут базироваться только на функциях девятого DirectX.
Прежде чем рассказывать о графических возможностях Source, надо отметить, что все современные движки должны быть масштабируемы. То есть нормально работать на компьютерах с разной начинкой. И чем шире диапазон - от минимальной до максимальной конфигурации - тем лучше. Больше народу сможет купить игру и оценить усилия разработчиков. Хотя возможности последних поколений видеокарт позволяют многое, разработчики должны думать и о тех, кто не настолько благополучен, чтобы избавиться от устаревшего графического адаптера. Поэтому текстурный бюджет и количество полигонов на модель часто здорово занижается.
HL2 использует в подавляющем большинстве случаев текстуры размером 512х512 пикселей (против 128х128 в первой части). Однако сам движок способен на большее. По словам Гейба, максимально возможный размер текстур 2000х2000. Изрядный задел на будущее. Что касается моделей, то обычные NPC содержат в себе по 3000 полигонов. Особо ценные персонажи, такие как Alyx или Gman , имеют уже около 7500 полигонов на душу. На менее важные фигуры (вроде многочисленных монстров, которые появляются на экране пачками) выделялось не более 2000 полигонов на штуку. Менее значительные - не “живые” объекты - обходятся и вовсе уж небольшим количеством треугольников.
В состав инструментария входит утилита FacePoser , предназначенная для управления лицевыми мышцами моделей. Это позволит выражать компьютерным персонажам человеческие эмоции - хмурить брови, улыбаться во весь рот и так далее. К тому же, FacePoser умеет фонетически правильно подстраивать мимику модели под фразы, предварительно записанные в звуковой wav-файл. Нечто похожее вы уже видели в пакете Impersonator для Unreal Tournament 2004 . Однако FacePoser имеет более дружественный графический интерфейс, да и возможности этой утилиты гораздо шире. Это фактически редактор сцены. Например, с помощью нее можно создавать разные ситуации и события, такие как перемещение персонажа по заданному маршруту, причем точно задавать момент времени, когда NPC должен появиться в том или ином месте.
если разум во Вселенной чрезвычайно редкое явление и даже если наиболее разумные особи уничтожают друг друга без зазрения совести, у разумной жизни все равно есть масса времени, чтобы заполнить галактику, даже перемещаясь со скоростями, меньшими субсветовых. Согласно любой вероятностной модели, мы должны быть ну просто завалены инопланетянами. Так где же эти цивилизации пришельцев?
У меня есть собственная доморощенная теория, которую я претенциозно называю “Gambeboy Really Really Advanced Theory”. Как только любые существа достигают уровня, при котором они способны построить межзвездный космический корабль, они имеют возможность построить и невероятно мощные компьютеры, на которых можно играть в суперреалистичные видеоигры. У инопланетян есть выбор: или отправиться исследовать настоящую Вселенную (множество скучных путешествий, где самым интересным вопросом будет “С каким количеством космической пыли мы сегодня столкнемся?”), или исследовать вселенную виртуальную, созданную на их супермощных компьютерах. Так что инопланетяне - они есть... Где-то там... Просто они слишком заняты играми и исследованием виртуальных вселенных гораздо более обширных и увлекательных, чем настоящая.
Это означает, что мы лишь слегка копнули то, что будет возможно в видеоиграх. И благодаря удвоению по закону Мура и растущей искушенности разработчиков игр - какова бы ни была разница между уровнем Half-Life 1 и Half-Life 2 - мы увидим куда более значительные сдвиги уже в самом ближайшем будущем.

* * *
Решение отказаться от лицензирования движка для своей игры (а ведь рассматривался вариант Quake 3), несмотря на все трудности, оказалось правильным. Более того, Гейб Ньюэлл всерьез рассчитывает на то, что Source заинтересует как модеров, так и профессиональных разработчиков. И все предпосылки к этому есть. Лицензирование уже началось и, по словам Гейба, носит “агрессивный характер”. Возможно, на этом сказалась и очень низкая цена по сравнению с Unreal Engine и движком Doom 3, но... Не только в цене дело. Вполне возможно, у этих титанов появился мощный конкурент. Ведь на Source можно сделать не только отличные сюжетные шутеры от первого лица, но даже RPG!
А Кармак из Doom 3 опять сделал (пускай и отличный) виртуальный тир. Видимо, продолжает считать, что игры и порнография - это одно и то же.

Более поздние игры от Valve используют свой собственный набор инструментов SDK или Authoring Tools:

Примечание: "Authoring Tools" указывает на не совместимость с Source SDK.

Authoring Tools в настоящее время поставляется в виде бета-версии соответствующих игр

Мы переводим на Authoring Tools следующие дистрибутивы игр:

  • Team Fortress 2
  • Counter-Strike: Source
  • Day of Defeat: Source
  • Half-Life: Deathmatch

Ранее эти средства распространялись отдельно от игры объединенные в один пакет (приложение "Source SDK"). Сейчас же мы делаем схожую с L4D и CS:GO модель инструментов. Согласно той модели SDK Tools по умолчанию является частью игры, поэтому все, что вам нужно сделать, чтобы запустить утилиты SDK Tools, это запустить игру и обновить её до последней существующей версии. Пожалуйста, обратите внимание, что эти инструменты будут доступны только под ОС Windows.

Теперь обратите внимание на папку BIN. (Например: /steamapps/common/Team Fortress 2/bin). Там Вы уведите несколько новых *.bat файлов, который можно использовать для настройки среды разработки и запуска соответствующих инструментов:

  • hammer.bat
  • faceposer.bat
  • hlmv.bat
  • stdudiomdl.bat
  • vtex.bat

Примечание: Теперь для запуска инструментов SDK используйте эти bat файлы. Приложение "SDK launcher" для этих целей больше не используется.

Если у Вас есть проблема с запуском, убедитесь что не где в путях не прописана переменная среды VPROJECT. Если Вы все же используете VPROJECT, то проверьте значение этой переменной среды в системе Windows, командой set в командной строке и установите правильное значение.

Установка и запуск

Следующие инструкции подходят только для установки Source SDK. Если Вам нужно установить Authoring Tools к какой либо игре, то смотрите разделы соответствующих игр..

Инструкция для установки старой версии Source SDK:

На будущее, или если это не сработает:

  1. Откройте Steam.
  2. Откройте вкладку Tools .
  3. Сделайте двойной клик на Source SDK , который находится в категории "Not Installed".
  4. Прочитайте диалоговое окно и нажмите Download and Install / Next для продолжения.
  5. Source SDK будет загружаться на ваш компьютер через Steam.

После того, как загрузка была завершена, Вы можете запустить SDK из вкладки Tools. Вы также можете создать ярлык на рабочем столе, совершив клик правой кнопкой мыши по SDK и нажав на Create desktop shortcut из появившегося контекстного меню.

Запуск

Как только Steam закончит загрузку, Вы сможете запустить SDK из вкладки Tools (Инструменты). Вы так же можете создать иконку на рабочем столе, нажав правой кнопкой мыши по SDK во вкладке Tools (Инструменты) и нажав на Create desktop shortcut (Создать ярлык на рабочем столе ) в появившемся контекстном меню.

При первом запуске SDK, он будет в течении длительного времени извлекаться на жесткий диск. Этого не случится снова, пока SDK не обновится.

После этого, Вы можете выбрать игру и запустить любой из предоставленных инструментов. Однако, могут возникнуть проблемы, если Вы запустите старую - не обновленную игру. Вы можете убедиться, что все игры обновлены, в главном меню Steam.

Предыдущий движок серии GoldSrc Следующий движок серии Аппаратная платформа Поддерживаемая ОС Написан на языке C++ Лицензия проприетарная , не лицензируется - только внутреннее использование Последняя версия Source Engine 24 / 2013 Официальный сайт ​ (англ.)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Ранние версии (2003) - ранняя версия движка применялась в утекшей в Сеть в 2003 году бета-версии Half-Life 2 , игра была визуально похожа на Half-Life на и не содержала множества технологий. На другой версии движка, уже близкой к дебютировавшей с Half-Life 2, создавалась игра Vampire: The Masquerade – Bloodlines .
  • Source Engine 2004 (Source Engine 6) - первая релизная версия движка, впервые примененная в Half-Life 2 . Изначально поддерживает масштабирование, возможность обновлений, шейдерный рендеринг, лицевую анимацию, а также динамическое освещение. До 2005 года использовалась в: Half-Life 2 , Half-Life 2: Deathmatch , . Обновлёна до 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 , ; до 2010 года в Half-Life 2 ; до 2014 года - в .
  • Source Engine 2006 (Source Engine 7: Base Source Engine 2); с комплектом разработчика : Source SDK Base 2006 - третья версия движка, на которой были выпущены несколько игр. Также на нём до 2010 года базировался ряд многопользовательских игр Valve. Он был обновлен и поддерживает обновленную лицевую анимацию, многоядерный рендеринг и обновленный HDR . Для этой версии движка было выпущено большое количество модификаций (кроме того, выпущенные для более ранних версий модификации совместимы и с этой версией), которые не работоспособны на более поздних версиях, поэтому авторами модификаций она все еще используется. Использована в , SiN Episodes: Emergence , Dark Messiah of Might and Magic ; до 2009 года использовалась в ; до 2010 года в Half-Life 2: Episode One , Half-Life 2: Deathmatch , 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 , .
  • 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 года : , 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) - седьмая версия движка. Используется в: , Bloody Good Time .
  • Source Engine 2011 - используется в Portal 2 , Dota 2 , Counter-Strike: Global Offensive , The Stanley Parable .
  • Source Engine Multiplayer (Source Engine 19) - вариант движка, адаптированный для нужд многопользовательских игр; до 2010 года использовали: , Team Fortress 2 , Half-Life 2: Deathmatch , Garry"s Mod .
  • Source Engine Multiplayer (Source Engine 21) - до 2012 года использовали: , Team Fortress 2 , Half-Life 2: Deathmatch , Garry"s Mod .
  • Source Engine Multiplayer (Source Engine 23) - улучшена работа с возможностью Big Picture Mode в Steam ; до 2013 года использовалась в: , Team Fortress 2 , Half-Life 2: Deathmatch , Garry"s Mod .
  • Source Engine 2013 (Source Engine 24); с инструментарием Source SDK Base 2013 - одна из последних версий движка, на которую Valve перевели большую часть своих игр. В числе изменений: для оптимизации использования дискового пространства было решено отказаться от использования громоздких.GCF-файлов (архивов с ресурсами игр), в пользу файловой системы под кодовым именем SteamPipe. Игры на новом движке устанавливаются теперь в каталог Steam\SteamApps\Common , а файлы игры хранятся в.VPK-файлах. Для игр , Team Fortress 2 и Half-Life 2: Deathmatch создана удобная система добавления пользовательского контента (модификаций): присутствует папка custom , в которой создаётся папка с произвольным именем, и уже в неё складываются классические папки материалов модификации (materials, models и т. д.). Добавлена совместимость с Linux . С 2013 года используется в: Half-Life 2 , Half-Life 2: Deathmatch , Half-Life 2: Lost Coast , Half-Life 2: Episode One , Half-Life 2: Episode Two , Portal , Team Fortress 2 , Dota 2 , Garry"s Mod , Tactical Intervention , Alien Swarm , Apex Legends

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

Движок Source стал технологической основой при разработке разнообразных игр: на нем построены все игры самой компании Valve, выходившие в период с по

Source - самый популярный игровой движок: в тот момент, когда вы читаете эту статью, в игры, написанные на нем, может играть больше миллиона человек:

И это не удивительно: движок разработала компания Valve, которая владеет самым крупным игровым магазином - Steam, а ее игры стабильно находятся на вершине игрового топа.

Но, разумеется, путь на вершину славы был долог: история разработки движка Source началась в далеком 1998 году, когда разработчики Valve, завершая работу над Half-Life 1, поняли, что у них есть множество наработок, которые хотелось бы где-нибудь использовать. И именно тогда и появилось разделение на два движка: GoldSrc, на котором работала текущая версия игра, и Source, который относился к будущей версии игры и имел новые, еще неотлаженные, технологии. И поэтому на выставке E3, когда Valve демонстрировала бета-версию игры Half-Life 2, было сказано, что игра работает на движке Source. Это название прижилось, и в дальнейшем GoldSrc полностью исчез.

Source Engine 2004 (Source Engine 6)

Первая публичная версия движка вышла в 2004 году вместе с полюбившимся многим шутером Counter Strike, который в честь движка был называн Source. Изменений с оригинальной версии было достаточно много: более чёткие текстуры (512×512 пикселов против 128×128 в оригинале) и проработанные трёхмерные модели. Широко используются возможности движка, связанные с зеркальными отражениями - у оружия, снабжённого оптическим прицелом, можно видеть окружающую обстановку (но не модели других игроков) сзади игрока на линзе прицела, когда оно находится в не приближённом состоянии.

Звуковые эффекты теперь соответствуют акустическим условиям, введена поддержка колонок 5.1 и 7.1. Новые возможности движка помогли сделать карты более детализированными: появились валяющиеся на земле бутылки, пакеты. Физический движок, созданный на основе Havok, позволил улучшить физику полёта гранат, взрывы, а также эффекты от их поражения в сторону большей реалистичности.

Чуть позже в этом же году вышла Half-Life 2, в которой к приведенным выше возможностям добавились: шейдерный рендеринг (Half-Life 2 была одной из первых игр, в которой использовалась шейдерная вода) и лицевая анимация (с поддержкой точной синхронизации речи актеров с анимацией), а с помощью Havok был получен эффект «тряпичной куклы»:




Эта версия движка использовалась до 2005 года, и является на данный момент устаревшей - все игры, написанные на SE 6, были переведены на более новые движки.

Source Engine 2005 (Source Engine 7)

Обновленная версия движка, вышедшая в 2005 году. Основное дополнение - поддержка High Dynamic Range Rendering, для демонстрации которой разработчики выпустили Half-Life 2: Lost Coast: в сущности эта игра представляет собой уровень, не попавший в финальную версию Half-Life 2. HDR Rendering в Lost Coast включает в себя несколько компонентов:

  • HDR Skybox - результат наложения нескольких экспозиций неба, для реализации эффекта смены экспозиции в реальном времени. Для Half-Life 2: Lost Coast было создано более 16 различных HDR Skybox.
  • HDR Refraction Effect - HDR свет проходит через преломляющие материалы и принимает свойства этих материалов (например, когда луч света проходит сквозь цветные витражи в монастыре на Half-Life 2: Lost Coast, на пол отбрасываются цветные блики).
  • HDR Light Maps - карты света, сгенерированные при помощи эффекта radiosity (свет не только отражается от объектов и попадает в глаз наблюдателя, но и попадает на другие объекты, отражаясь от них). Можно заметить, например, внутри монастыря в Half-Life 2: Lost Coast, по солнечным пятнам на стенах, противоположных окнам.
Как и SE 6, 7ая версия на данный момент так же является устаревшей - в 2014 году последнюю игру на нем, CS: Source, перевели на Source Engine 24.

Source Engine 2006 (Source Engine 7: Base Source Engine 2)

Первая версия движка, имеющая доступный всем комплект разработчика - Source SDK Base 2006, что позволило множеству людей создавать свои модификации к играм Valve. Движок несколько доработали - он поддерживает обновленную лицевую анимацию, многоядерный рендеринг и обновленный HDR.

Так как созданные на SDK 2006 года модификации не совместимы с более новыми версиями движка, то авторами некоторых модов эта версия движка все еще используется, и ее с натяжкой можно считать актуальной.

Source Engine 2007 (Source Engine 14)

Глобальный релиз, впервые использовался в сборнике игр от Valve - The Orange Box (в него входят: Half-Life 2, Half-Life 2: Episode One, Half-Life 2: Episode Two, Portal и Team Fortress 2). В этой версии был обновлен шейдерный рендеринг, значительно доработано динамическое освещение и затенение, появилась система мягких частиц (позволившая сильно улучшить качество таких эффектов, как дождь и огонь), была добавлена кинематографическая физика, а так же новая лицевая анимация (поддерживалось ее аппаратное ускорение на видеокартах) и улучшена поддержка многоядерных процессоров.

SE 14 стала первой версией движка, поддерживающей консоли - The Orange Box вышел не только под ПК, но и под PlayStation 3 и Xbox 360.

Ровно как и с SE 7, модификации, созданные в SDK к 14ой версии, не работали на более новых, поэтому эта версия движка до сих пор используется.

Source Engine 2008 (Source Engine 14: Base Source 3)

Версия движка, созданная под игру Left 4 Dead:

В ней улучшили кинематографическую физику, добавив:

  • Динамическое разрушение игровой геометрии - до этого линии разрушения должны были указываться создателем карты.
  • Деформируемые объекты - до этого физические модели не могли быть изменены любым образом, кроме как на основе заранее просчитанной анимации.
Так же были добавлены некоторые эффекты, такие как размытие в движении и глубина резкости.

Source Engine 2009 (Source Engine 15)

Версия, вышедшая с игрой Left 4 Dead 2, в дальнейшем на эту версию были обновлены все игры Valve того времени. В этой версии обновлены все функции, значительно доработана система частиц, лицевая анимация, масштабирование и возможность обновлений.

Source Engine 2010 (Source Engine 17)

Первая версия движка, портированная под macOS. Изначально под яблочную ОС был портирован пакет игр The Orange Box, а в дальнейшем все новые игры Valve стали выходить и под Mac, и под Windows.

Source Engine Multiplayer (Source Engine 19, 21 и 23)

Версии движка, заточенные под мультиплеерные игры, такие как Dota 2 и CS: GO. Так же в 2012 году появилась поддержка Linux: под него была портирована игра Team Fortress 2, а в дальнейшем и другие игры Valve.

Source Engine 2013 (Source Engine 24)

Текущая версия движка, на которую Valve перевела большинство своих игр. В числе изменений: для оптимизации использования дискового пространства было решено отказаться от использования громоздких.GCF-файлов (архивов с ресурсами игр) в пользу файловой системы под кодовым именем SteamPipe. Игры на новом движке устанавливаются теперь в директорию Steam\SteamApps\Common, а файлы игры хранятся в.VPK-файлах. Для игр Counter-Strike: Source, Team Fortress 2 и Half-Life 2: Deathmatch создана удобная система добавления пользовательского контента (модов): присутствует папка custom, в которой создаётся папка с произвольным именем, и уже в неё складываются классические папки материалов модификации (materials, models и т.д.).

Так же была улучшена совместимость с Linux, а в мае 2014 года Nvidia портировала Portal и Half-life 2 на Android, для своей приставки Nvidia Shield (впрочем, умельцы смогли запустить эти игры и на других устройствах под управлением ОС Android, однако производительность была низкой).

Source 2

Принципиально новая версия движка, выпущенная в 2015 году компанией Valve вместе с выходом обновленной игры Dota 2 - Reborn. Увы - технической презентации не было, известно лишь, что движок все так же работает на API OpenGL (возможно в будущем добавится API Vulkan), а так же умеет задействовать столько ядер процессора, сколько у него есть. Так же Valve обещали, что движок будет лучше работать на старых компьютерах (уменьшено потребление ОЗУ), однако Dota 2 Reborn оказалась тяжелее Dota 2 на Source Engine 24. Еще одно важное добавление - появилась поддержка VR, и первая игра-демонстрация The Lab для HTC Vive:

Будущее движка

О дальнейшем развитие движка Valve молчит, и это для геймеров не новость (все же ждут слухов о Half-Life 3 и Portal 3, правда?) Пока что вторая версия движка достаточно сырая и требует доработки, и, очевидно, Valve fix it исправляет ошибки, а о будущих играх и версиях движка знает только Гейб Ньюэлл.