Source (ігровий рушій) — Вікіпедія

Source Engine
Source engine logo
ТипІгровий рушій
РозробникValve Corporation
Стабільний випускSource Engine 24 (Build 5345) (2013)
ВерсіїSource Engine 24 / 2013
ПлатформаWindows, macOS, PlayStation 3, Xbox, Xbox 360, Xbox One, Linux, Android, IBM PC-сумісний комп'ютер і Nintendo Switch
Операційна системаMac OS X, Microsoft Windows, Xbox, Xbox 360, Xbox One, PlayStation 3, PlayStation 4, Linux
Мова програмуванняC++
ЛіцензіяВласницьке програмне забезпечення
Вебсайтsource.valvesoftware.com

Valve Source Engine, або Source (англ. джерело), — ігровий рушій, розроблений корпорацією Valve[1]. Його особливостями вважаються модульна основа і гнучкість, синхронізація рухів губ з промовою, технологія вираження емоцій і система фізики, що працює по мережі. Використовує загальний для продуктів Valve формат моделей рушія .mdl.

Фізична частина Source'а включає в себе частину переробленого коду фізичного рушія Havok і принципи фізики «ганчірної ляльки». Рушій може працювати з відеокартою DirectX 6-11. Дебютом Source вважається 16 листопада 2004 року — дата виходу перших ігор на його основі: Half-Life 2, Counter-Strike: Source и Vampire: The Masquerade – Bloodlines.

Історія назви

[ред. | ред. код]

Ерік Джонсон пояснив народження назви рушія Source так:

Коли ми були дуже близькі до релізу Half-Life (десь у тижні до нього), ми зрозуміли, що є кілька проектів, які треба починати розробляти, але ми не могли ризикувати, щось змінюючи у коді гри, що виходить. Ми вирішили розділити код в VSS (Microsoft Visual SourceSafe) на $/GoldSrc і /$Src. Протягом декількох років ми використовували ці терміни безпосередньо як «GoldSource» і «Source». Принаймні, спочатку гілка коду GoldSrc відносилася до вихідного коду вже випущеної версії, а Src відносилася до майбутнього варіанту, з більш ризикованою технологією, над якою ми працювали. Коли прийшов час показувати Half-Life 2 в перший раз на виставці Е3, це була частина нашого внутрішнього спілкування: посилатися на «Source» рушій проти рушія «GoldSource», і назва прижилася.

Valve Developer Community

Підтримувані платформи

[ред. | ред. код]

Спочатку Source був доступний на наступних платформах: Windows, Xbox, Xbox 360, PlayStation 3. З 2010 року доступний Mac OS X[2][3].

У квітні 2012 року на інтернет-ресурсі «Phoronix» була опублікована інформація про підготовку випуску Steam і платформи Source під GNU/Linux[4]. У грудні 2012 року Source був офіційно портований під GNU/Linux, і першою грою на ньому, доступною для даної платформи став Team Fortress 2[5]; ; раніше як Steam, так і Source були доступні в закритому бета-тестуванні.

Історія версій

[ред. | ред. код]
Скріншот з Half-Life 2: Lost Coast, що слугує демонстраційною версією рушія Source

Точно версію рушія можна назвати тільки в іграх, що виходили до 2007 року включно. Так як наприклад в Source SDK при виборі гри обирається і рушій, де чітко написано версія, так само в консолі можна подивитися версію протоколу (англ. protocol version).

У Left 4 Dead і наступних іграх конкретно версію рушія назвати не можна, можливість подивитися в консолі версію протоколу теж відсутня. Так само версії рушіїв Counter-Strike: Source і Left 4 Dead 2 розрізняються, але тут у них відмічена одна версія, Left 4 Dead 2 вийшла в 2009 році, а Counter-Strike: Source оновилася до рушія Source Engine 2009 в 2010 році. У графічному плані перевершує рушій Left 4 Dead 2 , але у Counter-Strike: Source більше дрібних поліпшень (наприклад, помітно був покращений браузер серверів), які з'явилися після виходу Left 4 Dead 2.

Робоча версія

[ред. | ред. код]

У початкових стадіях розробки рушій Source Engine візуально виглядав як GoldSource, який використовувався в перших проектах Valve Software.. Ігрове меню в стилі Half-Life і перших версій Steam, текстури, які не накладалися повністю, і в деяких проявах кров виглядала також, як і в Half-Life Ігри на цій версії офіційно не випускалися, але вона використовувалася у вкраденій версії Half-Life 2. Гра була недопрацьована і мала дуже мало можливостей, наприклад, на деяких картах текстури виглядали занадто яскраво або ж дуже тьмяно. Гра Vampire: The Masquerade – Bloodlines розроблялася за технологією ранньої версії Source.

Релізні версії

[ред. | ред. код]
Source Engine 2004

(Source Engine 6)

Перша релізна версія рушія, на якому дебютувала Half-Life 2. Від початку він підтримує масштабування, можливість оновлень, шейдерний рендерінг, лицьову анімацію, а також динамічне освітлення і затемнення. Спочатку він використовувався в деяких іграх до 2005 року, і пізніше був оновлений до Source Engine 7. Офіційно ця версія рушія визнана застарілою і не використовується жодною з ігор в Steam.
Source Engine 2005

(Source Engine 7: Source Engine)

Оновлена версія Source Engine 6. У порівнянні з попередником, він підтримує High Dynamic Range Rendering. Рушій також вважається застарілим, однак використовується в декількох Steam-іграх.
Source Engine 2006

(Source Engine 7: Base Source Engine 2)

Це третя версія рушія, на якому були випущені кілька ігор. Також на ньому до 2010 року базувався ряд мультиплеєрних ігор Valve. Він був оновлений і підтримує оновлену лицьову анімацію, багатоядерний рендеринг (але його включення було неможливим) і оновлений High Dynamic Range Rendering. Ця версія рушія була популярною до виходу 2007, нею користувалися багато розробників відеоігор. Для цієї версії рушія було випущено велику кількість модифікацій з власними dll-файлами (крім того, випущеними для більш ранніх версій моди сумісні і з цією версією), які не працездатні на більш пізніх версіях, тому серед гравців вона залишається досить популярною і по сей день.
Source Engine 2007

(Source Engine 14)

Це четверта версія рушія. Ця версія була сильно дороблена і оновлена — перша версія рушія носила назву Source Engine 8, яка потім оновлювалася до Source Engine 14. Вперше рушій був оновлений з виходом The Orange Box, також рушій став підтримувати оновлений шейдерний рендеринг, значно доопрацьовано динамічне освітлення і затінення, також з'явилася система м'яких частинок і була додана не повноцінна кінематографічна фізика. Рушій містить значні зміни в порівнянні з Source Engine 7, тому моди з власними dll, випущені для більш ранніх версій, не сумісні з даною і більш пізніми версіями.
Source Engine 2008

(Source Engine 14: Base Source 3)

Це п'ята версія рушія. У ній була доопрацьована кінематографічна фізика і додана глибина різкості.
Source Engine 2009

(Source Engine 15)

Це шоста, сильно дороблена версія рушія. У цій версії були оновлені всі функції і значно дороблена система м'яких частинок, лицьова анімація, масштабування і можливість оновлень.

Також з вересня 2010 року:

Source Engine 2010

(Source Engine 17)

Це сьома версія рушія.
Source Engine 2011 Це восьма версія рушія.
Source Engine Multiplayer

(Source Engine 19)

Нова модифікація рушія під потреби мультиплеєрної складової ігор. (Оновлення 8 листопада 2010 року)
Source Engine Multiplayer

(Source Engine 21)

Нова версія. (оновлення 30 листопада 2010 року і 2 грудня 2010 року)
Source Engine Multiplayer

(Source Engine 23)

Нова модифікація рушія під потреби мультиплеєрної складової ігор. Містить в основному виправлення помилок попередніх версій, підвищення стабільності роботи, а також покращена сумісність з Big Picture Mode в Steam. (оновлення 21 грудня 2012 та 6 лютого 2013)

Технологічні можливості

[ред. | ред. код]

Основні

[ред. | ред. код]
Half-Life 2: демонстрація системи освітлення (тіні та вогники), якості текстур і частково прозорих поверхонь (сітки), а також деколей (рельєф стін) та руйнованих об'єктів (розламані дошки)

Source володіє значними перевагами за декількома ключовими аспектами розробки ігор: анімація персонажів, просунутий штучний інтелект, реалістична фізика і шейдерний рендерінг.

Система анімації Source дозволяє створювати виразних персонажів з нескінченною гамою емоцій на обличчі, що дозволяє їм донести до вас повідомлення, не сказавши ні слова. На додаток до цього персонажі володіють одним із найбільш просунутих штучних інтелектів, що робить їх вкрай умілими союзниками і ворогами.

За допомогою рушія з легкістю можна створювати красиві і реалістичні світи, що реагують на вашу присутність. Це дозволить розробникам відійти від створення скриптових сценок, які були стандартом для ігор минулого покоління, і відкрити двері для створення ігор абсолютно нових стилів Source Source містить в собі складний мережевий код, що забезпечує підтримку для 32 гравців по локальній обчислювальній мережі та інтернет. Рушій Source зроблений з розрахунком на регулярне оновлення, що виражається в його широких можливостях до модифікації і поліпшення без зміни будь-яких ключових архітектурних особливостей рушія. У комбінації з системою цифрового розповсюдження Steam рушій може оновлюватися одразу після виходу оновлення. Наприклад, якщо Source почне підтримувати фізичні карти, то всі ігри, поширювані через Steam і, які використовують власне Source, почнуть їх підтримувати. Подібне можна було спостерігати після додавання розробниками в рушій High dynamic range rendering.

Втім, тотальна модифікація всіх Source-ігор на практиці неможлива, тому що творцям модифікацій не доступна система оновлень, а отже, розвивати рушій можуть тільки самі розробники. В Source використовуються шейдери Direct3D версії 3.0.

High Dynamic Range Rendering

[ред. | ред. код]

Вперше цей ефект був представлений в грі Day of Defeat: Source, яка вийшла 26 вересня 2005 року. Підтримка High Dynamic Range Rendering стала однією з перших суттєвих модифікацій рушія. Ефект полягає в динамічній зміні яскравості всього або окремих ділянок зображення (наприклад, симуляція адаптації очей до денного світла).

Лицьова анімація

[ред. | ред. код]

Дана технологія кілька разів удосконалювалася Valve. Лицьова анімація дозволяє комп'ютерним персонажам максимально ефективно виражати емоції, і відображати відповідні вимовним звукам рухи губ. Технологія використовує виключно ресурси відеокарти, знімаючи навантаження з процесора. Технологія доступна у всіх іграх, що використовують рушій Source, так само як і для всіх модифікацій для цих ігор.

Динамічне освітлення та затемнення

[ред. | ред. код]

До релізу збірки The Orange Box була допрацьована система освітлення. Крім старого типу промальовування тіней була додана можливість прорахунку тіней за технологією карт тіней, що дозволяє промальовувати правильні динамічні тіні (з урахуванням самозатінення та іншого). Геометрія світу освітлена за допомогою заздалегідь прорахованих карт освітлення. Статичне освітлення може з високою точністю прораховувати освітлення, включаючи віддзеркалення світла від дзеркальних або матових поверхонь, заломлення світла, часткове затінення (наприклад, напівпрозорі об'єкти). Будь-які об'єкти в світі можуть відбивати світло вловлене з інших об'єктів. Наприклад: білий квадрат на чорному тлі, оскільки квадрат світліше фону, то і невелика область навколо нього буде світліше. Глибина різкості використовується для того, щоб висунути деякі об'єкти на перший план, а інші, ті що позаду, уявити розмитими. Для додання потрібної атмосфери може використовуватися корекція кольору. Наприклад, можна стилізувати гру під чорно-білий фільм. В Source використовується динамічна зміна деталізації моделей і геометрії світу, що значно підвищує продуктивність на слабких комп'ютерах.

Багатоядерний рендеринг

[ред. | ред. код]

З оновленням рушія до 15 версії з'явилася функція багатоядерного рендерингу, що дозволяє отримати приріст продуктивності на багатоядерних процесорах.

Кінематографічна фізика

[ред. | ред. код]

Під час тієї ж липневої прес конференції Electronic Arts було оголошено, що колишній співробітник Weta Digital Грей Хорсфілд займається створенням системи кінематографічної фізики для Source. Приклади такої фізики можна побачити в останньому тизері Half-Life 2: Episode Two в сцені з напівзруйнованих мостом. Кінематографічна фізика підтримує систему ключових кадрів, деталі до яких додає фізична система.

Дана система додає наступні можливості до фізичної підсистеми рушія Source:

  • Деформовані об'єкти — до цього фізичні моделі не могли бути змінені будь-яким чином, окрім як на основі заздалегідь прорахованої анімації.
  • Динамічне руйнування ігрової геометрії — до цього лінії руйнування повинні були зазначатися творцем карти.

Кінематографічна фізика підтримує систему ключових кадрів, проте її точна поведінка на даний момент не відома. Можливо, що аніматори будуть створювати кілька кінцевих положень, використовуваних для прорахунку рухів між ними, на зразок технології Endorphin NaturalMotion. В кінцевому результаті розробники отримують в руки технологію, яка дозволяє їм створювати набагато більш складні сцени ніж раніше, витрачаючи на це ті ж самі ресурси.

Система частинок

[ред. | ред. код]

Найбільш просунута реалізація ефектів навколишнього середовища — це система частинок. Частинки дозволяють створити дуже реалістичні вибухи, воду, сніг. Для усунення різких кордонів частинок використовується згладжування. Оновлення рушія до релізу The Orange Box внесло нову систему частинок, за допомогою якої тепер вимальовуються такі ефекти, як вогонь, дим, бризки крові тощо.

Штучний інтелект

[ред. | ред. код]

У Source використовується один із найбільш просунутих штучних інтелектів. Персонажі під управлінням штучного інтелекту можуть стрибати, бігати, літати, повзати, плавати, закопуватися, атакувати. Складна побудова карт переміщень допомагає неігровим персонажам обходити перешкоди, ховатися за ними. Неігрові персонажі орієнтуються завдяки слуху, нюху, зору.

Матеріали

[ред. | ред. код]

Source engine використовує систему матеріалів для опису властивостей об'єкта. З чого зроблений об'єкт, чи він тоне, як впливає на інші об'єкти своєю поверхнею. Для надання матеріалам об'єму в Source Engine використовуються карти нормалей, які визначають, як будуть висвітлені окремі точки на поверхні. В Source Engine підтримується змішування текстур, м'які переходи від однієї текстури до іншої.

Фізика

[ред. | ред. код]

Фізика імітується завдяки переробленому фізичному рушію Havok. Він дозволяє рушію розраховувати різні фізичні об'єкти, такі як тверді тіла, пружні тіла, мотузки, поверхні тощо. В Source Engine використовується технологія для створення дуже реалістичних транспортних засобів, від машини до катера на повітряній подушці і вертольота. Для прорахунку поведінки транспортного засобу на дорозі або в повітрі використовується багато параметрів, наприклад, зчеплення коліс з дорогою, вага машини тощо. Для додання реалістичного руху тіла використовується фізика «ганчір'яної ляльки» (в останніх версіях Source Engine суміщена з анімацією). В Source Engine анімація може змішуватися з фізикою, що дає приріст реалістичності.

Витоки

[ред. | ред. код]

Хоча Valve завжди заявляла, що Source розроблявся повністю з нуля, ходять чутки, згідно з якими цей рушій є розвитком рушія GoldSource, який є зміненою версією рушія Quake engine. Підтвердженням тому є схожа з GoldSource система доступу для розробників, а також коментар в блозі Джона Кармака: «у рушії Half-Life 2 і раніше є шматки коду з рушія Quake». Однак у цієї версії немає ніяких серйозних доказів. Витік вихідного коду Source в 2003 році і частини коду Source-ігор, доступних в рамках Source SDK, не підтвердили її — ніяких збігів знайдено не було. Однак, в Valve Developer Wiki було сказано, що Source — переробка рушія GoldSrc[6].

Модифікації

[ред. | ред. код]

Для рушія Source було створено величезну кількість аматорських модифікацій, найякісніші з яких доступні для завантаження через Steam і забезпечені підтримкою Steamworks. На даний момент це наступні моди:

Створення ігор та модів

[ред. | ред. код]

Source SDK (англ. Software Development Kit — «набір розробника додатків») — набір утиліт для створення модифікацій на рушії Source, безкоштовно поширюваний Valve через мережу Steam всім гравцям, що купили будь-яку Source-гру від Valve. Даний набір дозволяє редагувати карти на двох версіях рушія — 15-й і оновлення 7-ї (стара версія рушія, використовувана в Half-Life 2, не використовується через сумісність з новою версією). Також випущена версія Source SDK для SiN Episodes: Emergence, Left 4 Dead (Left 4 Dead Authoring Tools) і Left 4 Dead 2 (Left 4 Dead 2 Authoring Tools). До стандартного набору входять:

  • Valve Hammer Editor — утиліта для створення карт.
  • Faceposer— утиліта для створення лицьової анімації моделей.
  • Model Viewer — програма перегляду моделей формату.mdl.

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

Також для обох нових версій рушія існують спеціальні доповнення — Source SDK Base. За структурою вони виглядають як гри і являють собою рівень-заставку з доповнення Half-Life 2: Lost Coast з ефектами High Dynamic Range Rendering, що служить для тестування відеокарти. Також вони служать базою для тестування нових модів, причому у модів без якісних змін стає можливою перевірка ефектів High Dynamic Range Rendering на картах, тому при створенні мода Source SDK базує його на Source SDK Base. Деякі автори модів не змінюють базу мода на яку-небудь Source-гру по завершенні його створення, а залишають за основу Source SDK Base. Даний підхід дозволяє власникам Half-Life 2 на старій версії рушія грати в моди на новій версії при відсутності інших Source-ігор, але в той же час змушує інших користувачів завантажувати додаткові ігрові дані.

Комерційні ігри на рушієві Source

[ред. | ред. код]

Нижче представлена повна таблиця іграми, що вийшли на рушії Source Engine. До списку також включені закриті, заморожені, а також ті, що знаходяться в розробці проекти.

Рік випуску Назва Платформа
Windows MacOS PS3 PS4 Xbox Xbox 360 Xbox One Linux Android Коментар
Ігри Valve
2004 Half-Life 2 Так Так Так Ні Так Так Ні Так Ні
2004 Half-Life 2: Deathmatch Так Так Ні Ні Ні Ні Ні Так Ні
2004 Half-Life: Source Так Так Ні Ні Ні Ні Ні Так Ні
2004 Counter-Strike: Source Так Так Ні Ні Ні Ні Ні Так Ні
2005 Day of Defeat: Source Так Так Ні Ні Ні Ні Ні Так Ні
2005 Half-Life 2: Lost Coast Так Так Ні Ні Ні Ні Ні Так Ні
2006 Half-Life Deathmatch: Source Так Так Ні Ні Ні Ні Ні Так Ні
2006 Half-Life 2: Episode One Так Так Так Ні Ні Так Так Так Ні
2007 Half-Life 2: Episode Two Так Так Так Ні Ні Так Так Так Ні
2007 Team Fortress 2 Так Так Так Ні Ні Так Так Так Ні
2007 Portal Так Так Так Ні Ні Так Так Так Так
2008 Left 4 Dead Так Так Ні Ні Ні Так Ні Ні Ні
2009 Left 4 Dead 2 Так Так Ні Ні Ні Так Ні Так Ні
2010 Alien Swarm Так Ні Ні Ні Ні Ні Ні Ні Ні
2011 Portal 2 Так Так Так Ні Ні Так Так Так Ні
2012 Counter-Strike: Global Offensive Так Так Так Ні Ні Так Так Так Ні
2013 Dota 2 Так Так Ні Ні Ні Ні Ні Так Ні портована на рушій Source 2 у 2015
Ігри сторонніх розробників
2004 Vampire: The Masquerade – Bloodlines Так Ні Ні Ні Ні Ні Ні Ні Ні
2004 Garry's Mod Так Так Ні Ні Ні Ні Ні Так Ні
2006 SiN Episodes Так Ні Ні Ні Ні Ні Ні Ні Ні
2006 Dark Messiah of Might and Magic Так Ні Ні Ні Ні Так Ні Ні Ні
2006 The Ship Так Ні Ні Ні Ні Ні Ні Ні Ні
2006 Kuma\War Так Ні Ні Ні Ні Ні Ні Ні Ні
2007 Dystopia[en] Так Ні Ні Ні Ні Ні Ні Ні Ні
2007 Insurgency: Modern Infantry Combat Так Так Ні Ні Ні Ні Ні Так Ні
2009 Zeno Clash Так Ні Ні Ні Ні Так Ні Ні Ні
2009 NeoTokyo Так Ні Ні Ні Ні Ні Ні Ні Ні
2010 Bloody Good Time Так Ні Ні Ні Ні Так Ні Ні Ні
2010 Vindictus Так Ні Ні Ні Ні Ні Ні Ні Ні
2011 E.Y.E.: Divine Cybermancy Так Ні Ні Ні Ні Ні Ні Ні Ні
2011 No More Room in Hell Так Так Ні Ні Ні Ні Ні Ні Ні
2011 Nuclear Dawn Так Так Ні Ні Ні Ні Ні Ні Ні
2011 Postal III Так Ні Ні Ні Ні Ні Ні Ні Ні
2011 Dino D-Day Так Ні Ні Ні Ні Ні Ні Ні Ні
2012 Dear Esther Так Так Ні Так Ні Ні Так Ні Ні
2012 Black Mesa Так Ні Ні Ні Ні Ні Ні Так Ні
2013 Tactical Intervention Так Так Ні Ні Ні Ні Ні Ні Ні
2013 The Stanley Parable Так Так Ні Ні Ні Ні Ні Так Ні
2014 Blade Symphony Так Ні Ні Ні Ні Ні Ні Так Ні
2014 Consortium Так Ні Ні Ні Ні Ні Ні Ні Ні
2014 Contagion Так Ні Ні Ні Ні Ні Ні Ні Ні
2014 Insurgency Так Так Ні Ні Ні Ні Ні Так Ні
2014 Titanfall Так Так Так Ні Ні Ні Ні Ні Ні
2015 Portal Stories: Mel Так Так Ні Ні Ні Ні Ні Так Ні
2015 The Beginner's Guide Так Так Ні Ні Ні Ні Ні Так Ні
2016 Infra Так Ні Ні Ні Ні Ні Ні Ні Ні
2016 Titanfall 2 Так Ні Ні Так Ні Ні Так Ні Ні
2016 Day of Infamy Так Так Ні Ні Ні Ні Ні Так Ні

Примітки

[ред. | ред. код]
  1. Valve. «State-of-the art games start here» (англійською) . Архів оригіналу за 15 лютого 2012. Процитовано 9 грудня 2009.
  2. «Valve to Deliver Steam & Source on the Mac». Valve. 8 березня 2010. Архів оригіналу за 15 лютого 2012. Процитовано 8 березня 2010.
  3. «Left 4 Dead 2, Team Fortress 2, Portal and Steam Coming to Mac in April». Kotaku. 8 березня 2010. Архів оригіналу за 15 лютого 2012. Процитовано 8 березня 2010.
  4. Michael Larabel (25 квітня 2012). Valve's Gabe Newell Talks Linux Steam Client, Source Engine. Phoronix. Архів оригіналу за 30 квітня 2012. Процитовано 28 квітня 2012.
  5. Gabe Newell (20 грудня 2012). Steam for Linux beta program is now open to the public!. Steamcommunity. Архів оригіналу за 17 січня 2013. Процитовано 20 грудня 2012.
  6. Замітка про витоки рушія у Valve Developer Wiki [Архівовано 2012-06-01 у Wayback Machine.](англ.)(нім.)(пол.)

Посилання

[ред. | ред. код]