Skip to main content

Введение в современный моддинг Half-Life 1

Несмотря на то, что с момента выхода в свет этой игры прошло почти 30 лет, сообщество по сей день продолжает интересоваться игрой и использовать её как инструмент для своего творчества. Карты, модели, звуки, спрайты, текстуры, и даже полноценные законченные проекты, которые включают в себя всё перечисленное ранее: неисчислимое количество гигабайтов контента было создано сообществом, и эта цифра с каждом годом растёт.

С момента релиза игры и по сей день, моддинг претерпел множество изменений - появились новые, эффективные и удобные инструменты, а старые отчасти ушли на свалку истории. Несведующему в теме человеку будет довольно трудно разобраться сходу самому. Цель этой статьи заключается в том, чтобы объяснить, что из себя представляет моддинг Half-Life 1 во втором десятилетии 21 века, и с чего вообще начать погружение в эту тему. Я не буду подробно вдаваться в детали инструментов и процессов (такое лучше описывать в отдельных статьях, что когда-нибудь будет сделано), а эта статья имеет больше теоретический, нежели практический характер. Она должна лишь дать поверхностное понимание предмета и направление для дальнейшего изучения, если у читателя возникнет такая необходимость.

Ключевое событие в истории

Пожалуй, самым главным событием в моддинге Half-Life 1 стал релиз движка Xash3D. Он является практически полностью совместимым с оригинальным движком Half-Life 1, названным GoldSrc. Но Xash3D имеет ряд очень важных отличий: у него полностью открытый исходный код, многие внутренние лимиты были расширены либо убраны целиком, добавлено множество нового функционала для моддинга, а также он поддерживает множество различных платформ, например Nintendo Switch, PS Vita, Android, и многие другие. Его даже запускали на смарт-часах, и в браузере (при помощи Emscripten), а также в DOS.

Этот движок открыл невиданные ранее возможности для игроков и разработчиков модов (вы наверняка уже видели в этом году новость, что к HL1 прикрутили настоящий рейтрейсинг). Первоначально, движок был разработан одним хорошо известным в узких кругах человеком под ником g-cont или Дядя Миша. Но в 2019 году он перестал заниматься разработкой движка, сделал многие свои разработки общедоступными и переключился на другой проект. В данный момент движок поддерживается и разрабатывается командой энтузиастов под названием FWGS, но также в разработке принимают участие и другие контрибьюторы, как например Иван "provod/w23" Авдеев, который с начала 2021 года занимается разработкой Vulkan-рендерера с поддержкой рейтрейсинга.

Также, в 2016 году командой FWGS был выпущен в открытый доступ порт движка Xash3D под платформу Android, вместе с этим также были сделаны порты оригинального Half-Life 1 и Counter Strike 1.6. Это событие вызвало неимоверную волну интереса со стороны игрового сообщества. По итогам этих событий, Xash3D набрал на Google Play свыше миллиона установок и 30+ тысяч отзывов. CS16Client набрал на Google Play свыше миллиона установок и 20+ тысяч отзывов. Немалые цифры для игры почти 30-летней давности, не так ли? Помимо HL1 и CS 1.6 также были портированы и многие другие моды: Opposing Force, They Hunger, Afraid of Monsters: Director's Cut, Poke646, и т.д.

Базовый моддинг (замена/добавление контента)

Допустим, пришла вам в голову идея в какой-либо игре, базирующейся на движке GoldSrc/Xash3D (как например HL1, CS, HL:OF, HL:BS, TFC) заменить звуки, модели, или текстуры. Делается это очень просто: вы просто находите в папке с игрой нужный вам файл и заменяете на желаемый. Вы можете как сделать его сами, так и подобрать что-то подходящее на таких сайтах, как ModDB, GameBanana, Gamer-Lab. И на этом всё. Что касается карт (или локаций/уровней, как их ещё называют), то тут всё сложнее: уже готовую карту изменять можно в довольно ограниченных пределах, для этого используется программа bspguy. Но на самом деле, обычно и этих пределов достаточно.

В случае если же вы хотите создавать свои игровые локации полностью с нуля, вам нужно будет разобраться с редактором и компиляцией карт. По этой теме позже будут сделаны отдельные, подробные статьи. По работе с моделями тоже нужна отдельная статья, в которой будут освещены все аспекты и необходимые для работы инструменты (к слову, всё бесплатное и опенсорсное).

Продвинутый моддинг

В случае, если вы хотите сделать свой проект на базе HL1, не ограничиваясь при этом только лишь заменой контента, то вам придётся столкнуться с Half-Life SDK. HLSDK представляет из себя набор исходников утилит, клиентской и серверной библиотеки HL1. Всё это написано на языке C++, так что если вы уже знакомы с этим языком, то начать работу вам будет сильно проще. HLSDK попал в общий доступ спустя непродолжительное время после релиза HL1, то есть примерно где-то в 1999 году. Люди брали HLSDK за основу, реализовывали свои идеи, и выкладывали модифицированные исходники в публичный доступ. В результате, получилось множество разных вариаций HLSDK с разными дополнительными возможностями. Но в этой статье я опишу только самые актуальные на данный момент варианты, которые имеет смысл использовать в своих проектах:

hlsdk-portable

Представляет из себя обычный HLSDK без дополнительных фич и геймплейных изменений относительно стандартной HL, но портирован под множество платформ, и также содержит немалое количество различных багфиксов, которых нет в оригинальном HLSDK. Разрабатывается командой FWGS. Неплохой вариант в случае, если вам не нужно выходить за рамки возможностей HL1, и вы, например, хотите просто как-то изменить геймплей или что-то ещё. Можно использовать для создания мода как под GoldSrc, так и под Xash3D FWGS. Можно использовать как для синглплеерных, так и мультиплеерных модов.

PrimeXT

Современный вариант HLSDK для движка Xash3D FWGS, адаптированный под множество современных платформ, имеет улучшенную графику и интеграцию с физическим движком PhysX, но сохраняя при этом все присущие GoldSrc и Xash3D возможности и подходы к работе. Базируется на XashXT, поэтому наследует весь функционал из XashXT и Spirit Of Half-Life. Подходит для создания как синглплеерных, так и мультиплеерных модов. Кроме того, содержит в себе огромное множество новых возможностей и инструментов для создания модов, подробнее об этом можно прочитать на сайте проекта, так как подобное описание не входит в задачи этой статьи. Если вы хотите выйти далеко за рамки HL1 технологически и выжать из движка все соки - PrimeXT был создан именно для этого.

Дополнительные источники

Пока мы работаем над собственными статьями, крайне рекомендуем обратить внимание на уже существующие источники знаний. Вполне вероятно, что среди них вы найдёте ответ на ваш вопрос.