Частые вопросы
Что такое Xash3D?
Xash3D - это игровой движок, совместимый с движком GoldSource от Valve LLC, на котором, в частности, основана игра Half-Life, Counter-Strike и множество других игр.
Насколько высока совместимость?
Совместимость движков составляет приблизительно 85%. Это значит, что подавлюящее большинство модов и игр под движок GoldSource должны корректно работать под Xash3D без каких-либо доработок, просто по факту установки. Исключение составляют игры, которые были спроектированы под Steam-версию GoldSource, поскольку использовали недокументированные особенности движка, что значительно затрудняет их адаптацию. Но я надеюсь, что к финальной версии это будет успешно преодолено.
Зачем нужен Xash3D, если можно просто играть в те же игры под GoldSource?
По ряду причин:
Как создавался Xash3D, если исходников GoldSource нигде нет в свободном доступе? Вы утащили сорцы у Valve?
Изначально совместимость с GoldSource не планировалась совсем. Предполагалось использовать только похожий формат моделей, а всё остальное было бы совершенно несовместимо. При этом движок позиционировался, как очередной Generic Engine многоцелевого назначения. Однако три года разработки в очередной раз показали полную несостоятельность такого подхода, поскольку разработка движка в отрыве от конкретной игры, занятие очень увлекательное, но совершенно бессмысленное. Не имея возможности протестировать движок даже на стабильность 10 -минутного геймплея (просто по причине его отстутствия) его код понемногу обрастал багами, выявить которые на паре-тройке тестовых карт не представлялось возможным по определению. В то же время многие пользователи, видя определенное сходство с движком GoldSource (главным образом из-за схожего формата моделей), просили меня переписать исходный код движка таким образом, чтобы движок оказался полностью совместимым с Half-Life и его модами. И вот, в конце апреля – начале мая 2010 года разработка движка полностью сменила направление и взяла курс на полную совместимость с GoldSource. Положение осложнялось еще и тем, что исходников GoldSource не было в свободном доступе. Поэтому воссоздавать исходники приходилось опираясь на общеизвестные факты о происхожении GoldSource, построенном на симбиозе Quake, QuakeWorld и Quake II, чьи исходники, как известно, давно открыты и находятся в свободном доступе. Частично пробел помогли восполнить Half-Life SDK с игровой частью кода, частично — исходные коды Half-Life 2 beta. Ну и наконец, когда этой информации оказывалось недостаточно, недостающие сведения добывались методом “черного ящика” при помощи оригинального GoldSource. Метод, вкратце, заключается в том, что в движок посылается некий набор данных, после чего возвращается нечто уже обработанное движком, и на анализированнии значений входных и выходных данных делаются предположения о логике работы. Подтверждением того, что я двигаюсь в правильном направлении, служили игры, которые выглядели и работали совершенно одинаково как на GoldSource, так и на Xash3D.
Примечание: сам автор движка уже с версии 0.75 начал переодически путаться, что же именно у него запущено в данный момент: GoldSource или Xash3D
Как вы приняли решение открыть исходники движка? Ведь первоначальные версии были закрыты.
В некотором смысле на принятие этого решения повлиял один из участников нашего форума, красочно расписывавший будущее движка в случае его открытости. Лично я отношусь к подобным заявлениям с изрядной долей скептицизма, но тем не менее принял решение открыть исходные коды движка, поскольку там действительно было много интересных решений, которые вполне могли бы пригодиться, например, для Quake-коммунити или для портирования Xash3D под другие платформы.
Какая версия движка последняя, на данный момент?
Последняя версия на данный момент — 0.95. Финальной версии движок достигнет только тогда, когда в нём будет реализован полный набор возможностей из Half-Life.
Меня заинтересовал ваш проект, могу ли я сделать игру на вашем движке?
Xash3D унаследовал основные черты своего родителя в плане отсутствия привязок к какой-то определённой игровой папке. Поэтому для создания совершенно отдельной игры нет никаких препятствий. Автор движка точно так же не имеет против этого никаких возражений и готов оказать вам базовую консультацию по техническому устройству движка и его основным возможностям.
А если я захочу продать свою игру на вашем движке?
Вопрос достаточно сложный. Поскольку Xash3D распространяется под лизцензией LGPL, то лично мне никаких отчислений делать не требуется. Однако движок использует в своем составе библиотеку vgui.dll от игры Half-Life версии 1.1.0.8, которая является собственностью Valve LLC. При разработке коммерческого проекта вам придется вырезать эту часть кода из движка и игровых библиотек, соответственно. Впрочем такого рода вещи лучше обсуждать со штатным юристом компании.
Меня заинтересовал ваш проект, как я могу ему помочь?
Например, оформлением документации, созданием интернет-ресурса, посвященного движку, переводом документации на английский язык, бета-тестированием. Либо поддержать автора материально, заслав определенную сумму денег на электронный кошелёк за номером 410011011597633 в системе Yandex.Деньги.
Либо в системе WebMoney на кошелёк R921161786039
Будет ли в Xash3D добавлена поддержка GCF-архивов?
Очень навряд ли. Дело в том, что мне никогда не попадались любительские моды, упакованные в GCF, а сам Half-Life уже отошёл от использования формата GCF. Кроме того Steam предполагает достаточно хитрую иерархию папок и архивов, что приведет к путанице.
Какие инструменты вы использовали при создании движка?
Microsoft Visual Studio Enterprise Edition 6.0 + Service Pack 5 + Processor Pack. А для редактирования исходников Asm_Ed.
Почему проект называется Xash? Что означает это слово?
Когда я выбирал название для будущего движка, хотелось придумать короткое непереводимое слово, по аналогии с “SONY”. Из нескольких вариантов остановился на “Xash”. Правда, как потом оказалось, название перекликается с грузинскими блюдами и звездными войнами, но на тот момент я об этом ничего не подозревал.
Не могу скомпилить движок под шестой студий, возникает ошибка в процессе компиляции, почему так?
Вам потребуется Service Pack 5 для MSVC 6.0. Почему возникает данная ошибка мне неизвестно, но скорее всего это внутренний баг студии. Если вы обладаете обпределенными навыками в программировании, вы можете попробовать немного модифицировать код для её устранения. Если ваши попытки увенчаются успехом, я внесу исправление в оригинальные исходники.
Как включить отладочную консоль?
Отладочная консоль включается при помощи параметра командной строки -dev (без аргументов), либо при помощи параметра -dev с числом от 1 до 5. -dev 1 полностью аналогичен -dev. От цифры зависит кол-во сообщений в консоли. Рекомендуемый уровень -dev 3. -dev 4 аналогичен халфовской комбинации параметров -dev +developer 2. -dev 5 следует включать только при отправке лога при багрепорте.
Я добавил -dev в командной строки, а консоли всё равно нет. Чёзана???
Убедитесь что в файле gameinfo.txt нету строчки secure 1. Данная строчка запрещает использование консоли, равно как и включение dev-режима. Проставьте её значение в ноль, либо просто удалите из файла.
Как включить лог? Параметр -condebug не помогает.
Логгирование включается параметром командной строки -log. При этом в корневой директории движка создается текстовый документ с именем engine.log