Школа Counter-Strike - Часть 3.11 Как ускорить компиляцию?

Мир Counter-Strike

Приветствую Вас Гость | RSSГлавная | Часть 3.11 Как ускорить компиляцию? | Регистрация | Вход
Главное меню
Теория CS
Видео школа CS 1.6
Скачать
Магазин
Мастерская
Арт-Cs
Новые видео уроки CS 1.6Новые материалы и файлы


Учебник по созданию карт 
Часть 3. Компиляция (ZHLT).

Часть 3.11 Как ускорить компиляцию?


В данном материале мы расскажем о всех возможных методах ускорения компиляции уровня.


Мощность компьютера

Перво-наперво, время компиляции зависит от герцовки процессора и количества свободной оперативной памяти. Чем больше частота и количество памяти — тем лучше. Если оперативки памяти мало, то начинает использоваться память виртуальная (SWAP-файл). И чем быстрее жёсткий диск передаёт данные из SWAP-файла, тем быстрее завершится компиляция.

Что касается конкретных цифр, то, по опыту, для компиляции средней карты типа De_Inferno необходимо порядка 384 Мб оперативной памяти. Лучше 512 Мб. Для уровней крупнее, памяти может потребоваться еще больше. В целом, чем больше оперативки у вас имеется, тем быстрее завершится компиляция.


Замедление компиляции из-за нехватки памяти

Иногда возможно наблюдать следующую картину: компиляция идёт шустро, доходит до 90 процентов, а потом как будто застопоривается и каждый % преодолевается чуть ли не часами — это явный симптом нехватки оперативки. При этом начинает активно использоваться SWAP-файл.

Зачастую данный случай начинается на операции MakeScales и SwapTransfers компилятора HLRAD.EXE. Исправить эту ситуацию можно радикальным упрощением уровня (сокращением его размеров и детализации) или установкой дополнительной системной памяти. Выбирайте из данных 2-х вариантов по своим возможностям. Или же компилируйте свой уровень у друга :-)


Остановка компиляции из-за нехватки памяти

А бывает, что заканчивается не только оперативка, но и SWAP-файл и тогда компиляторы Зонера выдадут примерно такую ошибку: «HLRAD.EXE failed to allocate a block of memory». Выход из ситуации вам уже известен: увеличение оперативки, увеличение SWAP-файла, уменьшение карты или компиляция у товарища :-)


Программа для компиляции

Скажите «НЕТ» компиляции через Хаммер или программы-оболочки для компиляторов. Если у вас маломощный ПК, используйте для компиляции исключительно *.BAT файл. Не лишним будет перед процессом компиляции убрать все программы из автозагрузки, увеличить размер файла подкачки и перезагрузиться и, уж, затем приступайте к компиляции.


Комплексность уровня

Под словом «комплексность» уровня следует понимать общность его размеров и сложность внутреннего строения. К примеру, комплексными картами являются довольно известные: De_Laguna, Cs_Shogun, De_Volare и пр. На каком-нибудь PIII-600 при 128 Мб памяти эти уровни будут компилироваться сутками!

Большие открытые пространства, изобилие скал, большое число источников света (light или light_spot) — все это значительно увеличивает время компиляции. Вместе с тем, без оптимизации, уровни, подобные перечисленным выше, будут сильно тормозить на любом компьютере просто потому, что древний движок HL не способен отрисовывать карты подобных размеров и такой комплексности.

Чтобы хоть как-то убыстрить процесс компиляции больших уровней нужно, во-первых, закрашивать ВСЕ невидимые игроком поверхности текстурами SKY (эти поверхности — это крыши домов, обратные стороны заборов и стен, дно уровня), во-вторых, нужно пытаться делать дно уровня и внешние стены плоскими (без выемок и ям), лучше всего, чтобы стены и дно уровня образовывали непрерывную поверхность. 1-я рекомендация ускорит просчёт освещённости карты, так как при компиляции SKY-текстуры просто-напросто не просчитываются на освещение; 2-я рекомендация пригодится, если вы строите небо уровня вокруг 1-ой большой коробкой, в данном случае между небом и уровнем не будет пустот, что ускорит оптимизацию уровня программой-компилятором HLVIS.EXE.


Источники света

Замедление компиляции также вызывает большое число источников света, собранных рядом, в одном месте. А если они ещё будут мигать или выключаться, то время компиляции вырастет ещё больше.

Очень резко (в сторону возрастания) на скорость компиляции влияет число светящихся текстур, то есть текстур, излучающих свет. Когда вы задействуете светящиеся текстуры, то при компиляции программой-компилятором HLRAD.EXE, будет заметно увеличение числа источников света (Direct Lights). К примеру, возможен такой случай, что на карте используется всего 15 лампочек (объектов light) и несколько светящихся текстур, и, тем не менее, числоо Direct Lights будет около 500 и больше. Без всякого сомнения, это значительно замедлит компиляцию на ПК с небольшим количеством оперативки, т.к. светящиеся текстуры потребляют в несколько раз больше памяти, нежели обычные источники света.


Ускорение просчёта освещённости

Как вы наверное знаете, компиляцию можно проводить 2-мя манерами: тестовую с щадящими опциями и окончательную с настройками параметров на наивысшую реалистичность. Повторяться не будем. Напомним только, что при неокончательной компиляции можно установить для программы-компилятора HLRAD.EXE параметр -chop 128 и вместе с тем убрать параметр -extra. Это значительно убыстрит компиляцию на больших картах. Так же возможно вообще отказаться от просчёта освещённости уровня (компилятор HLRAD.EXE) и оптимизации уровня (компилятор HLVIS.EXE), если компиляция в самом деле тестовая.

Полезным может стать параметр -incremental для программы-компилятора HLRAD.EXE. Данный параметр при 1-ой компиляции создает файл с информацией об освещённости уровня. Размер файла зависет от размеров уровня, но, в большинстве случаев, он занимает несколько десятков мегабайт (до ста — ста пятидесяти). При повторной компиляции с данным параметром (-incremental), утилиты Зонера найдут этот файл и несколько требовательных к ресурсам операции освещения. Этот способ позволяет значительно скоратить время полной компиляции больших уровней.


NetVIS — или компилируем вместе с другом

Также сократить время компиляции поможет проведение операции по оптимизации карты вместе с другом. Здесь вместо компилятора HLVIS.EXE следует использовать NetVIS. Тогда один из ПК, допустим, ваш — будет сервером, а ПК друга — клиентом. Если у вас большой, комплексный уровень, то время компиляции может быть значительно сокращено.


В качестве заключения

Без всякого сомнения, время компиляции уровня сильно зависит от мощности вашего ПК, но и на маломощных компьютерах вполне возможно строить качественные уровни. Вспомните, какие компьютеры были осенью 1999 года или весной 2001 года, когда появились De_Dust и De_Dust2 соответственно. Разве кто-то принуждает делать большой уровень, ждать часами, пока он скомпилируется, а потом огорчаться из-за того, что на нём не рубится народ?


Часть 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 Как ускорить компиляцию?
   
Форма входа
Гость

Здравствуйте Гость! Пожалуйста зарегестрируйтель или зайдите под своим ником.biggrin
Поиск по сайту
Облако тегов
Тактика в CS 1.6
Опрос
Что изменить в сайте?
Всего ответов: 338
Материалы
Comments: 49
Forum: 12/45
News: 6
Downloads: 250
Guestbook: 56
Кто онлайн

Онлайн всего: 5
Гостей: 5
Пользователей: 0
uCoz
При копировании материалов активная ссылка на world-cs.net обязательна © 2016