Source (ігровий рушій)

Матеріал з Вікіпедії — вільної енциклопедії.
(Перенаправлено з Source)
Перейти до: навігація, пошук
Source Engine
Source engine logo
Team Fortress 2 engineer laugh.jpgLeft 4 Dead 2 character.jpg
Розробник(и) Valve Corporation
Стабільний випуск Source Engine 24 (Build 5345) (2013)
Написано на C++
Операційна система Mac OS X, Microsoft Windows, Xbox, Xbox 360, PlayStation 3, Linux
Тип Ігровий рушій
Ліцензія Власницьке програмне забезпечення
Сайт http://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

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

Підтримувані платформи[ред.ред. код]

Спочатку 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 були доступні в закритому бета-тестуванні.

Історія версій[ред.ред. код]

Точно версію рушія можна назвати тільки в іграх, що виходили до 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. До списку також включені закриті, заморожені, а також ті, що знаходяться в розробці проекти.

Назва гри Розробник Дата виходу Платформи
Alien Swarm Valve 2010.07.19 ПК (Microsoft Windows)
Counter-Strike: Source Valve 2004.10.07 ПК (Microsoft Windows), Mac OS X, Linux
Counter-Strike: Global Offensive Valve, Hidden Path Entertainment 2012.08.21 ПК (Microsoft Windows), Mac OS X, Xbox 360, PlayStation 3
Dark Messiah of Might and Magic Arkane Studios, Floodgate Entertainment, Kuju Entertainment 2006.10.27 ПК (Microsoft Windows)
Day of Defeat: Source Valve 2005.09.26 ПК (Microsoft Windows), Mac OS X
Dear Esther TheChineseRoom 2012.02.14 ПК (Microsoft Windows)
Dota 2 Valve 2010.10.13 ПК (Microsoft Windows), Mac OS X
E.Y.E.: Divine Cybermancy Streum On Studio 2011.08.02 ПК (Microsoft Windows)
Garry's Mod Team Garry 2006.11.29 ПК (Microsoft Windows), Mac OS X
Half-Life 2 Valve 2004.11.16 ПК (Microsoft Windows), Mac OS X, Xbox, Xbox 360, PlayStation 3
Half-Life 2: Deathmatch Valve 2004.11.30 ПК (Microsoft Windows), Mac OS X
Half-Life 2: Episode One Valve 2006.06.01 ПК (Microsoft Windows), Mac OS X, Xbox 360, PlayStation 3
Half-Life 2: Episode Two Valve 2007.10.10 ПК (Microsoft Windows), Mac OS X, Xbox 360, PlayStation 3
Half-Life: Source Valve 2004.06.01 ПК (Microsoft Windows)
Half-Life Deathmatch: Source Valve 2006.05.01 ПК (Microsoft Windows)
Half-Life 2: Lost Coast Valve 2005.10.27 ПК (Microsoft Windows)
Portal Valve 2007.10.10 ПК (Microsoft Windows), Mac OS X, Xbox 360, PlayStation 3
Portal 2 Valve 2011.04.19 ПК (Microsoft Windows), Mac OS X, Xbox 360, PlayStation 3
Postal III Running with Scissors, Inc., Акелла, TrashMasters 2011.11.23 ПК (Microsoft Windows), Linux, PlayStation 3,Xbox 360
Team Fortress 2 Valve 2007.10.10 ПК (Microsoft Windows), Mac OS X, Linux, PlayStation 3, Xbox 360
Left 4 Dead Valve и Certain Affinity 2008.11.18 ПК (Microsoft Windows), Mac OS X, Xbox 360
Left 4 Dead 2 Valve 2009.11.17 ПК (Microsoft Windows), Mac OS X, Xbox 360
Nuclear Dawn InterWave Studios 2011.09.27 ПК (Microsoft Windows), Mac OS X, Xbox 360
The Ship Outerlight 2006.07.11 ПК (Microsoft Windows)
SiN Episodes: Emergence Ritual Entertainment 2006.05.10 ПК (Microsoft Windows)
Tactical Intervention FIX Korea 2013.03.28 ПК (Microsoft Windows)
Vampire: The Masquerade — Bloodlines Troika Games 2004.11.16 ПК (Microsoft Windows)
Zeno Clash ACE Team 2009.10.09 ПК (Microsoft Windows), Xbox 360
Revelations 2012 Dark Artz Entertainment 2012.04.23 ПК (Microsoft Windows)
Bloody Good Time Outerlight 2012.10.28 ПК (Microsoft Windows), Xbox 360
Vindictus devCat 2010.01.21 ПК (Microsoft Windows)
Hybrid 5TH Cell Media 2012.08.08 Xbox 360
Dino D-Day 800 North 2011.04.08 ПК (Microsoft Windows)
Half-Life 2: Survivor Taito Corporation, Valve Corporation 2006.06.27 Taito Type X+
Dragoon Episodes: Episode 1 N-Game Studios Проект заморожений ПК (Microsoft Windows)
Salvation Black Wing Foundation Проект закритий ПК (Microsoft Windows)
The Crossing Arkane Studios Проект заморожений ПК (Microsoft Windows)
They Hunger: Lost Souls Black Widow Games Проект закритий ПК (Microsoft Windows)
Twilight War: After the Fall Smiling Gator Productions Проект закритий ПК (Microsoft Windows)
Contagion Monochrome Запланована на 2013 рік ПК (Microsoft Windows)
Insurgency 2 New World Interactive Запланована на 2013 рік ПК (Microsoft Windows)
Blade Symphony Puny Human Запланована на 2013 рік ПК (Microsoft Windows)
Counter-Strike Online 2 Nexon Corporation Запланована на 2013 рік ПК (Microsoft Windows)

Примітки[ред.ред. код]

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

Посилання[ред.ред. код]