Создание игр на движке source. История технологий - Source Engine

Entwickler: Valve Betriebssystem: Microsoft Windows … Deutsch Wikipedia

Entwickler Valve Betriebssystem Microsoft Windows, Apple Mac OS X … Deutsch Wikipedia

Est un moteur de jeu créé par la société Valve Software pour les besoins de son jeu Half Life 2 (HL²). A la base, le Source engine est une refonte du moteur de Quake. C est un moteur complet qui gère graphisme, son et interactions physiques. Ces… … Wikipédia en Français

Логотип Source и скриншоты из игр Team Fortress 2 и Half Life 2: Episode Two … Википедия

Source engine Source engine est un moteur de jeu créé par la société Valve Software pour les besoins de son jeu Half Life 2 (HL²). A la base, le Source engine est une refonte du moteur de Quake. C est un moteur complet qui gère graphisme, son et… … Wikipédia en Français

Source Engine Логотип Source и скриншоты из игр Team Fortress 2 и Half Life 2: Episode Two … Википедия

This is a selected list of Source engine Mods (modifications). This list is divided into single player and multiplayer mods. Contents 1 Single player mods 2 Multiplayer mods 3 See also 4 … Wikipedia

Source engine … Wikipedia

Engine … Википедия

Книги

  • Aircraft Propulsion , Saeed Farokhi. New edition of the successful textbook updated to include new material on UAVs, design guidelines in aircraft engine component systems and additional end of chapter problems Aircraft… Купить за 7717.99 руб электронная книга
  • Symbolic Mathematics for Chemists. A Guide for Maxima Users , Fred Senese. An essential guide to using Maxima, a popular open source symbolic mathematics engine to solve problems, build models, analyze data and explore fundamental concepts Symbolic Mathematics for…

Valve logo

Разработчик: Valve Corporation

Серия движков: Source Engine

Дата анонса: 2004 год

Написан на языке: C++

Лицензия: Проприетарное программное обеспечение (Source Engine является частной собственностью Valve)

Последняя версия: Source Engine 2

Source engine вышедший из тени такого гиганта как Valve значительно превзошел возлагаемые на него надежды и проложил себе собственную дорогу к славе. Source разработан Valve Software движок, основанный на Qake Engine поставил собой точку на старых технологиях и подстегнул сообщество к созданию новой эры движков. Первое заявление Гейба Ньюела после приобретения движка "Когдда мы сели и увидели движок, мы поняли, что для создания грандиозного шутера от первого лица, не нужно делать инновационной разработки в этой области в которой, уже все сделано Кармаком".

К счастью, движок не удовлетворил всех потребностей Valve в полной мере, разработчики руководствовались принципом - мы хотим, что-то, мы сделаем так, что бы оно появилось в игре. Исходя из этого Valve сильно перелопатили движок, что бы игра выглядела не как Quake, а как хотят этого сами разработчики.

В первых версиях движка была даже воплощена поддержка динамического освещения, но позднее, из-за недостаточной мощности компьютеров того времени, было принято решение убрать данную технологию. Графический движок был сильно переработан, что бы 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 является игровым движком, поэтому состоит из различных компонентов в числе которых: Физический движок, графический движок, аудио движок и т.д.


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


Физический движок создан на основе Havok. Он позволяет рассчитывать многие физические объекты, такие как твёрдые тела, упругие тела, верёвки, поверхности и т.п. Существует возможность создания реалистичных транспортных средств, от машины до катера на воздушной подушке и вертолёта. Для просчёта поведения транспортного средства на дороге или в воздухе используется много параметров, например сцепление колёс с дорогой, масса машины. Для придания реалистичного движения телу, используется физика «тряпичной куклы»; созданная заранее анимация может смешиваться с физикой реального времени.


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


SDK tools

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


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


Ниже перечислены различные внутренние версии движка Source с перечнем игр, в которых применялась конкретная версия движка:

Ранние версии (2003) - ранняя версия движка применялась в утекшей в Сеть в 2003 году бета-версии Half-Life 2, игра была визуально похожа на Half-Life на GoldSource и не содержала множества технологий. На другой версии движка, уже близкой к дебютировавшей с Half-Life 2, создавалась игра Vampire: The Masquerade – Bloodlines.


VTMB

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.


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.


Source Engine 2013 (Source Engine 24); с инструментарием Source SDK Base 2013 - одна из последних версий движка, на которую Valve перевели большую часть своих игр. В числе изменений: для оптимизации использования дискового пространства было решено отказаться от использования громоздких.GCF-файлов (архивов с ресурсами игр), в пользу файловой системы под кодовым именем SteamPipe. Игры на новом движке устанавливаются теперь в директорию Steam\SteamApps\Common, а файлы игры хранятся в.VPK-файлах. Для игр Counter-Strike: Source, 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, Counter-Strike: Source, Day of Defeat: Source, Portal, Team Fortress 2, Dota 2, Garry"s Mod, Tactical Intervention, Alien Swarm.


Source 2 Engine

Компания 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.


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 и в полной мере ощутить на себе некст ген индустрии компьютерных развлечений.

Создание своей 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 и вызывать её каждый раз, когда задание будет пройдено (вы уже знаете, как это делается).

Конец игры

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

Заключение

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

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 исправляет ошибки, а о будущих играх и версиях движка знает только Гейб Ньюэлл.



КАТЕГОРИИ

ПОПУЛЯРНЫЕ СТАТЬИ

© 2024 «gcchili.ru» — Про зубы. Имплантация. Зубной камень. Горло