GoldSrc, или GoldSource — игровой движок, разработанный компанией Valve и впервые использованный в компьютерной игре 1998 года Half-Life.
История разработки
В основу движка GoldSrc положен лицензированный у id Software код игрового движка Quake engine (точнее, его улучшенной версии, созданной для QuakeWorld — сетевого обновления игры Quake).
Использовать движок Quake основателям компании Valve, Гейбу Ньюэллу и Майку Харрингтону, тогда ещё начинающим игровым разработчикам, посоветовал программист Майкл Абраш, который, как и они, покинул в то время Microsoft. Ранее Абраш помогал Джону Кармаку в написании этого движка.
Силами Valve была произведена значительная модификация технологии: рендер (графический движок) был дополнен поддержкой Direct3D, добавлена скелетная анимация, лицевая мимика, динамическое освещение. На ранних скриншотах Half-Life, сделанных ещё в период разработки, видно, что движок активно использовал динамические тени от объектов, однако из финальной версии игры их поддержка была убрана.
Позднее в GoldSrc также были интегрированы наработки других движков, созданных id Software:
Происхождение названия За месяц до релиза Half-Life движок всё ещё не имел официального названия, поэтому компьютерные журналы описывали его как «основывающийся на технологии Quake».
Эрик Джонсон, директор по маркетингу Valve, на заданный ему в сообществе разработчиков вопрос о том, как возникло название «GoldSource», ответил так:
Дальнейшее развитие По мере выхода новых игр на GoldSource, в него вводилась поддержка новых функций.
В Counter-Strike: Condition Zero (2004 год) добавлена поддержка детальных текстур (). Задача детальных текстур — частично компенсировать невысокое разрешение исходной текстуры, накладывая поверх неё текстуру с деталями, «шероховатостями» объекта. Также появилась поддержка альфа-текстур, которая позволила задавать степень прозрачности объектам или отдельным элементам объекта (так, например, можно сделать полупрозрачным шлем бойца спецназа).
В James Bond 007: Nightfire (2002 год), в которой использовалась значительно улучшенная силами компании Gearbox Software версия движка, было сделано множество графических улучшений. В интервью авторы отмечали поддержку больших открытых пространств, детализированных текстур и моделей, погодных эффектов (грозы и вспышек молнии), процедурно сгенерированных облаков (вместо скайбоксов, с которыми работает оригинальный GoldSrc) и воды с отражениями, а рендер переведен с DirectX 6 на DirectX 8. Редактор карт переделан как Gearcraft Editor. Этот вариант движка получил внутреннее название Gearcraft Engine и был использован только в Nightfire.
Преемник движка GoldSource, разработанный Valve, — движок Source — стал основой игры Half-Life 2 2004 года. Новая версия движка стала поддерживать игровые консоли Xbox, Xbox 360 и PlayStation 3. Структура движка претерпела множество изменений. Source стал одним из первых движков, активно использующим шейдеры: особенностями движка стали реалистичная вода с преломлениями и отражениями окружающего мира, динамические тени от персонажей и объектов, динамическое освещение и затенение, HDR-рендеринг, развитая и проработанная система частиц. Помимо этого, одной из особенностей стал физический движок, основанный на Havok. Технология Source дорабатывалась с выходом новых игр. Для работы с движком и создания модов авторы выпустили набор инструментов Source SDK.
В 2015 году был представлен новый движок Valve, Source 2, дебютировавший в Dota 2 (2015) и затем использованный в Half-Life: Alyx (2020) и Counter-Strike 2 (2023).
Пользовательские модификации игр на GoldSrc продолжали создаваться и по состоянию на 2023 год. Сама Valve также продолжила выпускать обновления для своей линейки игр на GoldSrc — как исправления мелких недочётов, так и более крупные: в 2013 году все игры серии Half-Life получили поддержку Linux и Mac OS X.
В 2023 году, к 25-летию Half-Life, Valve выпустила крупное обновление оригинальной игры, известное как Half-Life 25th Anniversary Update и привнёсшее ряд исправлений, дополнений и улучшений. Вместе с игрой обновления получил и код GoldSrc: они были связаны главным образом с доработкой интерфейса, исправлением старых ошибок, улучшенной поддержкой современных систем и добавлением сглаживания.
Технические характеристики GoldSrc представляет собой игровой движок, написанный на языке C++ и основанный на коде Quake engine, Quake 2 engine (id Tech 2) и другом коде, предоставленном Valve компанией id Software (см. выше). По словам разработчиков, движок был в значительной степени написан силами самой Valve; в частности, система игрового искусственного интеллекта была создана практически с нуля.
В частности, разработчиками был переписан рендерер — компонент, отвечающий за отображение игровой графики. Он работает под управлением Direct3D, OpenGL и софтверным рендерингом (поддержка Direct3D была убрана из игр Half-Life в 2013 году, с добавлением поддержки Linux), реализуя 16-битную глубину цвета. Была добавлена новая на тот момент система цветного освещения, высокополигональные модели и текстуры смогли продемонстрировать более высокое качество, в сравнении с Quake 1. Помимо этого, поддерживались прозрачные текстуры. С появлением Counter-Strike: Condition Zero, добавились альфа-текстуры и техника детальных текстур () для лучшей проработанности текстур, когда игрок находится рядом с объектом.
Как и Quake, GoldSrc использует BSP-систему для построения уровней. Для создания эффекта окружения на открытых локациях используются скайбоксы — статичные текстуры, которые имитируют собой находящееся вдали пространство, небо и т. д.
Движок использует продвинутую (на момент выпуска) систему игрового ИИ, позволяющую, помимо прочего, объединяться в группы () противникам или союзникам игрока, например, чтобы противостоять ему. Помимо этого, игры на движке GoldSrc отличало широкое использование скриптовых сценок для построения сюжетного повествования внутри игрового процесса. Также Half-Life стала одной из первых игр, где игрока могли сопровождать дружественные ему NPC.
В 2023 году, в связи с юбилеем Half-Life, движок получил новые доработки, сделанные силами Valve в ходе обновления, выпущенного для оригинальной игры и известного как Half-Life 25th Anniversary Update: добавлена корректная поддержка высоких разрешений экранов, диалоговых окон и т. п., изменена система отображения меню, которое теперь корректно масштабируется под любые разрешения, добавлена опция «Включить фильтрацию текстур», проведена адаптация для работы со Steam Deck, игровой консолью Valve, добавлена поддержка сглаживания MSAA, сделаны многочисленные исправления старых багов и оптимизации, а также увеличены лимиты движка для создателей модификаций.
Средства разработки В Steam доступен набор инструментов, названный Half-Life SDK, содержащий редактор уровней, исходные коды для программирования, а также библиотеки спрайтов и текстур. Подробное описание всех терминов, связанных с разработкой под GoldSrc и связанную информацию, можно найти в официальной вики разработчиков Valve, Valve Developer Community.
В качестве редактора уровней самими разработчиками использовался Valve Hammer Editor, ранее называвшийся Worldcraft (и имевший первоначальное название The Forge в первой CD-версии Half-Life) — он же входит и в SDK. Последней версией Hammer, работающей с GoldSrc, стала 3.5.
Другие редакторы карт, поддерживающие движок GoldSrc: GtkRadiant, QuArK, Qoole, Tread 3D, Sledge Editor, а также J.A.C.K., новый редактор, впервые выпущенный в 2016 году.
Трёхмерные модели для GoldSrc хранятся в .SMD-файлах и могут быть экспортированы в этот формат автором модели при помощи плагинов для популярных 3D-редакторов, таких как 3ds Max, Maya и Blender. В ПО MilkShape 3D есть встроенная поддержка этого формата, позволяющая как импортировать и редактировать модель, так и экспортировать её в другие популярные форматы. Для простого предварительного просмотра моделей может быть использована официальная утилита Half-Life Model Viewer (HLMV).
Для просмотра текстур, сложенных в файлы с расширением .WAD, может быть использована утилита Wally.
Ресурсы, как правило, находятся в архивах с расширением .PAK, которые представляют собой несжатые архивы с файлами.
Открытая архитектура и изначальное наличие нужного программного обеспечения позволила самим игрокам создать множество модификаций, некоторые из которых являются скорее отдельными играми, используя файлы оригинала как техническую базу (например, трилогия They Hunger, Natural Selection, Underworld Bloodline, Poke646 и Poke646: Vendetta, Wanted!, Half-Life Rally, Digital Paintball и другие).
Игры, использующие GoldSrc