**Частые вопросы** ---- **Что такое Xash3D?** Xash3D - это игровой движок, совместимый с движком GoldSource от Valve LLC, на котором, в частности, основана игра Half-Life, Counter-Strike и множество других игр. **Насколько высока совместимость?** Совместимость движков составляет приблизительно 85%. Это значит, что подавлюящее большинство модов и игр под движок GoldSource должны корректно работать под Xash3D без каких-либо доработок, просто по факту установки. Исключение составляют игры, которые были спроектированы под Steam-версию GoldSource, поскольку использовали недокументированные особенности движка, что значительно затрудняет их адаптацию. Но я надеюсь, что к финальной версии это будет успешно преодолено. **Зачем нужен Xash3D, если можно просто играть в те же игры под GoldSource?** По ряду причин: * Недавние изменения, которые Valve внесла в движок GoldSource, по отзывам пользователей привели к несовместимости с некоторыми модами. В Xash3D же обеспечение совместимости имеет высокий приоритет. * В Xash3D исправлено множество ошибок оригинального GoldSource, которые там, возможно, никто исправлять не собирается. * Xash3D имеет лучшую оптимизацию и как следствие более высокий FPS, что актуально для нетбуков. * Движок не имеет привязки к Steam, которая зачастую создает больше проблем, нежели удобства. * Движок непрерывно развивается и у вас есть уникальная возможность попросить добавить какую-либо новую фичу, которая с большой долей вероятности появится уже в следующей версии. Понятное дело что в случае с GoldSource это невозможно. * Движок имеет открытый исходный код и распространяется под лицензией [[http://ru.wikipedia.org/wiki/GNU_Lesser_General_Public_License|LGPL]], что позволяет изучить любимую игру изнутри, а возможно и модифицировать её для собственных нужд. **Как создавался 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 распространяется под лизцензией [[http://ru.wikipedia.org/wiki/GNU_Lesser_General_Public_License|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