Здесь показаны различия между двумя версиями данной страницы.
playground:playground [2013/08/14 10:55] f00nt |
playground:playground [2018/01/28 16:39] (текущий) cybermax |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ** Новые энтити ** | + | ====== Xash3D F.A.Q. ====== |
+ | Q. Что такое Xash3D? | ||
+ | A. Xash3D - это игровой движок, совместимый с движком GoldSource от Valve LLC, на котором, в частности, основана игра Half-Life, Counter-Strike и множество других игр. | ||
- | ---- | + | Q. Насколько высока эта совместимость? |
+ | A. Совместимость движков составляет приблизительно 90%. Это значит что подавлюящее большинство модов и игр под движок GoldSource должны корректно работать под Xash3D без каких-либо доработок, просто по факту установки. Исключение составляют игры, которые были спроектированы под Steam-версию GoldSource, поскольку использовали недокументированные особенности движка, что значительно затрудняет их адаптацию. Но я надеюсь, что к финальной версии это будет успешно преодолено. | ||
- | ^ Новые энтити ^^^^ | + | Q. Зачем нужен Xash3D, если можно просто играть в те же игры под GoldSource? |
- | | [[:ambient_music|ambient_music]] | [[:env_counter|env_counter]] | [[:func_clock|func_clock]] | [[:trigger_bounce|trigger_bounce]] | | + | A. По ряду причин. Во первых Xash3D поддерживает ряд разрешений экрана, которых нету в GoldSource, но которые очень актуальны в наше время нетбуков с их нестандартными матрицами. Во вторых в Xash3D исправлено множество ошибок оригинального GoldSource, которые там, понятно, никто исправлять не собирается. В третьих Xash3D имеет лучшую оптимизацию и как следствие - более высокий FPS, что актуально для тех же нетбуков. В четвертых движок не имеет привязки к Steam, которая зачастую создает больше проблем, нежели удобства. В пятых движок непрерывно развивается и у вас есть уникальная возможность попросить добавить какую-либо новую фичу, которая с большой долей вероятности появится уже в следующей версии. Понятное дело что в случае с GoldSource это невозможно. В шестых движок имеет открытый исходный код и распространяется под лицензией LGPL, что позволяет изучить любимую игру изнутри, а возможно - и модифицировать её для собственных нужд. |
- | | [[:generator|generator]] | [[:env_customize|env_customize]] | [[:func_light|func_light]] | [[:trigger_changeparent|trigger_changeparent]] | | + | |
- | | [[:hud_sprite|hud_sprite]] | [[:env_dynlight|env_dynlight]] | [[:func_monitor|func_monitor]] | [[:trigger_command|trigger_command]] | | + | |
- | | [[:info_compile_parameters|info_compile_parameters]] | [[:env_local|env_local]] | [[:func_physbox|func_physbox]] | [[:trigger_gravity_field|trigger_gravity_field]] | | + | |
- | | [[:info_portal_destination|info_portal_destination]] | [[:env_model|env_model]] | [[:func_platform|func_platform]] | [[:trigger_impulse|trigger_impulse]] | | + | |
- | | [[:info_texlights|info_texlights]] | [[:env_particle|env_particle]] | [[:func_portal|func_portal]] | [[:trigger_inout|trigger_inout]] | | + | |
- | | [[:item_generic|item_generic]] | [[:env_projector|env_projector]] | [[:func_screenmovie|func_screenmovie]] | [[:trigger_lightstyle|trigger_lightstyle]] | | + | |
- | | [[:train_setspeed|train_setspeed]] | [[:env_rain|env_rain]] | [[:func_traindoor|func_traindoor]]| [[:trigger_onsight|trigger_onsight]] | | + | |
- | | [[:scripted_trainsequence|scripted_trainsequence]] | [[:env_rainmodify|env_rainmodify]] | | [[:trigger_playerfreeze|trigger_playerfreeze]] | | + | |
- | | [[:momentary_rot_door|momentary_rot_door]]| [[:env_sky|env_sky]] | | [[:trigger_sound|trigger_sound]] | | + | |
- | | [[:monster_target|monster_target]] | [[:env_spritetrain|env_spritetrain]] | | [[:trigger_startpatrol|trigger_startpatrol]] | | + | |
- | | [[:multi_switcher|multi_switcher]] | [[:env_static|env_static]] | | + | |
- | | [[:multi_watcher|multi_watcher]] | [[:env_warpball|env_warpball]] | | + | |
- | | [[:physboxmaker|physboxmaker]] | | + | |
- | | [[:player_keycatcher|player_keycatcher]] | | + | |
- | | [[:pushablemaker|pushablemaker]] | | + | |
- | **Новое у стандартных энтить Half-Life** | + | 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. | ||
- | Разумеется, и о назначении энтить упомянуто не будет, поскольку они привычны всем мапперам под Half-Life и Counter-Strike 1.6. | + | 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 будет постепенно пополняться при появлении новых актуальных вопросов. | ||
- | ^ Новое у стандартных энтить Half-Life ^^^^ | ||
- | | env_beam | func_button | trigger_auto | gibshooter | | ||
- | | env_fade | func_conveyor | trigger_camera | info_player_start | | ||
- | | env_funnel | func_door (func_door_rotating, func_water) | trigger_changetarget | info_target | | ||
- | | env_laser | func_plat (func_platrot) | trigger_multiple | light (light_spot, light_environment)| | ||
- | | env_render | func_pushable | trigger_once | momentary_door | | ||
- | | env_shooter | func_rotating | trigger_push | momentary_rot_button (momentary_rot_door) | | ||
- | | | func_tank (func_tankrocket, func_tankmortar, func_tanklaser) | trigger_relay | monster_alien_grunt | | ||
- | | | func_tankcontrols | trigger_teleport | monster_barney | | ||
- | | | func_trackautochange | | monster_generic | | ||
- | | | func_trackchange (func_trackautochange) | | monster_human_grunt | | ||
- | | | func_tracktrain | | multisource | | ||
- | | | func_train | | multi_manager | | ||
- | | | | | path_track | | ||
- | | | | | player_weaponstrip | | ||
- | | | | | scripted_sequence | | ||
- | | | | | weapon_cycler | | ||
- | | | | | worldspawn | |