Лучшие вопросы
Таймлайн
Чат
Перспективы

GoldSrc

игровой движок Из Википедии, свободной энциклопедии

Remove ads

GoldSrc, или GoldSource — игровой движок, разработанный компанией Valve и впервые использованный в компьютерной игре 1998 года Half-Life.

Краткие факты Тип, Разработчик ...
Remove ads

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

Суммиров вкратце
Перспектива
Thumb
Дерево движков, основанных на Quake engine
Thumb
Демонстрационный ролик Mr. Valve, показывающий раннюю графику GoldSrc[1]

В основу движка GoldSrc положен лицензированный у id Software код игрового движка Quake engine (точнее, его улучшенной версии, созданной для QuakeWorld — сетевого обновления игры Quake[2][3]).

Использовать движок Quake тогда ещё начинающим игровым разработчикам и основателям компании Valve, Гейбу Ньюэллу и Майку Харрингтону, посоветовал известный программист Майкл Абраш, который, как и они, покинул в то время Microsoft. Примечательно, что Абраш помогал Джону Кармаку с его написанием[4].

«Когда мы сели и увидели движок, мы поняли, что для создания грандиозного шутера от первого лица нам не нужно делать инновационные разработки в той области, в которой уже многое сделано Джоном Кармаком. Это крайне тяжело — одновременно разрабатывать движок и собирать надёжную команду с нуля» — говорит Гейб Ньюэлл[4].

Thumb
Сражение на одном из уровней — плотине, в игре Half-Life

Силами Valve была произведена значительная модификация технологии: рендер (графический движок) был дополнен поддержкой Direct3D, добавлена скелетная анимация, лицевая мимика, динамическое освещение. На ранних скриншотах Half-Life, сделанных ещё в период разработки, видно[5], что движок активно использует динамические тени от объектов — возможно, их поддержка была убрана из финальной версии, так как разработчики решили, что домашние компьютеры тех времён ещё не готовы для таких сложных обработок, или они не были закончены.

Позднее в GoldSrc также были интегрированы наработки других движков, созданных id Software:

У нас был исходный код оригинальных DOS Quake[пр. 1], Win Quake[пр. 2], GLQuake[пр. 3], а также QuakeWorld, Quake II и всевозможные патчи. Мы брали и выбирали из этой исходной базы кодов то, что нам необходимо. Но мы реализовали и много собственных подсистем (анимация, ИИ, GL, программный рендеринг), поэтому около 75% движка — это наш собственный код» — говорит[3] Крис Бокитч, работавший в Valve с 1997 по 2008 год[6].

Происхождение названия

За месяц до релиза Half-Life движок все ещё не имел официального названия, потому множество компьютерных журналов описывали его как «основывающийся на технологии Quake».

Эрик Джонсон, директор по маркетингу Valve, на заданный ему в сообществе разработчиков вопрос о том, как возникло название «GoldSource», ответил так:

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

Дальнейшее развитие

По мере выхода новых игр на GoldSource, в него вводилась поддержка новых функций.

В Counter-Strike: Condition Zero (2004 год) добавлена поддержка детальных текстур (англ. detail textures)[8]. Задача детальных текстур — частично компенсировать невысокое разрешение исходной текстуры, накладывая поверх неё текстуру с деталями, «шероховатостями» объекта. Также появилась поддержка альфа-текстур, которая позволила задавать степень прозрачности объектам или отдельным элементам объекта (так, например, можно сделать полупрозрачным шлем бойца спецназа).

В James Bond 007: Nightfire (2002 год), в которой использовалась значительно улучшенная силами компании Gearbox Software версия движка, было сделано множество графических улучшений. В интервью авторы отмечают поддержку больших открытых пространств, детализированных текстур и моделей, погодных эффектов (грозы и вспышек молнии), процедурно сгенерированных облаков (вместо скайбоксов, с которыми работает оригинальный GoldSrc) и воды с отражениями[9][10][11], а рендер переведен с DirectX 6 на DirectX 8[12]. Редактор карт переделан как Gearcraft Editor[13]. Этот вариант движка получил внутреннее название Gearcraft Engine и был использован только в Nightfire.

Преемник движка GoldSource, разработанный Valve, — движок Source — стал главным составляющим игры Half-Life 2 2004 года[14]. Новая версия движка стала поддерживать игровые консоли Xbox, Xbox 360 и PlayStation 3. Структура движка перетерпела множество изменений. Source стал одним из первых движков, активно использущим шейдеры: особенностями движка стали реалистичная вода с преломлениями и отражениями окружающего мира, динамические тени от персонажей и объектов, динамическое освещение и затенение, HDR-рендеринг, развитая и проработананая система частиц. Помимо этого, одной из особенностей стал физический движок, основанный на Havok.[15][16] Технология Source активно дорабатывалась с выходом новых игр и продолжает получать обновления. Для работы с движком и создателей модов авторы выпустили набор инструментов Source SDK[17].

В 2015 году был представлен новый движок Valve, Source 2, дебютировавший в Dota 2 (2015) и затем использованный в Half-Life: Alyx (2020) и Counter-Strike 2 (2023)[18].

Пользовательские модификации игр на GoldSrc продолжают создаваться авторами до сих пор[19]. Примечательно, что и сама Valve продолжила выпускать обновления для своей линейки игр на GoldSrc, как касающиеся исправления мелких недочётов, так и более крупные — так, в 2013 году все игры серии Half-Life получили поддержку Linux и Mac OS X[20].

В 2023 году, в честь юбилея (25 лет со дня выпуска) Half-Life, Valve было выпущено глобальное обновление оригинальной игры, обычно называемое Half-Life 25th Anniversary Update, привнесшее ряд исправлений, дополнений и улучшений. Соответственно исправлениям самой игры, Valve внесла некоторые обновления и в код GoldSrc, главным образом, связанные с доработкой интерфейса, исправлением старых багов, улучшенной поддержкой современных систем и добавлением сглаживания[21].

Remove ads

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

Суммиров вкратце
Перспектива

GoldSrc представляет собой игровой движок, написанный на языке C++ и основанный на кодах Quake engine, Quake 2 engine (id Tech 2) и других кодах, предоставленных Valve id Software (см. выше)[3][2]. Как отмечается авторами, он был в значительной степени написан силами самой Valve[3].

В частности, разработчиками был переписан рендерер — компонент, отвечающий за отображение игровой графики. Он работает под управлением Direct3D, OpenGL и софтверным рендерингом (поддержка Direct3D была убрана из игр Half-Life в 2013 году, с добавлением поддержки Linux), реализуя 16-битную глубину цвета. Была добавлена новая на тот момент система цветного освещения[22], высокополигональные модели и текстуры смогли продемонстрировать более высокое качество, в сравнении с Quake 1. Помимо этого, поддерживались прозрачные текстуры. С появлением Counter-Strike: Condition Zero, добавились альфа-текстуры и техника детальных текстур (англ. detail textures) для лучшей проработанности текстур, когда игрок находится рядом с объектом[8].

Как и Quake, GoldSrc использует BSP-систему для построения уровней. Для создания эффекта окружения на открытых локациях используются скайбоксы — статичные текстуры, которые имитируют собой находящееся вдали пространство, небо и т. д.[23]

Движок использует продвинутую (на момент выпуска) систему игрового ИИ, позволяющую, помимо прочего, объединяться в группы (англ. AI flocking) противникам или союзникам игрока, например, чтобы противостоять ему[24]. Помимо этого, игры на движке GoldSrc отличало широкое использование скриптовых сценок для построения сюжетного повествования внутри игрового процесса[24]. Также Half-Life стала одной из первых игр, где игрока могли сопровождать дружественные ему NPC[25].

В 2023 году, в связи с юбилеем Half-Life, движок получил новые доработки, сделанные силами Valve в ходе обновления, выпущенного для оригинальной игры и известного как Half-Life 25th Anniversary Update: добавлена корректная поддержка высоких разрешений экранов, диалоговых окон и и т. п., изменена система отображения меню, которое теперь корректно масштабируется под любые разрешения, добавлена опция «Включить фильтрацию текстур», проведена адаптация для работы со Steam Deck, игровой консолью Valve, добавлена поддержка сглаживания MSAA, сделаны многочисленные исправления старых багов и оптимизации, а также увеличены лимиты движка для создателей модификаций[21].

Remove ads

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

Суммиров вкратце
Перспектива

В Steam доступен набор инструментов, названный Half-Life SDK, содержащий редактор уровней, исходные коды для программирования, а также библиотеки спрайтов и текстур[26]. Подробное описание всех терминов, связанных с разработкой под GoldSrc и связанную информацию, можно найти в официальной вики разработчиков Valve, Valve Developer Community[27].

В качестве редактора уровней самими разработчиками использовался Valve Hammer Editor, ранее называвшийся Worldcraft (и имевший первоначальное название The Forge в первой CD-версии Half-Life)[28] — он же входит и в SDK. Последней версией Hammer, работающей с GoldSrc, стала 3.5[28].

Другие редакторы карт, поддерживающие движок GoldSrc: GtkRadiant, QuArK, Qoole, Tread 3D, Sledge Editor[29], а также J.A.C.K., новый редактор, впервые выпущенный в 2016 году[30].

Трёхмерные модели для GoldSrc хранятся в .SMD-файлах и могут быть экспортированы в этот формат автором модели при помощи плагинов для популярных 3D-редакторов, таких как 3ds Max, Maya и Blender[31]. В ПО MilkShape 3D есть встроенная поддержка этого формата, позволяющая как импортировать и редактировать модель, так и экспортировать её в другие популярные форматы[32]. Для простого предварительного просмотра моделей может быть использована официальная утилита Half-Life Model Viewer (HLMV)[33].

Для просмотра текстур, сложенных в файлы с расширением .WAD, может быть использована утилита Wally[34].

Ресурсы, как правило, находятся в архивах с расширением .PAK[35], они представляют собой несжатые ZIP-архивы[36] с изменённым расширением и открываются в любом архиваторе.

Открытая архитектура и изначальное наличие нужного программного обеспечения позволила самим игрокам создать множество модификаций, некоторые из которых являются скорее отдельными играми, используя файлы оригинала как техническую базу (например, трилогия They Hunger[37], Natural Selection[38], Underworld Bloodline[39][40], Poke646 и Poke646: Vendetta[41], Wanted![42], Half-Life Rally[43], Digital Paintball[44] и другие)[19].

Remove ads

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

Подробнее Название, Дата выпуска ...
Remove ads

Примечания

Ссылки

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads