Канал в IRC
RusNet: #cmt
Учебник по созданию карт
Глава III. Компиляция (ZHLT).

§ 3.5 Как компилировать?

В этой статье мы рассказываем о компиляции BAT-файлом, компиляции в редакторе Hammer (Worldcraft) и компиляции при помощи графической оболочки для ZHLT программы Batch Compiler. Также мы рассказываем о нескольких типах компиляции (тестовой и окончательной).

Содержание статьи:


ЧАСТЬ 1. Типы компиляции

Так как компиляция процесс довольно длительный, а результат проделанных изменений на карте лучше смотреть как можно чаще (чтобы иметь возможность вовремя что-то исправить), то появляется необходимость как-то уменьшить время компиляции. А как уменьшить время компиляции? Можно купить более мощный компьютер, а можно <поиграть> с параметрами компиляции. Во втором случае карта довольно ощутимо потеряет в качестве (будет похуже освещение, побольше тормозов и т.п.), однако для тестовой компиляции это прекрасно подходит.

Необходимость уменьшения времени компиляции привела к появлению тестового режима компиляции. При использовании тестового режима указываются параметры, существенно уменьшающие время компиляции, но при этом ухудшается качество итоговой карты. Также при тестовой компиляции возможно использование всего двух программ-компиляторов из четырех.

Итак, существует 2 типа компиляции:


1.1 Полная (окончательная) компиляция

Если нам необходимо получить максимально качественную карту (окончательную версию) или, если время компиляции особого значения не имеет (<можем и подождать>), то полный режим компиляции, то, что нам нужно. Мы рекомендуем проводить полную компиляцию карты не только для окончательного ее варианта, но также для проверки качества освещения и определения скорости отрисовки карты.

При полной компиляции задействованы все 4 компилятора: HLCSG, HLBSP, HLVIS, HLRAD.

Самый ресурсосберегающий способ компиляции — компиляция BAT-файлом. При этом способе компиляции создается BAT-файл (по сути простой текстовый), в котором записываются очередность и параметры запуска компиляторов.

Ниже приведенны строки, которые нужно скопировать в Блокнот и сохранить файл как full.bat (или с любым другим названием, но с расширением именно *.bat). Затем этот файл необходимо поместить в директорию с компиляторами, туда же скопировать карту в формате MAP и запустить full.bat.

Полная компиляция (наилучшее качество карты)
@echo off
set WADROOT=c:gameshalf-life
set mapname=karta.map

hlcsg.exe -estimate "%mapname%"
hlbsp.exe -estimate "%mapname%"
hlvis.exe -estimate -full "%mapname%"
hlrad.exe -estimate -chart -extra -dscale 1 -bounce 4 -smooth 100 "%mapname%"

1 строка: убирает сообщения с экрана (к компиляции не относится);
2 строка: сюда пропишите путь к директории Half-Life (компиляторы и HL должны находится на 1 диске);
3 строка: имя Вашей карты (не забудьте расширение .map на конце);

4 строка: запуск компилятора HLCSG;
5 строка: запуск компилятора HLBSP;
6 строка: запуск компилятора HLVIS с параметром -full (полная оптимизация карты);
7 строка: запуск компилятора HLRAD с параметром -extra (просчет освещения с наилучшим качеством).

Подробнее об этих и других параметрах Вы можете прочитать в соответствующей статье из данной Главы.


1.2 Тестовая компиляция

Тестовая компиляция применяется, когда не хочется ждать много времени, чтобы всего лишь проверить правильность работы энтити-объектов (все ли двери закрываются, ездиет ли машина, опускается ли лифт и т.д.) или просто с целью побегать по карте, потестировать геймплей, засечь время появления команд в разных местах - в этом случае качество освещения и оптимизации отходят на второй план.

При тестовой компиляции возможен запуск лишь первых двух компиляторов: HLCSG и HLBSP, то есть можно не оптимизировать карту (HLVIS) и не просчитывать освещение (HLRAD). Но мы все-таки рекомендуем запускать все четыре компилятора, просто установив для последних двух <щадящие> параметры (см. ниже).

Ниже приведенны строки, которые нужно скопировать в Блокнот и сохранить файл как fast.bat (или с любым другим названием, но с расширением именно *.bat). Затем этот файл необходимо поместить в директорию с компиляторами, туда же скопировать карту в формате MAP и запустить fast.bat.

Тестовая компиляция (наименьшее время компиляции, но качество хуже)
@echo off
set WADROOT=c:gameshalf-life
set mapname=karta.map

hlcsg.exe -estimate "%mapname%"
hlbsp.exe -estimate "%mapname%"
hlvis.exe -estimate -fast "%mapname%"
hlrad.exe -estimate -chop 128 "%mapname%"

Отличие от полной компиляции наблюдается лишь в последних двух строках.

1 строка: убирает сообщения с экрана (к компиляции не относится);
2 строка: сюда пропишите путь к директории Half-Life (компиляторы и HL должны находится на 1 диске);
3 строка: имя Вашей карты (не забудьте расширение .map на конце);

4 строка: запуск компилятора HLCSG;
5 строка: запуск компилятора HLBSP;
6 строка: запуск компилятора HLVIS с параметром -fast (быстрая оптимизация карты);
7 строка: запуск компилятора HLRAD с параметром -chop 128 (быстрый более грубый просчет освещения).





ЧАСТЬ 2. Способы компиляции

Итак, карты, как мы уже знаем, можно компилировать BAT-файлом или программами-оболочками для ZHLT (редактор карт, кстати, тоже можно назвать оболочкой для ZHLT). Нужно понимать, что в любом случае карту компилируют утилиты ZHLT, а не BAT-файл, редактор карт или любая другая программа (ну, это так... на всякий случай :)


2.1 Компиляция BAT-файлом

Собственно, компиляцию BAT-файлом мы уже рассмотрели в первой части статьи. Вы уже можете создать два пакетных файла для быстрой и полной компиляции. Но, как гласит народная мудрость: <Повторение - мать учения>, поэтому остановимся на этом способе еще чуть-чуть.

BAT-файл — это файл текстового формата, при запуске которого, выполняются записанные в нем команды (например, копирование или удаление файлов). Чтобы создать BAT-файл надо скопировать в Блокнот команды запуска компиляторов, приведенные в этой статье и сохранить файл под любым именем с расширением BAT. Или можно сохранить файл как обычный *.TXT, а затем поменять расширение на *.BAT.

При использовании BAT-файла его необходимо поместить в директорию с компиляторами, например, «D:HammerZHLT». Туда же необходимо скопировать свою карту в формате MAP.

Мы рекомендуем создать два BAT-файла для двух разных типов компиляции (полной и тестовой). Для удобства их можно назвать full.bat и fast.bat, соответственно.


Удаление лишних файлов после компиляции

После компиляции в папке с компиляторами остается довольно много лишних файлов, которые можно удалить. Давайте рассмотрим какие файлы можно удалить, а какие могут оказаться полезными.

	*.BSP — готовая карта (необходимо скопировать в папку «cstrike/maps»)
*.MAP — исходник карты в формате MAP (если есть резервная копия, то можно удалить)
*.ERR — файл создается, если на карте есть ошибки
*.LOG — файл с информацией о ходе компиляции (так же в него записываются ошибки)
*.LIN — файл нужен для нахождения ошибки LEAK, если таковая имеется на карте
*.PTS — то же, что и выше
*.P0 — можно удалить
*.P1 — можно удалить
*.P2 — можно удалить
*.P3 — можно удалить
*.PRT — можно удалить
*.WIC — можно удалить
Чтобы не удалять каждый раз лишние файлы вручную, предлагаем автоматизировать это. Нужно добавить несколько строк в BAT-файл (мы приводим пример с файлом для полной компиляции).
Обратите внимание: в строке, где указывается имя карты, расширения .map уже нет.

Полная компиляция с удалением ненужных файлов
@echo off
set WADROOT=c:gameshalf-life
set mapname=karta

hlcsg.exe -estimate "%mapname%"
hlbsp.exe -estimate "%mapname%"
hlvis.exe -estimate -full "%mapname%"
hlrad.exe -estimate -chart -extra -dscale 1 -bounce 4 -smooth 100 "%mapname%"

copy %mapname%.bsp c:gameshalf-lifecstrikemaps

del %mapname%.p0
del %mapname%.p1
del %mapname%.p2
del %mapname%.p3
del %mapname%.prt
del %mapname%.wic
del %mapname%.bsp

Благодаря команде del мы удаляем лишние файлы, а командой copy копируем готовую карту в папку с игрой (подправьте путь на свой).


2.2 Компиляция в редакторе Hammer/Worldcraft

Редактор Hammer позволяет проводить как тестовую, так и полную компиляцию карты. Чтобы иметь возможность компилировать из Hammer'а, необходимо подключить к нему компиляторы ZHLT. Как это сделать Вы можете прочитать в статье «Компиляторы ZHLT».

Мы бы не сказали, что компилировать карты в редакторе легче и удобнее, чем BAT-файлом, однако многие начинающие мапперы с упорством спрашивают, как компилировать карты именно в редакторе :) К счастью, все они вскоре переходят на компиляцию BAT-файлом, потому что это проще и требует меньше cистемных ресурсов.

Если компиляторы ZHLT уже подключены к редактору, можно приступать.

Нажимаем F9 в редакторе. Перед нами появляется небольшое окошко с параметрами компиляции.

Окно с параметрами компиляции. Режим Normal.


Это режим , в котором мы можем выбрать минимум параметров компиляции.

Run CSG

No - не запускать HLCSG
Normal - обрабатывать все объекты на карте
Entities only - обновить информацию о свойствах энтити-объектов

Run BSP

No - не запускать HLBSP
Normal - обычный режим

Run VIS

No - не запускать HLVIS (не для окончательной компиляции)
Normal - обычный режим
Fast - быстрая оптимизация карты (не для окончательной компиляции)

Run RAD

No - не запускать HLRAD (не для окончательной компиляции)
Normal - обычный режим
Extra - включает наиболее качественный просчет освещения (рекомендуется)

Don't run the game - не запускать карту сразу же после компиляции
Save visible objects only - обрабатывать только видимые (нескрытые) объекты
Expert - переключение в расширенный режим компиляции, где параметры задаются вручную.


2. Режим Expert

Теперь рассмотрим компиляцию в режиме для этого нажмем на кнопку Expert внизу окна.

Появится следующее окно. На первый взгляд тут разобраться невозможно. Вы все еще хотите компилировать в редакторе? :) Объясним все подробно.

В этом окне используются настройки, указанные нами при установке редактора, а именно из меню <Tools/Options...> закладки <Game Configurations> и <Build Programs>. Только здесь вместо путей к программам и директориям Half-Life используются переменные, начинающиеся со знака доллара <$>.

Окно с параметрами компиляции. Режим Expert.


В списке выберем .
Теперь рассмотрим каждую строчку в поле <Compile/run commands>.

Change Directory $exedir - здесь устанавливается директория, в которой находится файл hl.exe
$csg_exe $path$file - эта строчка запускает первый компилятор HLCSG
$bsp_exe $path$file - эта строчка запускает второй компилятор HLBSP
$vis_exe $path$file - эта строчка запускает третий компилятор HLVIS
$light_exe $path$file - эта строчка запускает последний компилятор HLRAD
Copy File $path$file.bsp $bspdir$file.bsp - копирует готовую карту в директорию с игрой (она указывается в )
Copy File $path$file.pts $bspdir$file.pts - копирует *.pts файл в вышеуказанную директорию (можно не делать)
$game_exe +map $file -game cstrike -dev -console +deathmatch 1 - автоматически запускает откомпилированную карту с параметрами -dev -console +deathmatch 1
Run with visible objects only - обрабатывать только видимые объекты (если на карте есть скрытые объекты, то они обработаны не будут)

Можно добавить и другие параметры компиляции, рассмотрим пример для полной компиляции:

Добавление параметров компиляции


Выберем слева строчку $light_exe. В окошках справа появятся параметры запуска этого компилятора (на самом деле это HLRAD, просто он так обозначен). По умолчанию в параметрах записано лишь $path$file, что указывает компилятору путь к нашей карте.

Добавим в поле через пробел следующие параметры: -extra -dscale 1 можно также добавить -smooth 100. Теперь компилятор HLRAD будет запущен в режиме самого качественного просчета освещения. Также устанавливаются параметры и для остальных компиляторов. Просто смотрите в статье <Параметры компиляторов> необходимые параметры и прописывайте их в строчки запуска компиляторов.

Компиляцию в редакторе Hammer нельзя назвать самым удачным решением. При этом способе компиляции требуется больше ресурсов компьютера, т.к. Hammer загружает в память как карту, так и используемые текстуры, да и сам требует определенного количества системных ресурсов.


Компиляция в программе Batch Compiler

Batch Compiler — это графическая оболочка для компиляторов ZHLT. При помощи различных меню мы выставляем параметры и запускаем компиляцию.

Batch Compiler является чем-то средним между компиляцией BAT-файлом и компиляцией в редакторе. Ресурсов потребляется значительно меньше, чем при компиляции в Hammer'е, но все же больше, чем при использовании BAT-файла. Еще один недостаток программ-оболочек приведен в заключении статьи, там говорится о постоянной необходимости обновлять эти программы.

Так выглядит интерфейс программы:

Интерфейс программы Batch Compiler


В верхней строчке флажками отмечаются те операции, которые будут выполнены. При полной компиляции необходимо отметить:

    CSG
    BSP
    Visibility
    Radiosity
Флажок напротив букв HL запустит Half-Life на откомпилированной карте сразу же после компиляции.

После первого запуска программы необходимо указать пути к программам-компиляторам, а также, при необходимости, путь к Half-Life. Делается это через меню Options/Setup.

В данном окне указываются пути к компиляторам и Half-Life


Указав пути к компиляторам, необходимо проделать тоже самое с картой в формате MAP — укажите к ней путь, отметив флажок в самом низу окна программы напротив надписи «MAP File Path».

Затем настает черед выставления параметров компиляции, делается это в закладках (CSG, BSP, Visibility и т.д.). Чтобы выставить нужные параметры, необходимо понимать, что они означают, так что учите :)

Для начала компиляции нажимаем кнопку Compile.


В заключении

С нашей точки зрения, наиболее быстрым и простым способом компиляции является использование BAT-файла. Обычно, чтобы откомпилировать новую карту, необходимо всего лишь поменять название карты. При этом не надо устанавливать дополнительных программ, занимающих место на диске. Трудно сказать какой процент мапперов использует BAT-файл, но, если судить по высказываниям в форумах, BAT-файл рулит! :)

К тому же при использовании программ-оболочек, наподобие рассмотренной Batch Compiler, мы находимся от них в зависимости. Пример: вышла новая версия компиляторов ZHLT с какими-то новыми функциями, а старая программа их, естественно, не поддерживает. Приходится ждать новой версии, следить за новостями, скачивать N-ое количество мегабайт, устанавливать... Так не лучше ли использовать BAT-файл?


Глава III. Компиляция (ZHLT).


К оглавлению Учебника

© http://cs-mapper.by.ru/
CMT (CS Mapping Tutorials) - © 2006-2011. Created by VM
[ Script Execution time: 0.0032 ]