Xash3D

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Xash3D
Игровой движок (Список)
Xash3DLogo.png
Официальный логотип движка
Разработчик Флаг России XashXT Group
Ключевой программист Дядя Миша
Дата выпуска 2011 год
Аппаратная платформа ПК
Поддерживаемая ОС Microsoft Windows
Написан на языке C
Лицензия GNU GPL v3
Последняя версия 0.98 (build 3366) / 25.04.2016
Первая игра на движке Paranoia 2: Savior
Последняя игра на движке Ejector / 2016
Страница движка на ModDB

Официальный форум движка

Xash3Dигровой движок, GoldSource - совместимый, написанный на основе открытых исходных кодов Id Tech движков (Id Tech, Id Tech 2, Id Tech 3), а также некоторых производных от этих движков (DarkPlaces). Позволяет запускать все моды Half-life, но при этом обладает существенным рядом расширений.

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

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. Правда, как потом оказалось, название перекликается с грузинскими блюдами и звёздными войнами, но на тот момент я об этом ничего не подозревал.

— Дядя Миша

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

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

Движок поддерживает работу Metamod и AmxModX, с его плагинами (однако, далеко не всех плагинов, и многие из этих плагинов изначально были оптимизированы для работы под GoldSource, а не Xash). Мультиплеерные моды движок также поддерживает, однако имеется ряд подсистем, которые требуют финализации (дописывания) или апгрейда (улучшения или переписывания). Одним из таких недописанных модулей является клиентская система предсказания, из-за отсутствия которой невозможно в полной мере использовать Xash для игры в мультиплеерные моды.

Особенности и отличия от 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-текстур.
  • Выделенные физический и графический интерфейсы для предоставления большей функциональности и кастомизации.
  • Использование более эффективной системы отсечения невидимых областей, что увеличивает FPS и уменьшает «r_speeds».
  • Расширенные лимиты на ресурсы, которые можно кастомизировать под нужды мода через файл 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
Максимальное количество сообщений пользователя (дополнительные сообщения для протокола внутри игровых dll)(MAX_USER_MESSAGES) 191 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 SDL (Xash3D FWGS)[4] — кроссплатформенное ответвление от проекта с использованием Simple DirectMedia Layer, разработанный командой Flying With Gauss. Полностью поддерживаются Linux и Android, присутствует поддержка FreeBSD, Mac OS X, iOS, Emscripten. Также имеется множество исправлений и расширений оригинального движка. Получил широкую огласку только после представления портированной игры от Valve (Counter-Strike)
  • Xash3D Magenta — проект по переносу кодовой базы движка на C++ и модульную архитектуру.

Игры, использующие Xash3D[править | править вики-текст]

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

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

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

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

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

Ссылки[править | править вики-текст]