Xash3D

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Xash3D
Xash3DLogo.png
Официальный логотип движка
Тип Игровой движок (Список)
Разработчик Флаг России XashXT Group
Ключевой программист Дядя Миша
Дата выпуска 2011 год
Аппаратная платформа IBM PC-совместимый компьютер
Поддерживаемая ОС Microsoft Windows, Linux, Mac OS, Android, iOS, PlayStation Vita
Написан на языке C
Лицензия GNU GPL v3
Последняя версия 0.99 (build 4097 beta) / 12.05.2018
Первая игра на движке Paranoia 2: Savior
Последняя игра на движке Ejector / 2016

Xash3Dигровой движок, совместимый с движком GoldSource и написанный на основе открытых исходных кодов Id Tech-движков (Id Tech, Id Tech 2, Id Tech 3), а также некоторых производных от этих движков (DarkPlaces). Позволяет запускать игру Half-Life и практически все её модификации (включая спин-оффы Opposing Force и Blue Shift), но при этом обладает существенным рядом расширений. На текущий момент времени происходит активная разработка движка.

История разработки[править | править код]

Xash3D был написан с целью совместимости с игровыми библиотеками и ресурсами GoldSource. Разработка движка началась ещё в конце 2004 года, и поначалу движок вовсе не планировался как клон GoldSrc.

Изначально совместимость с GoldSource не планировалась совсем. Предполагалось использовать только похожий формат моделей, а всё остальное было бы совершенно несовместимо. При этом движок позиционировался, как очередной Generic Engine многоцелевого назначения. Однако три года разработки в очередной раз показали полную несостоятельность такого подхода, поскольку разработка движка в отрыве от конкретной игры, занятие очень увлекательное, но совершенно бессмысленное. Не имея возможности протестировать движок даже на стабильность 10-минутного геймплея (просто по причине его отстутствия) его код понемногу обрастал багами, выявить которые на паре-тройке тестовых карт не представлялось возможным по определению. В то же время многие пользователи, видя определенное сходство с движком GoldSource (главным образом из-за схожего формата моделей), просили меня переписать исходный код движка таким образом, чтобы движок оказался полностью совместимым с Half-Life и его модами. И вот, в конце апреля — начале мая 2010 года, разработка движка полностью сменила направление и взяла курс на полную совместимость с GoldSource. Положение осложнялось ещё и тем, что исходников GoldSrc не было в свободном доступе. Поэтому воссоздание исходников происходило, опираясь на общеизвестные факты о происхождении GoldSource, построенном на симбиозе Quake, QuakeWorld и Quake II, чьи исходники, как известно, давно открыты и находятся в свободном доступе. Частично пробел помогли восполнить Half-Life SDK с игровой частью кода, частично — Source SDK. Ну и наконец, когда этой информации оказывалось недостаточно, недостающие сведения добывались методом «черного ящика» при помощи оригинального GoldSource. Метод, вкратце, заключается в том, что в движок посылается некий набор данных, после чего возвращается нечто, уже обработанное движком и на анализированнии значений входных и выходных данных делаются предположения о логике работы. Подтверждением того, что я двигаюсь в правильном направлении служили игры, которые выглядели и работали совершенно одинаково, как на GoldSource так и на Xash3D.

— Дядя Миша

Происхождение названия[править | править код]

Изначально движок не имел названия вовсе. Его он получил 31 декабря 2004 года[1] и поначалу ориентировался как проект по реализации функционала Half-Life 2 (движок Source) в Half-Life (движок GoldSource)[2].

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

— Дядя Миша

Совместимость с GoldSrc[править | править код]

Совместимость движка с GoldSource составляет, на текущий момент, приблизительно 90%. Это значит, что подавляющее большинство модификаций и игр под движок GoldSource должны корректно работать под Xash3D без каких-либо доработок, однако из-за протокольной несовместимости, движок не может подключаться к серверам на GoldSource. Под Xash проверено множество одиночных модификаций для оригинального GoldSource, большая часть которых работает абсолютно правильно и идентично тому, как они делают это в GoldSource. Исключение составляют игры, которые были спроектированы под Steam-версию GoldSource, поскольку используют недокументированные особенности движка, что значительно затрудняет их адаптацию (используют библиотеки VGUI2, библиотеки Steam и прочие модули движка).

Движок поддерживает работу Metamod и AmxModX, с его плагинами. Мультиплеерные модификации движок также поддерживает, однако имеется ряд подсистем, которые требуют дописывания или улучшения.

Особенности и отличия от GoldSource[править | править код]

  • В отличие от движка GoldSource, Xash не использует модульную архитектуру.
  • Xash написан на чистом Си, GoldSrc — на C/C++.
  • Xash умеет как прекэшировать, так и загружать ресурсы «на горячую», GoldSrc — только прекэшировать.
  • Поддержка BSP-карт следующих форматов: Quake 1, Half-Life, Half-Life: Blue Shift.
  • Без привязки к родительской директории — она может быть указана в лаунчере, при необходимости. Благодаря этому, имеется возможность создавать свою собственную игру, независимую от Half-Life.
  • Поддержка фоновых карт (как в Half-Life 2).
  • Не требует наличия тех WAD файлов, ресурсы из которых не используются на самом деле на загружаемой карте.
  • «Прозрачная» файловая система, благодаря чему для обращения к файлу из архива используются те же методы, что и для файла, лежащего вне архива.
  • Поддержка цветных сообщений в консоли (через тег «^»).
  • Возможность напрямую изменять тип неба на карте, а также его поворот.
  • Поддержка текстур детализации (как в CS:CZ).
  • Поддержка HD-текстур.
  • Выделенные физический и графический интерфейсы для предоставления большей функциональности.
  • Обеспечивает интерфейс для реализации собственного рендера с использованием OpenGL.
  • Использование более эффективной системы отсечения невидимых областей, что увеличивает FPS и уменьшает количество отрисовываемых полигонов.
  • Расширенные лимиты на ресурсы, которые можно изменить под нужды модификации через файл gameinfo.txt. Уменьшение лимитов может сохранить больше оперативной памяти в тех модификациях, в которых не требуется много эдиктов (серверных энтити). Параметр MAX_EDICTS также передаётся с сервера во время мультиплеерной сессии, что позволяет подгонять клиентов под новые условия автоматически.
Лимит Xash3D GoldSource
Максимальное количество серверных энтити (MAX_EDICTS) 600 - 4096 900 (настраиваемо через конфиг)
Максимальное количество временных энтити (MAX_TEMPENTS) 300 - 2048 500
Максимальное количество частиц (MAX_PARTICLES) 1024 - 8192 4096
Максимальное количество лучей (MAX_BEAMS) 64 - 512 64
Максимальное количество видимых энтити в пакете (MAX_VISIBLE_PACKET) 512 256
Максимальное количество прекэшируемых моделей (+спрайтов) (MAX_MODELS) 2048 512
Максимальное количество прекэшируемых звуков (MAX_SOUNDS) 2048 512
Максимальное количество записей для чтения предложений, составленных из слов (MAX_SENTENCES) 2048 1534
Максимальное количество сообщений пользователя (дополнительные сообщения для протокола внутри игры) (MAX_USER_MESSAGES) 197 128 (в WON версии)
Максимальное количество загруженных текстур (MAX_TEXTURES) 4096 2048 (загруженных VGUI)
Количество сообщений titles.txt (MAX_MESSAGES) 2048 1024
Максимальный размер индексированных текстур 4096х4096 512х512
Максимальный размер полноцветных текстур 4096x4096 -
Максимальное количество моделей на карте (BSP лимит) (MAX_MAP_MODELS) 1024 256
Максимальной количество листов карты (BSP лимит) (MAX_MAP_LEAFS) 32767 8192

Производные движка[править | править код]

Так как движок распространяется под свободной лицензией GNU GPL v3, сторонними разработчиками были предприняты попытки образования форков. На данный момент известны следующие ответвления:

  • Xash3DEx[3] — ответвление от движка с некоторыми исправлениями. Разработка полностью остановлена.
  • Xash3D FWGS (ранее Xash3D SDL)[4][5] — кроссплатформенное ответвление от проекта с использованием 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[править | править код]

Ниже представлена таблица, содержащая список игр и модификаций на движке Xash3D:

Название Дата выпуска Платформа Разработчик Примечание
Paranoia 2: Savior 26 февраля 2015 Microsoft Windows Флаг Украины Kunst-Produkt Laboratory
Флаг России XashXT Group
Сиквел к игре «Paranoia» — однопользовательской модификации Half-Life.

Примечания[править | править код]

См. также[править | править код]

  • Quake engine — игровой движок, на котором основан Xash.
  • Id Tech 2 — движок игры Quake 2, наработки которого частично интегрированы и в Xash.
  • Id Tech 3 — наработки Id Tech 3 также были включены в состав движка.
  • DarkPlaces — частично используются наработки движка DarkPlaces.
  • GoldSrc — оригинальный игровой движок от Valve, клоном которого является Xash.
  • Список игровых движков

Ссылки[править | править код]