Меню сайта


[DS]: Half-Life Server
[DS]: Half-Life Server


[DS]: CS:S GunGame v34 Server
[DS]: CS:S GunGame v34 Server


[DS]: CS:S v34 Server
[DS]: CS:S v34 Server


Поиск

add_newДобавить новость
Последние добавленные

just a retexture i did of a popular skin pack

Читать далее

<JAM>
m1-palinka


HL-HEV
hl-hev


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

Добавил: root
2013-01-05 16:32:09
597 просмотров
В этой статье мы рассказываем о компиляции 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:\games\half-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:\games\half-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:\Hammer\ZHLT». Туда же необходимо скопировать свою карту в формате 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:\games\half-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:\games\half-life\cstrike\maps

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.


Это режим «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» для этого нажмем на кнопку Expert внизу окна.

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

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

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


В списке «Configurations» выберем «Counterstrike (full)».
Теперь рассмотрим каждую строчку в поле «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 — копирует готовую карту в директорию с игрой (она указывается в «Tools/Options.../Build Programs/Place compiled maps...»)
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, что указывает компилятору путь к нашей карте.

Добавим в поле «Parameters» через пробел следующие параметры: -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-файл?

§ 3.1 Что такое компиляция?
§ 3.2 Компиляторы ZHLT
§ 3.3 Улучшенная версия ZHLT Custom Build
§ 3.4 Параметры компиляторов
§ 3.5 Как компилировать?
§ 3.6 Ошибки компиляции
§ 3.7 Разбор компиляционного LOG-файла
§ 3.8 Изменение карты без компиляции
§ 3.9 О декомпиляции карт
§ 3.10 Узнай устройство карты без декомпиляции
§ 3.11 Как ускорить компиляцию?

Поделиться:
Тэги: