![]() |
Это заготовка статьи. Вы можете помочь проекту, исправив и дополнив её. |
Xash3D — игровой движок, почти полностью совместимый с GoldSrc. Xash3D написан на основе исходных кодов таких движков, как Quake engine, Id Tech 2, Id Tech 3 и DarkPlaces.
Движок позволяет запускать большинство игр и модов на GoldSrc, но, в отличие от последнего, обладает существенными улучшениями.
История разработки[]
Разработка Xash3D началась в конце 2004 года. Поначалу Xash планировался как движок, реализующий потенциал движка Source (Half-Life 2) в Half-Life. Курс на совместимость с GoldSrc движок взял только в мае 2010 года. Разработку сильно затрудняло то, что исходники GoldSrc не находились в свободном доступе.
Своё название движок получил 31 декабря 2004 года:
Отличия от GoldSrc[]
Основные отличия[]
- Отсутствие модульной архитектуры.
- Код движка на чистом Си (GoldSrc — на C/C++).
- Поддержка подгрузки ресурсов по необходимости (в GoldSrc — только прекэширование).
- Поддержка BSP-карт как для Half-Life, так и для Quake и Blue Shift.
- Независимость от «родной» директории Half-Life (папка «
valve
») — директория мода может быть указана в лаунчере, при необходимости. Благодаря этому, имеется возможность создавать свою собственную самостоятельную игру. - Независимость от WAD-архивов, не используемых в данный момент на карте.
- Поддержка цветных сообщений в консоли (через тег «^»).
- Поддержка «горячего» изменения текстур скайбокса без рестарта карты.
- Поддержка 3D-скайбоксов.
- Поддержка высококачественных текстур.
- Поддержка зеркал.
- Поддержка параллакс-маппинга, нормаль-маппинга и бамп-маппинга (в GoldSrc-играх не используется).
- Использование улучшенной системы резки пространства на листы (VisLeafs), позволяющей увеличить FPS и уменьшить количество отрисовываемых полигонов.
- Расширенные лимиты на ресурсы, которые можно изменить под нужды модификации через файл
gameinfo.txt
. Уменьшение лимитов может сохранить больше оперативной памяти в тех модификациях, в которых не требуется много эдиктов (серверных энтити). Параметр MAX_EDICTS также передаётся с сервера во время мультиплеерной сессии, что позволяет подгонять клиентов под новые условия автоматически. - Выделенные физический и графический интерфейсы для предоставления большей функциональности.
- Наличие интерфейса для реализации собственного рендера с использованием OpenGL.
Сравнение лимитов[]
Лимит | Xash3D | GoldSource |
---|---|---|
Максимальное количество серверных энтити | 4096 | 900 |
Максимальное количество временных энтити | 2048 | 500 |
Максимальное количество частиц | 8192 | 4096 |
Максимальное количество лучей | 512 | 64 |
Максимальное количество видимых энтити в пакете | 512 | 256 |
Максимальное количество прекэшируемых моделей и спрайтов | 2048 | 512 |
Максимальное количество прекэшируемых звуков | 2048 | 512 |
Максимальное количество записей для чтения предложений, составленных из слов | 2048 | 1534 |
Максимальное количество сообщений пользователя (дополнительные сообщения для протокола внутри игровых dll) | 191 | 128 |
Максимальное количество загруженных текстур | 4096 | 2048 |
Количество сообщений в titles.txt
|
2048 | 1024 |
Максимальный размер индексированных текстур | 4096х4096 | 512х512 |
Максимальный размер полноцветных текстур | 4096x4096 | Не поддерживается |
Максимальное количество моделей на карте | 1024 | 256 |
Максимальное количество VisLeafs | 32767 | 8192 |
Совместимость[]
Совместимость движка с GoldSource составляет приблизительно 90%. Это значит, что подавляющее большинство модификаций и игр под движок GoldSource должны корректно работать под Xash3D без каких-либо доработок, однако из-за протокольной несовместимости, движок не может подключаться к серверам на GoldSource. Под Xash проверено множество одиночных модификаций для оригинального GoldSource, большая часть которых работает абсолютно правильно и идентично тому, как они делают это в GoldSource. Исключение составляют игры, которые были спроектированы под Steam-версию GoldSource, поскольку используют недокументированные особенности движка, что значительно затрудняет их адаптацию (используют библиотеки VGUI2, библиотеки Steam и прочие модули движка).
Движок поддерживает работу Metamod и AmxModX, с его плагинами. Мультиплеерные модификации движок также поддерживает, однако имеется ряд подсистем, которые требуют дописывания или улучшения.
Производные движка[]
Так как движок распространяется под свободной лицензией GNU GPL v3, сторонними разработчиками были предприняты попытки образования форков. На данный момент известны следующие ответвления:
- Xash3DEx — ответвление от движка с некоторыми исправлениями. Разработка полностью остановлена.
- Xash3D FWGS (ранее Xash3D SDL) — кроссплатформенное ответвление от проекта с использованием Simple DirectMedia Layer, разработанное командой Flying With Gauss. Полностью поддерживаются Linux и Android, присутствует поддержка FreeBSD, Mac OS X, iOS, Emscripten. Получило широкую огласку только после представления портированной игры от Valve (Counter-Strike).
- vitaXash3D — ответвление, созданное с целью портирования движка на платформу PlayStation Vita. Основано на ответвлении Xash3D FWGS.
- Xash3D Magenta — проект по переносу кодовой базы движка на C++ и модульную архитектуру. В текущее время не поддерживается.
Игры, использующие Xash3D[]
- Area 51
- Half-Life: Year of the Dragon
- Meanwhile in Russia
- Paranoia 2: Savior
- Quake Remake
- Signal Lost
Галерея[]
Ссылки[]
- Репозиторий Xash3D FWGS (New engine) 0.20.x на GitHub
- Репозиторий Xash3D FWGS (Old engine) 0.19.x на GitHub (НЕ ПОДДЕРЖИВАЕТСЯ)
- FWGS
Игровая механика | ||
---|---|---|
Основное | HUD · Здоровье и урон | |
Настройки сложности | Half-Life · Half-Life 2 | |
Игровые движки | GoldSrc (Xash3D) · Source · Source 2 | |
Баги | Бесконечное пополнение здоровья · Ускорение коллизией · Ускоренная распрыжка задом · Распрыжка · Телепортация NPC | |
Разное | Hammer Units · Warpball · Консоль разработчика · Консольные команды |