|
by deadman
Итак, Вы скачали Worldcraft и создали свою первую карту, которая, по существу, состоит из одной комнаты и точками появления 10 террористов, 10 спецназовцев и 2-3 заложников. В окне просмотра в режиме 3D Worldcraft'а Вы ознакомились с внешним видом карты, однако Вам не терпится попробовать, будет ли она работать в игре. С чего же начать?
Самый простой способ - использовать Worldcraft и идущие в комплекте с ним компиляторы. О том, как настроить Worldcraft на инструменты можно узнать здесь, а о том, как изменять параметры компиляции можно прочитать здесь.
Однако я хочу предложить Вам более надежный способ компиляции карт. Хотя, на первый взгляд, он может показаться Вам более сложным, он имеет ряд преимуществ по сравнению с компиляцией с помощью Worldcraft'а или другой программной оболочки для компиляторов.
Во-первых, всегда пользуйтесь компиляторами от Зонера (Zoner's Halflife Tools - ZHLT). Сходите в раздел ИНСТРУМЕНТЫ и скачайте набор компиляторов ZHLT последней версии. Эти компиляторы, в отличие от стандартных, могут компилировать объекты с тенями, имеют более информативные сообщения об ошибках, сохраняют "логи" компиляции, имеют больше возможностей для настройки и содержат меньше ошибок. После того, как скачаете компиляторы, распакуйте содержимое архива в папку с Worldcraft'ом или в любую другую, где Вы будете компилировать свои карты. Единственным условием является то, что файлы с текстурами (.wad) должны находиться на том же логическом диске, что и файл с картой, иначе компиляторы могут не найти текстуры и прервать процесс компиляции.
Во-вторых, запускайте компиляторы непосредственно из операционной системы, миную программы-оболочки, такие как Wolrdcraft и другие. Основной аргумент в пользу этого высказывания - экономия памяти и сокращение времени компиляции. Так, WC загружает в память всю Вашу карту, а также текстуры, указанные в его настройках. Плюс сам WC требует определенный объем памяти. Все бы ничего, да сами компиляторы требуют огромного количества памяти (особенно RAD-компилятор, для которого потребность в памяти может достигать 200-300 Мб, и даже > 1Гб для сложных детализированных карт).
Кроме вопроса о памяти есть еще одна загвоздка: WC и другие оболочки используют т.н. Process window (Окно выполнения компиляции), в котором показывают текущее состояние работы компиляторов. К сожалению, такое окно выполнения не приспособлено для отражения большого объема информации, так что приходится ограничивать выдаваемую компиляторами информацию до минимума. При этом теряется одно из основных преимуществ компиляторов Зонера - информативность. Ошибку или предупреждение можно не заметить, и, впоследствии, лишь догадываться о причинах неправильной работы или "зависания" Halflife.
Итак, мы договорились использовать ZHLT и запускать их непосредственно в ОС. Следующим этапом является экспорт исходников карты в формат .map. А как же тогда Worldcraft компилирует карты, сохраненные в формате .rmf? На самом деле, WC автоматически экспортирует карту в .map - единственный формат, понятный для компиляторов, а формат .rmf - внутренний для WC и содержит более подробную информацию, например, о группировке объектов и т.д. Для экспорта выберите в меню File пункт Export to .MAP, укажите имя файла и все. Теперь начинается самое интересное - сама компиляция.
Всего компиляторов 4, каждый отвечает за свой этап создания готового файла-карты. CSG отвечает за создание общей геометрии на карте (файл hlcsg.exe); BSP создает дерево BSP карты и готовый запускаемый .bsp файл (файл hlbsp.exe); VIS анализирует видимые участки для карты для увеличения скорости отрисовки кадра (файл hlvis.exe); RAD добавляет в готовый файл информацию об освещении на карте (файл hlrad.exe). Для того, чтобы автоматизировать процесс компиляции карты, рекомендуется создать несколько пакетных файлов (.bat), в которых прописать последовательность запуска компиляторов и параметры к ним. Несколько таких файлов необходимо для того, чтобы реализовать, например, полную и частичную (быструю) компиляцию. Создайте текстовый файл, запишите в нем названия программ-компиляторов и параметры к ним, а затем измените расширение файла с .txt на .bat. Можно начинать компиляцию.
Для полной окончательной компиляции необходимо запустить все 4 компилятора со следующими параметрами:
hlcsg.exe <имя_карты>
hlbsp.exe <имя_карты>
hlvis.exe -full <имя_карты>
hlrad.exe -dscale 1 -extra <имя_карты>
Если Вы проверяете геометрию, то можно пропустить выполнение RAD-компилятора и заменить параметр -full компилятора VIS на -fast, а если карта совсем небольшая (1-2 комнаты без деталей), то, для проверки работоспособности, можно пропустить и VIS. Однако по мере увеличения размеров карты, компиляция без VIS'а приведет к потере производительно при запуске игры ниже приемлемого уровня (скажем 3-5 кадров в секунду даже на GeForce). Компиляция же без RAD'а приведет к тому, что карта будет абсолютно светлой, без теней. Полный перечень параметров компиляторов находится здесь.
Таким образом, для полной компиляции Вам потребуется пакетный файл следующего содержания:
@echo off
rem Диск должен совпадать с диском, где установлен Halflife, чтобы ZHLT мог найти файлы с текстурами (.wad)
c:
rem Или используйте переменную WADROOT для указания пути к файлам с текстурами (.wad)
set WADROOT=c:\games\halflife
rem Укажите имя карты в следующей строке (без расширения)
rem myfirstmap замените на название своей карты
set mapname=myfirstmap
hlcsg "%mapname%"
hlbsp "%mapname%"
hlvis -full "%mapname%"
hlrad -dscale 1 -extra "%mapname%"
Для ускоренной компиляции, с сохранением освещения (невысокого качества) создайте еще один пакетный файл следующего содержания:
@echo off
rem Диск должен совпадать с диском, где установлен Halflife, чтобы ZHLT мог найти файлы с текстурами (.wad)
c:
rem Или используйте переменную WADROOT для указания пути к файлам с текстурами (.wad)
set WADROOT=c:\games\halflife
rem Укажите имя карты в следующей строке (без расширения)
rem myfirstmap замените на название своей карты
set mapname=myfirstmap
hlcsg "%mapname%"
hlbsp "%mapname%"
hlvis -fast "%mapname%"
hlrad "%mapname%"
Назовите первый файл full_compile.bat, а второй - fast_compile.bat. Теперь, для компиляции своих карт только меняйте название карты в пакетном файле, а также, при необходимости, параметры компиляторов. Если компиляция прошла без ошибок, Вы получите готовый .bsp файл с картой, который необходимо скопировать в папку Halflife\cstrike\maps, создать сетевую игру и насладиться результатами своего труда.
На последок предлагаю вам универсальный .bat файл от ТнТ, с помощью которого, легко меняя настройку, можно откомпилировать любую карту, будь то частичная промежуточная компиляция карты с одной комнатой или финальная компиляция русского dust'а.
begin of fcomptnt.bat after the line :
-------------------------------------
@echo off
rem Valve map .bat compiller (c) 1998
rem Mod'ed by TnT
rem Задаем имя компилируемой карты.
Измените слово yourmapname на имя
rem компилируемой карты (пример
de_booooom)
set mapname=yourmapname.map
rem Variable Construction
rem Задаём путь к компиляторам (в
данном случае ZHLT)
set csg=c:\program files\worldcraft\zhlt\hlcsg.exe
set bsp=c:\program files\worldcraft\zhlt\hlbsp.exe
set vis=c:\program files\worldcraft\zhlt\hlvis.exe
set rad=c:\program files\worldcraft\zhlt\hlrad.exe
rem Папка с картами к Worldcraft
set wcmaps=c:\program files\worldcraft\maps
rem Насчёт путей ! надеюсь вы уже
знаете что все компиляторы , карты
да
rem и сама халфа должны быть на одном
диске . C: к примеру. (Если у вас
rem всё добро находится , ну на D: то
измените пути ВСЕГО в этом файле
rem с C: на D:
rem Папка с картами (можете изменить
путь на подходящий .
rem Пример c:\hl\cstrike\maps
set hlbsps=c:\games\half-life\valve\maps
rem Half-Life drive
set hldrive=c:
rem change to half-life maps directory (to ensure being on the
right drive)
%hldrive%
cd %hlbsps%
rem Сам процесс компиляции (параметры
, такие как -estimate , -full
rem расписаны и описаны в Ридмешнике
к zhlt)
%csg% -estimate -nowadtextures %wcmaps%\%mapname%
%bsp% %wcmaps%\%mapname%
%vis% -estimate -full %wcmaps%\%mapname%
%rad% -estimate -extra %wcmaps%\%mapname%
rem Выше приведён пример простенькой
компиляции класса final\full
rem Хотите усложнить другими
параметрами ? Бога ради !
Приписывайте
rem наздоровье и компильте.
rem copy compiled map from wc maps directory to hl bsp directory
copy %wcmaps%\%mapname%.bsp %hlbsps%\%mapname%.bsp
rem Variable Deconstruction
set csg=
set bsp=
set vis=
set rad=
set wcmaps=
set hlbsps=
----------------------------------
end of fcomptnt.bat
Удачной компиляции!
З.Ы. Как всегда, если что-то не работает или что-то неправильно (на Ваш взгляд), звоните! :)
|