Source (гейм енджин)

от Уикипедия, свободната енциклопедия
Source
Информация
ВидИгрови двигател (на английски: Game engine)
РазработчикValve Corporation
Операционна системаMicrosoft Windows, OS X, Линукс
Език на интерфейсаC++
Статусактивен
Лицензсобственически
Уебсайтwww.valvesoftware.com
Source в Общомедия

Source е инструмент за създаване на 3D видео игри, разработен от корпорацията Valve Corporation, като наследник на „GoldSrc“ енджинът. Първата му поява е през юни 2004 г. с играта Counter-Strike: Source, която малко по-късно е последвана от Half-Life 2 и оттогава се разработва активно. Source няма ясно изразена схема на версиите, а вместо това е разработена в поредица от ъпдейти. Нейният наследник, „Source 2“, е официално обявен през март 2015 г. Първата игра, която използва технологията, е Dota 2, която е преработена от оригинала през септември 2015 г.

История[редактиране | редактиране на кода]

Source има далечно сходство с „GoldSrc engine“, който сам по себе си е тежко модифицирана версия на „Quake engine“, създаден от Джон Кармак. Кармак пише в своя блог през 2004 г.: „Все още се намират частици от ранния код на Quake в играта Half-Life 2. Служителят на Valve Ерик Джонсън обяснява структурата на Source в общността на разработчиците:

Когато бяхме много близко до датата за пускане на Half-Life (по-малко от седмица), установихме, че вече има някои проекти, по които трябва да работим и не можехме да рискуваме включването на кода във финалната версия на играта. По него време разделихме кода на две части /$Goldsrc и /$Src. През следващите няколко години ги използвахме като Goldsource и Source. В самото начало частта Goldsrc представляваше кода, който вече бяхме пуснали в употреба, а Src представляваше набор от бъдещи рискови технологии, по които работехме. Когато дойде време да покажем Half-Life 2 за първи път по време на E3, вместо Goldsource engine го наричахме Source engine и така името се наложи.

Source е разработен стъпка по стъпка от това разклонение, заменяйки бавно „GoldSrc“ в проектите на Valve, и това от части обяснява необикновената му модулна структура. Оттогава разработката на Source е смесица от собствен код и платени среди за програмиране. Измежду тях Source използва технологията „Ipon“, която е притежание на „Havok“ и се използва за управление на физичните процеси. За звука използват „Miles Sound System“, а за видеото „Bink Video“.

Модулност и забележими обновления[редактиране | редактиране на кода]

Source е създаден да еволюира постепенно с навлизане на новите технологии, за разлика от конкурентите, чиято политика на версиите не позволява обратна съвместимост. Различните системи в Source са представени от различни модули, които могат да се обновяват независимо. Със Steam, Valve може да разпространи тези обновления автоматично към всички свои потребители. През годините е имало неизбежни нарушения на съвместимостта. С пускането на пазара на „Half-Life 2: Episode One“ и „The Orange Box“ е представена нова платформа, която не е в състояние да работи със стари игри или добавки без разработчиците да обновят кода, а понякога и съдържанието. И двата случая са изисквали по-малко работа за обновяване, отколкото при техните конкуренти. Демонстрация за това е направена през 2010 година, когато Valve обновява базовите игри, използващи Source до последната му версия.

От пускането на Source през 2004 година са направени следните промени:

Source 2006[редактиране | редактиране на кода]

Разклонението „Source 2006“ е терминът, който се използва за технологиите, използвани в игрите на Valve, чиято кулминация е пускането на пазара на „Half-Life 2: Episode One“. През 2005 г. използвайки Day of Defeat: Source са интегрирани „HDR rendering“ и корекция на цветовете, което изисква пренаписване на кода, който отговаря за сенките. Официалният код заедно с коментарите на разработчиците е показан в „Half-Life 2: Lost Coast“. В „Episode One“ за първи път е показан „Phong shading“ и други малки добавки. След като се преминава към „Steam Pipe“, това разклонение става отживелица и сега се използва само при нужда от сходимост със стари модове. Технологията „Image-based rendering“ е била разработвана за Half-Life 2, но е отрязана от кода точно преди пускането ѝ. Технологията е спомената отново през 2006 г. от Гейб Нюъл като част от технология, която той би желал да добави към Source, за да се внедри поддръжка за по-големи сцени, които не са възможни, използвайки само многоъгълни обекти.

Source 2007[редактиране | редактиране на кода]

Разклонението „Source 2007“ представлява пълно обновяване на „Source engine“ за пускането на „The Orange Box“. „Particle system“, която е разработена предимно от художници, замества ефектите тип „hard-coded“ за всички игри, включени в него. „Framework“ с „in-process“ инструменти е създаден за неговата поддръжка, който също поддържа и допълнителните вграждания в „Source Filmmaker“. В допълнение системата за лицева анимация е с хардуерно ускорение за модерните видеокарти, за предоставяне на „филмово и телевизионно“ качество. Пускането на „The Orange Box“ върху множество платформи позволява на енджина на Source да се възползва от преимуществата на многоядрените процесори. Въпреки това поддръжката на процеса е само експериментална до пускането на Left 4 Dead. Многопроцесорна поддръжка по-късно е вградена и в Team Fortress 2 и Day of Defeat: Source. Valve създават Xbox 360-версия на „The Orange Box“, в която поддръжката на конзолата е напълно интегрирана в програмния код. Включва конвертори, междуплатформена игра и „Xbox Live“ интеграция. Програмният код може да бъде прехвърлен от компютър на конзола само чрез презаписване. Изданието за PlayStation 3 е прехвърлено за работа на Electronics Arts, с много проблеми при разработката. Гейб Нюъл цитира тези проблеми в критиките си към конзолата по време на работата върху „The Orange Box“.

Left 4 Dead branch[редактиране | редактиране на кода]

Разклонението Left 4 Dead е цялостна преработка на Source енджинът по време на разработването на частите на Left 4 Dead. Многопроцесорната работа е подобрена, позволяваща „multiplayer“-на игра на един разделен екран и допълнителни ефекти, скриптиране със „Squirrel“, и високодинамичен „AI Director“. Интерфейсът на менюто е разработено многослойно за работа с конзолите. Това разклонение по-късно подпомага издаването на „Alien Swarm“ и „Portal 2“, като втората в комбинация с интегрирането на „Steamworks“ става най-добре интегрирана за конзоли.

Поддръжка на OS X, Linux и Android[редактиране | редактиране на кода]

През април 2010 г. Valve издава всичките си големи Source игри на OS X, което съвпада с издаването на Steam-клиент за същата платформа. Valve обявяват, че всички техни бъдещи игри ще бъдат публикувани едновременно за Windows и Mac. Първата игра на Valve, която поддържа Линукс, е Team Fortress 2. Портът е публикуван октомври 2012 г. заедно със затворената бета на Линукс версията на Steam. Както Линукс версията, така и тази за Windows, се възползват от OpenGL и са захранени от „SDL“. По време на портването Valve пренареждат повечето игри, излезли до „The Orange Box“ в разделени, но паралелни клонове за самостоятелна игра и игра в мрежа. Кодът на тези клонове е направен публичен за разработчиците на модове през 2013 г. и те са сегашната стабилна версия на Source, предназначена за модове. Включена е и поддръжка за вътрешната система за разпределение на „Valve-Steam pipe“, както и за Oculus Rift. През май 2014 г. Nvidia издава портове на Portal и Half-Life 2 за техните „Tegra-4“-базирани портативни игрови конзоли „Nvidia Shield“.

Source 2[редактиране | редактиране на кода]

През месец май на 2011 г. един от най-големите проекти на Valve е разработването на нови инструменти за Source. Те ще заменят дотогавашните остарели инструменти и ще позволят да се създава съдържание по-бързо и ефективно. Гейб Нюъл описва създаването на съдържание с досегашните инструменти като „много мъчително“ и „мудно“. На 3 март 2015 г., съвпадайки с „Конференцията на разработчици на игри“, Valve представят „Source 2 engine“ уточнявайки, че ще бъде безплатен за разработчиците и съвместим с новия „Vulkan Graphics API“. Като допълнение Valve потвърждават, че продукта им ще използва новия „physics engine“, наречен „Rubikon“. На 17 юни 2015 г. Valve пускат бета обновяване за играта им „Dota 2“, наречен „Reborn“, правейки я официално първата игра, използваща новия „Source 2“.

Инструменти и ресурси[редактиране | редактиране на кода]

Source SDK[редактиране | редактиране на кода]

„Source SDK“ е комплект за разработване на софтуер за „Source engine“ и съдържа много от инструментите, използвани от Valve за разработка на елементите в техните игри. Той идва с няколко „command-line“ програми създадени за специалните функции във веригата от елементи, както и с няколко GUI-базирани програми за управление на по-сложните функции. „Source SDK“ е реализиран като свободен инструментариум чрез Steam и изисква само покупка на Source-игра от потребителя. С реализацията на играта Left 4 Dead през 2009 г. Valve предлагат „Authoring Tools“ за индивидуални игри, който е адаптиран за всяка версия на „Source engine“. След като Team Fortress 2 става безплатна за играчите, „Source SDK“ става изцяло свободна за ползване за всички потребители на Steam. Има три приложения, вградени в „Source SDK“: „Hammer Editor“, „Model Viewer“ и „Face Poser“. „Hammer Editor“, официалният редактор за нивата в Source, използва включените в „SDK“ инструменти. Редакторът, първоначално познат като „Worldcraft“, е разработен самостоятелно от Бен Морис (на английски: Ben Morris) преди Valve да го придобият. „Model Viewer“ е програма, която позволява на потребителите да виждат модели, а и може да бъде използвана за редица други нужди, както и за разработка. Разработчиците могат да виждат моделите и съпътстващата ги анимация, точките за закачане, кости и др. „Face Poser“ е инструментът, използван за достъп до анимациите на лицата и системите за хореография. Този инструмент позволява да се редактират лицевите изражения, жестовете и движенията на героите, синхронизирането на устните с говора и редица други, свързани с поведението им. Инструментът позволява и предварителен преглед на това как би изглеждала сцената в играта.

Source Dedicated Server[редактиране | редактиране на кода]

„Source dedicated server“ или „SRCDS“ е самостоятелен продукт за „Source engine“, който поддържа игра в мрежа без да изисква наличието на клиент. Той може да се стартира през Windows и Линукс, и позволява персонализирани нива. Повечето външни сървъри поддържат допълнително „Metamod:Source“ и „SourceMod“, които заедно предоставят „framework“ върху „SRSDS“ за персонализирани модификации на съществуващи заглавия.

Source Filmmaker[редактиране | редактиране на кода]

„Source filmmaker“ или „SMF“ е система за заснемане и редактиране на видео, която работи през „Source engine“. Разработен от Valve, първоначално се използва за правенето на клипове за Day of Defeat: Source, но е свързан в по-голяма степен с Team Fortress 2. Днес той е достъпен за публично ползване и може са бъде свален през Steam клиент.

Valve Developer Community[редактиране | редактиране на кода]

На 28 юни 2005 г. Valve пускат „Valve Developer Community wiki“ или „VDC“. „VDC“ заменя статичната „Source SDK“ документация на Valve с МедияУики. Само след няколко дни Valve съобщават, че „количеството на полезните статии почти се е удвоило“. Новите статии покриват недокументирания дотогава „Counter-Strike: Source“ бот (добавен авторът на бот-а, Мике Буут), „Valve NPC AI“, съвети за настройване на „source control“ и др.

Публикации[редактиране | редактиране на кода]

От време на време членове на екипа на Valve публикуват професионални и/или академични статии за различни събития и издания, включващи „SIGGRAPH“, „Game Developer Magazine“ и „Game Developer Conference“. В тези публикации са обяснени различни аспекти на разработката на „Source engine“.

Основни характеристики[редактиране | редактиране на кода]

  • Direct3D е вграден в Microsoft Windows, Xbox и Xbox 360; А OpenGL е вграден на Linux (включително SteamOS) и OS X; „OpenGL ES“ е вграден в Android
  • Steam интеграция на Windows, Linux, OS X, и PlayStation 3
  • Високодинамичен обхват (ВДО) на вграждане
  • Мрежови модел на Лаг-компенсиран клиентски сървър
  • Мрежово свързан (с функция мрежа) и с характеристики на широколентов динамичен софтуер за симулация на физични процеси (базиран на „Havok“ в „Source 1“, надграден до „Source 2“).
  • Мащабна многопроцесорна поддръжка.
  • Предварително изчислена степен на осветеност и динамични картови сенки. Разсеяното осветление се поддържа на конзоли.
  • Лицева анимационна система. Синхронизиране на устните се генерира автоматично от системата и се локализира.
  • Смесена скелетна система за анимация, която включва и обратна кинематика.
  • Ефекти за водните течения
  • 3D способност за картографиране
  • Динамични 3D рани
  • „Alpha to coverage“ за изглаждане на ръбовете на листа и т.н.
  • Карта за логична последователност със „Squirrel“ език за програмиране.
  • Достатъчно указания за екипи по последващо развитие/ усъвършенстване
  • Публикуван /разпространен софтуер за трансформиране на предоставените указания в програмен език
  • Ключов кадър е „vertex animation“ (въведена в Dota 2)

Възприятие[редактиране | редактиране на кода]

Инструментите за „Source SDK“ са критикувани за това, че са остарели и трудно се използват. Например интерфейсът и работния процес на „Hammer Editor Valve“ не са се променили значително след първоначалното им пускане в „GoldSrc“ и оригиналният Half-Life през 1998 г. Голяма част от инструментите, включително и тези за текстура и модел компилация, изискват различни нива на текстови редактор на скриптовете от потребителя, преди те да се изпълнят в командния ред; понякога с прекалено дълги конзолни команди. Това недоразумение е посочено от университета в Лондон, когато те преместват тяхното проучване на професионална архитектурна визуализация в компютърните игри към „Bethesda Softworks“, „Gamebryo“-базиран „Oblivion“ софтуер след като за кратко използват Source. Съвсем друга фирма/ разработчик осигурява графичния интерфейс (GUI), но той не се поддържат официално от Valve.

Игри използващи Source[редактиране | редактиране на кода]

Valve игри[редактиране | редактиране на кода]

Игри от други разработчици[редактиране | редактиране на кода]

  • Vampire: The Masquerade – Bloodlines[1] (2004)
  • Garry's Mod (2004)
  • Empires (2006)
  • SiN Episodes (2006)
  • Dark Messiah of Might and Magic (2006)
  • The Ship (2006)
  • Dystopia (2007)
  • Insurgency: Modern Infantry Combat (2007)
  • Zeno Clash[2] (2009)
  • NeoTokyo (2009)
  • Bloody Good Time (2010)
  • Vindictus (2010)
  • E.Y.E.: Divine Cybermancy (2011)
  • No More Room in Hell (2011)
  • Nuclear Dawn (2011)
  • Postal III (2011)
  • Dino D-Day (2011)
  • Dear Esther (2012)
  • Black Mesa (2012)
  • Tactical Intervention (2013)
  • The Stanley Parable (2013)
  • Blade Symphony (2014)
  • Consortium (2014)
  • Contagion (2014)
  • Titanfall (2014)
  • The Beginner's Guide (2015)

Източници[редактиране | редактиране на кода]

  1. Vampire: The Masquerade – Bloodlines Designer Diary #3 // GameSpot, 16 декември 2003. Посетен на 4 януари 2015.
  2. Hieronymus: ACE Team Explain Zeno Clash II // Rock, Paper, Shotgun, 7 юни 2012. Посетен на 4 януари 2015.
  Тази страница частично или изцяло представлява превод на страницата Source (game engine) в Уикипедия на английски. Оригиналният текст, както и този превод, са защитени от Лиценза „Криейтив Комънс – Признание – Споделяне на споделеното“, а за съдържание, създадено преди юни 2009 година – от Лиценза за свободна документация на ГНУ. Прегледайте историята на редакциите на оригиналната страница, както и на преводната страница, за да видите списъка на съавторите. ​

ВАЖНО: Този шаблон се отнася единствено до авторските права върху съдържанието на статията. Добавянето му не отменя изискването да се посочват конкретни източници на твърденията, които да бъдат благонадеждни.​