Xash3D

Материал из Циклопедии
Перейти к навигации Перейти к поиску
Xash3D
Игровой движок (Список)
Xash3DLogo.png

Официальный логотип движка
Разработчик Флаг России XashXT Group
Ключевой программист Дядя Миша
Дата выпуска 2011 год
Поддерживаемая ОС Microsoft Windows
Написан на языке C
Лицензия GPL
Последняя версия 0.99 (build 4529 beta) / 02.07.2019
Первая игра на движке Paranoia 2: Savior
Последняя игра на движке Meanwile In Russia / 2019
Страница движка на ModDB

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

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

Первоначальный код от разработчика, открытый в 2011 году, работал только под Windows. В дальнейшем, движок был портирован энтузиастами с использованием библиотеки SDL на Linux, а затем на Android (в 2015 году)[1][2], что позволило запустить Half-Life на мобильных устройствах[3][4][5] вплоть до умных часов[6].

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

Xash3D был написан с целью совместимости с игровыми библиотеками и ресурсами GoldSrc. Разработка движка началась ещё в конце 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 года[7] и поначалу ориентировался как проект по реализации функционала Half-Life 2 (движок Source) в Half-Life (движок GoldSource)[8].

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

— Дядя Миша

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

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

Движок не поддерживает нормальную работу Metamod и AmxModX, и требует их модификации под него.

Так как движок изначально тестировался только с одиночными модификациями, нормальная работа мультиплеера не гарантируется.

Особенности и отличия от GoldSrc[править]

  • В отличие от движка 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-текстур.
  • Физический и графический программные интерфейсы для реализации дополнительной функциональности (позволяет использовать PhysX).
  • Использование более эффективной системы отсечения невидимых областей, что увеличивает 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 — ответвление от движка с некоторыми исправлениями. Разработка полностью остановлена.
  • Xash3D FWGS (ранее Xash3D SDL) — кроссплатформенное ответвление от проекта с использованием Simple DirectMedia Layer, разработанное командой Flying With Gauss(ранее SDLash3D). Полностью поддерживаются Linux, FreeBSD, NetBSD, OpenBSD и Android, также присутствует поддержка DOS, Mac OS X, iOS, Haiku, Emscripten и есть возможность собрать и запустить игровой движок на встраиваемых системах вроде Raspberry Pi, AllWinner, Эльбрус и домашних роутерах на архитектуре mips с OpenWRT. На данный момент ведётся активная разработка. Получило широкую огласку только после представления портированной игры от Valve (Counter-Strike); имеется страница в Google Market, а также официальная группа во ВКонтакте.
  • vitaXash3D — ответвление, созданное с целью портирования движка на платформу PlayStation Vita. Основано на ответвлении Xash3D FWGS.
  • Xash3D Magenta — проект по переносу кодовой базы движка на C++ и модульную архитектуру. В текущее время не поддерживается.
  • Xash3DS порт игрового движка на Nintendo 3DS, Основано на vitaXash3D.
  • XashNT — сильно усовершенствованная, но до сих пор закрытая и не вышедшая в свет, ветка оригинального Xash3D, рассчитанная на нужды разработчиков модификаций и без совместимости с HL.
  • Afterburner engine — альтернативная реализация игрового движка на основе Xash3D FWGS для игры про James Bond'а от Gearbox — NightFire 007.

Инструменты разработчика[править]

  • XashXT — это SDK с расширенными возможностями для разработчиков модификаций под Xash3D.

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

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

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

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

Источники[править]

  1. Проект Xash3D Android Project for NDK. на сайте GitHub
  2. Приложения в Google Play – Xash3D FWGS (рус.). play.google.com. Проверено 26 февраля 2019.
  3. Программист из Казахстана портировал Counter-Strike 1.6 на Android. meduza.io (2016-04-19). Проверено 26 февраля 2019.
  4. Богдан Чуб Counter-Strike 1.6 портировали на Android. gagadget.com (2016-04-18). Проверено 26 февраля 2019.
  5. Алибек Омаров Как создавался кроссплатформенный Half-Life или «Хедкрабы внутри ваших часов» (рус.). habr.com (2015-10-14). Проверено 26 февраля 2019.
  6. Юрий Шелест Видео: Half-Life запустили на часах LG G Watch (рус.). 3DNews (2015-07-27). Проверено 26 февраля 2019.
  7. Forum Half-Life.ru - Xash
  8. Forum Half-Life.ru - Новый проект

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

 
Вселенная Half-Life
Half-Life

и дополнения Opposing ForceBlue ShiftDecay • переиздание Half-Life: SourceHalf-Life Deathmatch: Source) • Uplink

Half-Life 2

и продолжения Episode OneEpisode TwoEpisode Three • сетевая Half-Life 2: DeathmatchLost Coast

Другие игры

Half-Life: AlyxHalf-Life 2: SurvivorReturn to Ravenholm (отменена) • Codename: Gordon (неофициальная)

Сборники (все)

Half-Life 1 AnthologyThe Orange Box

Персонажи

Гордон ФрименАликс ВэнсG-ManБарни КалхаунАдриан ШепардПёс

Противники
и союзники

АльянсВортигонтыОбитатели ЗенаРаса XХедкрабОрганизации серии игр Half-Life

Локации (все)

Чёрная МезаЗен

Связанное

Гравитационная пушкаГражданская оборонаСерия Portal
неофициальные продукты: Black Mesa (римейк) • Escape from City 17 (сериал) • Uplink (фильм) • Период полураспада (фильм)Half-Life TVXash3D