Перевод этой страницы:

Xash3D

All old is new again

Инструменты пользователя

Инструменты сайта


Боковая панель

xash3d:ru:частые_вопросы

Частые вопросы


Что такое 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 это невозможно.
  • Движок имеет открытый исходный код и распространяется под лицензией 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 распространяется под лизцензией 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

xash3d/ru/частые_вопросы.txt · Последние изменения: 2014/01/30 17:34 — f00nt