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