Quake-on-Amur's home
Quake-on-Amur: Первый хабаровский сайт о Quake!

Новости
 Свежие
 Архив
 Статьи
 О сайте


Quake II: Map-creating (создание карт)

Введение в Deathmach левелмакерство
глазами любителя - самоучки ;)
v. 1.49

Все написанное ниже, излагает только мое субъективное мнение, может быть в корне неправильным и ламерским, но это то, до чего пришлось доходить самому, без помощи Internet и Fido и отражает мое видение мультиплейерной игры. Желающие меня опровергнуть, ниспровергнуть, обругать, оплевать и закидать банановыми шкурками - внизу мой E-Mail, застрелить, взорвать, нашинковать, унизить бластером - quake.redcom.ru или ваши LAN варианты.

  1. Лирическое отступление...
  2. Почему Qoole
  3. Общие принципы
  4. От принципов к уровню
  5. Qoole unleashed
  6. Ну, что ж, приступим к творчеству...
  7. Замечания по
    1. архитектуре
    2. оружию и итемам
    3. текстурам
    4. освещению
    5. хорошим манерам
  8. Словарь наиболее часто используемых терминов

1. Лирическое отступление...

Я есьм Othes из Tractor X Team (Quake2 Khabarovsk FFA Fighters Clan) [TxT]. Я играю только стандартной Male моделью (а это тоже принцип), со своим контрастным скином Warlock и f**k тех male-ов, прячущихся в женскую модель (Thrash-а и прочих неимоверно крутых (но тем не менее прячущихся, хе-хе) тоже ;)).

Avenger, после битвы на одном из моих уровней, попросил меня исторгнуть из себя тот мутный нанос мыслей о левелмайкерстве, скопившийся с неудачных попыток реализовать свои архитектурно-тактические изыски в Duke Nukem 3D, а затем и в трепетно привезенном из Москвы Quake2. Кроме SuddenDeath нормального Deathmach уровня в Q2 не было, а те первые, юзерские, что появились, были написаны в Note Pade -е и имели соответствующее качество. Первой моей поделкой была переделка родного первого Doom-овского уровня (Batrtmap в DN3D), с небольшими дополнениями, копирайт на которые принадлежит безвестному бойцу мультиплейерных баталий из DVM Group под Quake2. Затем пошло свое, и процесс создания своих миров оказался не менее увлекательным, чем забрасывание этих миров трупами друзей, и рваными кусками мяса. Желающим попробовать первое и испробовавшим второе адресовано нижеследующее послание.

2. Почему Qoole

В этом опусе будет рассмотрен вопрос изготовления Deathmach уровней для Quake 2 (в-принципе для Quake тоже) с использованием замечательного редактора Qoole 2.30 (2.50). Чем он так замечателен? Ну хотя бы тем, что Qoole в отличие от родного id-шного QERadiant позволяет работать как на машине без 3D карты, без установленного OpenGL, так и с оным. Qoole менее требователен к оперативной памяти и процессору, и его необязательно ставить на NT. Да и просто визуально работать в Qoole гораздо приятней, проекции четкие и контрастные, на черном фоне - кто не верит, откройте какой нибудь .map в Qoole и в QERadiant - просто каша и кошмарная каша:). Хотя, нельзя не заметить, интерфейс в Qoole сделан не совсем стандартно, но к этому можно быстро привыкнуть. В общем Qoole - выбор любителей, а QERadiant - профессионалов (покажите мне хоть одного, кто этим на жизнь зарабатывает, а если кто себя профи считает - то на кой вам статью -то эту читать?). Есть, конечно и другие редакторы уровней: Worldcraft, DMMaker и т.д. но это не ко мне. Короче, вот ссылочка http://www.qoole.com.

3. Немного теории (общие принципы)

Вводная часть для тех, кто не работал с Qoole и вообще никогда не занимался левелмайкерством как таковым.

Начнем с того, что все уровни в играх на движке Q, Q2 (в отличие от игр на движке Build (Duke Nukem 3D, Shadow Warrior)) состоят из трехмерных цельных блоков или брашей (Brush) и "объектов" (Entity). Brush-и - это все неподвижные объекты, стены, потолок, ящики, стекла, вода, лава, и даже небо. Entity - наоборот, все, что может двигаться, появляться, исчезать, плюс объекты, связанные с каким-либо событием - точки, где появляется игрок, двери, подъемники, оружие, боеприпасы, монстры, артефакты, источники света и т.д. То есть, entity может быть не только конкретным трехмерным объектом, например дверью, но и источником света и землетрясением.

Теперь общие принципы: существует некое пространство, обрабатываемое Quake-ом. Помещаем плоскую плиту (которая будет полом) и ставим сверху на нее игрока - и он уже может бегать по этой плите, постреливать из пистолетика, любоваться шизофреническим видом на пустоту, пока не прыгнет с плиты и пролетев некоторое время не разобьется об нее, упав сверху, так как пространство замкнутое. Кто читал "Град обреченный" Стругацких, поймет как это, только вот откуда id-шники об этом знают -вопрос, ведь они-то Стругацких наверняка не читали ;). Плита не падает потому, что является Brash-ем - то есть неподвижным объектом, который куда поместили, там он и стоит (или висит) и есть не просит. Если на плите будет стоять второй игрок, то он будет наблюдать как первый улетает вниз и вновь валится сверху. Ну что вы хотите - Entity. Кстати, если над точкой появления игрока высоко-высоко подвесить BFG-овину (которая тоже Entity) то она упадет ему прямо в руки (или по башке ;)). Забавное, наверное, зрелище, сам не пробовал ;). Так вот, получаем что-то типа простейшего уровня, но это не есть правильно, так как одним из важнейших условий при разработке уровня является его замкнутость со всех сторон, вы сможете откомпилировать незамкнутый уровень, но применить к нему освещение и оптимизировать - проблематично. Таким образом, самым правильным с точки зрения Quake-а становится уровень, представляющий из себя полый куб с игроком внутри, висящий в пространстве, которое вас не должно, в общем, заботить кроме одного нюанса - оно ограничено (Qoole сам предупредит, когда какой-нибудь браш будет слишком далеко от центра этого виртуального (ламовское словечко) пространства), так что Unreal-овские уровни переделать в Q не получится ;(.

4. Как эти общие принципы превращаются в уровень:

  • создается описательная модель (во как умно, а на самом деле простой текстовый файл) с использованием Qoole, DMMaker-а, QER, да хоть NotePad-а в формате .qle или . map в котором описывается название Brush-а, его координаты в виртуальном пространстве, размеры, текстура - в общем, кому интересно, может покопаться врукопашную - ничего там сложного нет, а в разделе где Entity описаны даже наоборот, полезно (так Мы, Othes, научились телепорт делать;));
  • затем этот текстовый файлик подсовывается в командную строку qbsp3.exe (Qoole сам это сделает, не пугайтесь) и последний, поднатужившись, выплюнет нам (в директорию Quake2\baseq2\maps) родной .bsp-шник. Вот и готов уровень на черновую, можно запускать Q2 и в консоле пропечатать "map ИМЯ_ВАШЕГО_МАПА" которое было у файла с расширением .map или .qle;
  • но! подтормаживать будет, т.к. Q кроме видимых граней, еще и невидимые просчитывать будет, а это не есть гуд. Для оптимизации запускается qvis3.exe, который и отсекает невидимые грани. Делать это стоит только в окончательном варианте уровня, т.к. проверить и протестировать все нюансы, можно уже после qbsp и запуск vis-а - только лишняя потеря времени (попробуйте, надоест быстро :)). Если он не запускается и пишет что-то типа "Load Portals: couldn't read ПУТЬ/ИМЯ__ВАШЕГО_МАПА.prt", то это значит, что ваш уровень, где-то разомкнут, т.е. есть дырка в окружающее пространство, о чем Я выше и говорил (кто бы мне подсказал в свое время !). Оную дырку тать может уследить еще на этапе компиляции qbsp по сообщению типа "**** leaked ****" и отсутствию строки "Writing ПУТЬ/ИМЯ__ВАШЕГО_МАПА.prt". Ну вроде просто объяснил ;)
  • после vis-а надо еще и предметы засветить как следует, где темней (туда и с Railgun-ом, батенька, непременно... ракету ловить), а где и светлей, в общем, обработать освещенность текстур, в зависимости от расположения источников света и самосветящихся текстур (типа лавы, неба, ламп на потолке - есть и такие). Для этого и нужен qrad3.exe. Еше раз повторюсь, что Qoole сам их все запускает, чтобы не пугать того, кто в первый раз собрался что-нибудь изобразить. Ваше дело изваять, отметить галочками, что запускать и ткнуть в Go! остальное Qoole сама сделает!! даже и Q запустит с уровнем !!! Qoole - generation NEXT!!! Qoole - all the day -every day!!! ...oops ;) (это была небольшая реклама, попытка отплатить хоть как-то, за злобно крякнутый Qoole ;))

5. Qoole unleashed (tribute to Charles Calvert)

Уффф, с теорией вроде все. Переходим к практике. Инсталяем Qoole, обязательно указав где Q или Q2 лежит, чтобы он из pak-ов текстуры достал. Регистрируем его, регистратором или как ;) (впрочем для уровней с количеством Brush-ей менее 300 это и необязательно, если вас не будет раздражать напоминание c отсчетом на заставке). Затем в меню View делаем Default layout. File - New. Начинаем творить: Object - Add Brush - Cube (large). Появился тот самый куб в пространстве. Сделаем его пустотелым - меню Edit команда Hollow Brush. Теперь помещаем внутрь игрока Object - Add Entity-Player-Start. Проверим, что получилось File - Export BSP... и отмечаем галочками Run QBsp и Run Quake2. Первый уровень готов:). Дерзайте далее. Вот только некоторые советы и пояснения к командам меню:

Меню File

Здесь Я думаю все понятно,

Export MAP... - выдает уровень в формате .map для того, чтобы его можно было редактировать в каком-либо другом редакторе, в этом формате теряются все данные о сгруппированных объектах, и если открыв уровень с расширением .qle вы могли таскать по уровню лестницу целиком, то открыв в формате .map вам придется передвигать отдельные перекладины, из которых она состоит.

Export BSP ... - ну, что ж, еще разок, компилирует уровень в формат .bsp который Quake и "понимает"

Run QBsp - компилирует уровень на черновую, без оптимизации и просчета освещения, но тем не менее уровень уже можно загружать в Q;

Run QVis - оптимизирует уровень, удаляя невидимые грани, повышается fps, но без освещения, обычно ну очень темно получается;

Run QRad - освещает и раскрашивает уровень, просчитывает тени и освещенность объектов;

Run Quake II - без комментариев ;)

Меню Edit

Ну здесь тоже не сложно...

Duplicate - аналог Copy и Paste (боже мой, Я НЕ БУДУ объяснять их значение) для выделенного объекта, только в одно действие;

Realign To Grid - выравнивает объект по сетке, Alt-R, man, т.к. эту команду придется использовать часто, потому, что после копирования объекта, он вставляется черти как (может баг, а может - глюк) даже при включенном Snapping-е.

Hollow Brush - полезная команда, делает объекты (Brush - и) полыми, т.е. если нужно сделать комнату, вместо того, чтобы делать пол, потолок, четыре стены, подгонять их друг под друга, чтобы щелей не было, можно взять Brash Cube (куб) растянуть его до размеров комнаты, сделать команду Hollow Brush и комната готова (из сгруппированных брашей, об этом ниже);

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

Меню Mode

Большинство команд этого меню надо знать наизусть! (В смысле клавиатурных сокращений (которые работают только в английской раскладке с выключенным CapsLock -ом), мало того они еще и продублированы кнопками с очень понятными пиктограммами на панели).

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

Object Move, клавиша M, - перемещает объект по уровню, дискретно по ячейкам сетки, если включена опция Snapping в меню Options - Config. Просто цепляем мышью и перетаскиваем, если включен этот режим;

Object Rotate, клавиша R, - вращение объекта в той плоскости, в которой вы будете поворачивать объект (соответственно в окнах Top, Back, Side);

Object Scale, клавиша S, - очень удобная фича, позволяет пропорционально менять размер объекта и, что особенно удобно, групп объектов (об этом чуть ниже);

Vertex Move, клавиша V, - предназначена для изменения геометрической формы Brush-а, путем перемещения его углов; при переключении в этот режим в углах выделенного Brush-а появляются желтые точечки, вот за них - то и следует хвататься и тащить в разные стороны, а если слишком переусердствуете, то Qoole вам об этом сам скажет ;);

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

Face Move, клавиша F, - позволяет менять форму Brush-а перемещением его плоскостей целиком, один из наиболее часто используемых режимов, наши любимые желтые точки появляются посередине каждой из плоскостей Brush-а;

Eye Move, клавиша Ctrl-M, - позволяет передвигать карту уровня в любом из окон к нужной точке - цепляйте мышем в любом месте и тащите. Т.к. не все из нас, любителей, работают с 21" мониторами Sony (Я, например с 15" в разрешении 1024x768, что явно не хватает для такой работы), то уровень, как правило, не помещается ни на одной из карт целиком при нормальном масштабе, вот и приходится...;

Eye Rotate, клавиша Ctrl-R, - попробуйте, но я практически не пользуюсь, хватает трех проекций;

Eye Zoom, клавиша Ctrl-Z, - ну а вот это совсем другое дело, используется постоянно, так же, цепляем мышем и тянем, увеличивая и уменьшая масштаб изображения;

Walk-Thru, клавиша W, - применяется для перемещения в окне 3Dview стрелками вперед - назад и мышью, стрелки влево - вправо - стрейф, PageUp - PageDown - вверх - вниз.

Меню Object

Самое обширное и еще бы...

Groupe -

Add To, клавиша G, - позволяет группировать объекты в один, который потом можно перетаскивать, поворачивать, масштабировать и т.п. Например, нам нужна лестница на уровне. Берем браш куб маленький - одна штука. Зверски глумимся над ним Face Move -ом и получаем длинную вертикальную палку - одна штука соответственно. Копируем ее Ctrl-C, Ctrl-V. Обязательно выравниваем по сетке Alt-R (вообще это должно в привычку войти: после Ctrl-V - Alt-R). Размещаем две палки параллельно. Теперь надо добавить перекладины. Сделаем одну, накопируем сколько надо и расставим по местам. А теперь, допустим, надо нам эту лестницу перетащить куда-нибудь. По палкам таскать? Да! Если вы смелы и молоды! Если есть порох в пороховницах и влага ...эээ. Но можно и проще. Нажимаем G и последняя перекладина которая была красным цветом выделена, становиться желтой. Щелкаем по другой и опять G. Продолжаем, пока все элементы лестницы не будут желтыми. Затем делаем

Finish, клавиша Ctrl - G, - и вся лестница краснеет со стыда от такой наглости - теперь она единый объект, который можно таскать, поворачивать, масштабировать, копировать всяко - разно и т.д., пока не будет сделана команда

Ungrop, клавиша Alt - G, и многострадальная, затасканная и перевернутая лестница вновь распадется на отдельные части.

Scope - заявляется разработчиками как группировка с возможностью иерархии внутри группы. Не знаю зачем нужно, ведь Group позволяет делать то же самое. Если две лестницы сгруппировать, то при разгруппировке они так и останутся двумя сгруппированными из перекладин и палок объектами, - та же иерархия. Поправьте, если не прав.

Scope Up - соответственно сгруппировать.

Scope Down - ...и разгруппировать

Add Brush - добавляет сам brush, самое посещаемое меню, посмотрите сами какие основные браши (по сути базисные элементы, из которых получаются все другие в Quake) предлагаются - нет у меня желания расписывать, что Cube -это куб, Cube (small) - это маленький куб и т.п. ;)

Add Prefab - переводится как собранный домик примерно, коллекция уже готовых элементов, переключателей, мостов, стульев всяких - хранятся, как и уровни, в файлах с расширением .qle в директории Qoole\ Prefabs. Можно создать свои, часто используемые элементы и сохранить их,а потом просто загружать и помещать на уровень. Я, помнится, увидев это, сразу создал объемный навороченный логотип и понатыкал его на уровни, но когда посмотрел на fps - то быстренько отказался от этого. А вообще там лестница (ну достал Я ее, бедную) полезная, чтобы самому не мучаться (Ladder1 и Ladder2), светильники тоже ничего.

Add Entity - соответственно добавляет Entity, не надо, plz, их слишком много, я пальцы поломаю все описывать - все объекты Quake, как визуальные, так и нет. Упомяну лишь о том, без чего сам не обхожусь.

Player (Start, Deathmach, Coop) - На любом уровне, даже DM, наряду с Add Entity - Player-Deathmach (точки появления игроков на уровне в Deathmach-е) обязательно должно быть Player-Start (qbsp ругнется, если его не будет). А чтобы эти Entity не торчали на полу - слегка утапливайте их в браш пола, не помню точно насколько, можете на моих картах посмотреть, то же и с телепортерами. Небольшой нюанс касательно этих двух Entity. На проекциях они обозначаются фигурой игрока, по которой довольно трудно определить в какую сторону он будет стоять лицом, появившись в этой точке и демонстрируя свой презрение к врагу с RL. Можно просто запомнить, что при помещении на карту, фигурка игрока стоит лицом на "север" в проекции вид сверху (Top) и в режиме Rotate Object развернуть ее в нужную сторону.

Misc - Teleporter (Teleporter Dest). Чтобы телепортер заработал, помещаем на уровень Teleporter и Teleporter Dest. В свойствах Teleporter Dest, клавиша Alt - E, указываем название (TargetName), допустим Teleport1 ,а в свойстве Teleporter - Target прописываем это название Teleport1. Все, теперь когда игрок наступает на Teleport, он оказывается в точке, где расположен соответствующий Teleporter Dest.

Light - Light - источник освещения, разобраться довольно просто - куча примеров и заготовок в Add Prefab - посмотрите. Параметр Light в свойствах задает радиус освещения. Очень удобно сделана настройка цвета освещения - просто щелкните по стрелочке рядом со свойством _сolor. Не буду расписывать мигающий свет, посмотрите в Навигаторе, коли есть желание, Я считаю, что это ни к чему (еще раз сошлюсь на Q2DM1-Q2DM8) - ведь мы говорим о Deathmach (а сколько, извините меня, фуфла с землетрясениями, взрывами, мигающими лампами красивым освещением - но абсолютно неиграбельного в DM было затерто, а перед этим скачано ;(.

Apply Entity - для дверей, подъемников, сообщений типа "разбегайся - фраг с квадом" когда кто-нибудь берет озверин и т.п. Применяется к брашам, которые после этого становятся Entity. Например нужена нам дверь - помещаем браш по размерам в дверной проем и делаем команду Apply Entity - Func - Door. Door Secret нужно стрельнуть, чтобы она открылась. В свойствах указываем сообщение, которое будет появляться при открытии двери (message), направление в котором дверь будет открываться (angle), скорость открывания (speed), урон, наносимый дверью, если игрока придавит (dmg), громкость звука при открытии (sounds), сколько от двери будет торчать в проеме, когда она откроется (lip) ... уф, желающие посмотреть как использовать эти параметры, а также как делать подъемники - да и просто на новом уровне ботов погонять, скачайте TxT_bag. Желающим поизголяться с движущимися предметами могу посоветовать также Plate, Door Rotating (забавная штучка), Conveyor, Train. Также здесь можно изменить свойства брашей определяемые по умолчанию текстурами.

Entity Properties... - вызывает свойства текущего Entity. Содержимое меню меняется в зависимости от типа Entity.

Load Prefab... см. Prefab

Save Prefab... см. Prefab

Меню Texture

Ну очень полезное для раскрашивания уровня

Apply To Object, клавиша T, - накладывает на выделенный объект текущую текстуру из окна Textures (текущую текстуру также можно видеть в окне Object);

Texture Properties, клавиши Alt - T, - также часто используется, в открывшемся окне можно выполнять наложение текстур не только на весь объект целиком, но и на отдельные его грани, а также задавать свойства для объекта - текстур. Если у нас есть куб, то по нажатию Alt-T открывается окно Texture Properties с окошком, в котором изображается текстура на текущей грани, выделенной в остальных окнах желтым цветом (Render Style в окне трехмерного вида удобней установить в Wire Frame). Изменить текущую грань на объекте можно с помощью кнопок Prev и Next. Поля X Offset и Y Offset предназначены для перемещения, X Scale и Y Scale - для изменения масштаба (увеличения или уменьшения размеров), а Angle - для вращения текстуры по поверхности обьекта. Кнопка Apply All применяет установки, заданные для текстуры для текущей грани к текстурам на других плоскостях объекта (Brush-а). Кнопка Reset Face обнуляет значения для выбранной грани. В этом окне можно накладывать на грани одного и того же куба разные текстуры (тогда в окне Object появляется надпись Multiple Textures), превращать "твердые" браши в воду, лаву, жижу, делать их невидимыми, полупрозрачными и т.п.. Кроме того большинство текстур имеют некоторые свойства по умолчанию. Ну например, поставьте на уровне два куба с текстурами по умолчанию, допустим, cinder 1_5. Теперь открываем Texture Properties, кнопками Prev или Next выделяем желтым цветом боковую сторону, в окне Textures ищем текстуру water7 и нажимаем T (либо делаем double click на ней). Теперь одна из сторон куба стала водой. Если зайти в Q и посмотреть со стороны воды сквозь куб, то он будет прозрачным, хотя с других сторон он все также останется твердым непрозрачным блоком кирпичей - вот уже один из способов сделать стену, дверь, окно, прозрачными с какой - либо стороны для последующего отслеживания фрага, загона в угол и свежевания его тушки. Со вторым кубом сделайте обратное - одна сторона кирпичи, остальное - вода, вот и получаем неплохую панель для заделывания тайничков с ништячками и прятанья бойцов с рейлганами ;), а чтобы было слышно как оный тать туда прячется, заменим воду лавой или слизью (пусть покричит громко, залезая туда) - в общем возможностей для фантазии тьма, причем это только один из вариантов как получить подобные поверхности. Например, абсолютно невидимые и непроницаемые для игрока, но не для ракеты ;) поверхности можно получить установив свойство playerclip текстур на объекте - представляете какие перспективы! Хе-хе... Сделать фрагу окошко, через которое выпрыгнуть нельзя, положить за окошко ништячков, стеночку поставить, чтоб взрывами задевало и ... добро пожаловать, любимый фраг ;) (желающие могут посмотреть мои уровни). Еще упомяну о таком свойстве текстуры, как ladder. Установка флажка на этом свойстве превращает объект в "лестницу", то есть игрок сможет цепляться за него и карабкаться вверх - вниз, причем форма объекта роли не играет и это вовсе не должна быть классическая лестница (когда же Я ее в покое оставлю?!) с поперечными перекладинами ;). Наоборот, вставив заподлицо в стенку полосу с таким свойством и подогнав текстуры, можно получить тайный путь для залезания куда-либо. Другой вопрос нужно-ли это делать. Особое место занимают текстуры неба - не советую ставить их на стены или пол - небу место на потолке быть! С параметрами sky и nodraw! Непременно, батенька... если, конечно, вы не космический корабль или Sky Town из Unreal-а делаете. У меня нет особого желания расписывать все свойства текстур - попробуйте сами, фантазию хорошо развивает ;) ;

Texture Lock - привязывает текстуры к объектам; при перемещении куба, рисунок на нем останется тем же, но если опция отключена, то текстуры привязываются к сетке и при перемещении объекта рисунок текстуры "скользит" по его поверхности, оставаясь неподвижным относительно сетки. При построении уровня, лучше отключить в самом начале - избавит вас от необходимости вручную менять цифровые значения (что не очень удачно реализовано в Qoole) или жать на Reset Face. Гораздо проще выравнивать объекты по сетке и лишь на последнем этапе оформления уровня использовать эту опцию. Иногда глючит при группировке-разгруппировке объектов.

Details - выдает картиночку текстуры, название и размеры;

Bookmarks - позволяет собирать в одном окне наиболее часто используемые текстуры, чтобы иметь к ним быстрый доступ, о количестве текстур - чуть ниже;

Add Textures... - импорт текстур из WAD-ов;

Texture Manager... - недоступен в ver 2.30, работает в 2.50 - по моему вещь ненужная, для высокохудожественных поделок дизайнеров высокого полета и просто извращенцев, использующих свои текстуры, см ниже;

Меню View

Add Window - только в том случае, если вы закрыли какое-то из окон;

Render Style - режим отображения в окне 3D View, что жизненно необходимо при подгонке текстур и "раскрашивании" уровня. Зависит от мощности вашей машины:

Wire Frame - просто линиями, для самых слабых машин и самых больших уровней, правда для последних довольно сложно что -либо разобрать в трехмерной проекции;

Solid - и получаем разноцветные блоки, очень, по моему, неудобно;

Textured - натягивает на объекты текстуры, картинка почти как в Quake-е только для мощных машин или маленьких уровней;

Textured (Fast)- что Я обычно и использую (на P166/64/ без 3D) в комбинации с Wire Frame, качество текстур похуже, но скорость повышается моментально, в крайнем случае включаем Wire Frame (F5), перемещаемся в нужную точку и опять в Textured (Fast) (F8);

GotoCenter - ... и перемещаемся в центр нашего виртуального пространства;

Lock Views - всегда включаю, при перемещении в одной из проекций (Eye Move, помните), перемещает и другие к той же точке, аналогично и для Eye Zoom;

Lock 3D View - аналогично предыдущему, но включает в себя и окно 3Dview;

Decrease View Depth - для окна 3Dview устанавливает видимые границы, глубину прорисовываемого изображения;

Increase View Depth - то же;

Cascade Views - определяет расположение окон на рабочем поле Qoole;

Tile Views - то же;

Default Layout - к чему и надо в конце концов прийти, если у вас не 14" монитор ;(

Меню Options

Options и есть...

Config - первым делом, до того как начать что - либо делать, сюда. Обязательно включить опцию Snapping - автоматическое выравнивание объектов по сетке в окнах проекций с шагом, задаваемым Snap (Я обычно ставлю 8 либо 4). Еще полезные опции Hollow Wall - определяет толщину стенок в полых объектах получаемых командой Hollow Brush меню Edit, и сгруппированных, если отмечена опция Group Sub Pieces. То есть, если Draw Grid = 16 (размеры ячеек сетки в окнах проекции), то при Hollow Wall =16, толщина стенок в полом объекте будет равна одной ячейке (боже, ну что я объясняю, и так понятно... наверное... Я надеюсь... ну пожалуйста...), также не обойтись без отмеченной опции Show Entities;

Entity Set - позволяет загружать Entity - то же, что и Texture Manager ;(

Game Select - выбор между Q и Q2;

Screenshot - он и в Африке screenshot;

Help Mode - и Qoole будет постоянно мешать ненужными напоминаниями, на любителя;

Register Qoole - э-э-э... хе-хе... ну да, непременно. Хотя программка того стоит - Хэй, у кого там карточка есть!?

About Qoole - ну просто без комментариев...

6. Ну, что ж, приступим к творчеству...

Еще раз повторюсь, что прежде чем создавать уровень, убедитесь, что включена опция Snapping в меню Options - Config, что означает, что все объекты на уровне будут автоматически выравниваться по сетке при перемещении или изменении их размеров. Это позволяет избежать "дырок" в окружающее пространство, точно состыковывать элементы на уровне и прикидывать расположение текстур на объектах, которые по умолчанию тоже выровнены по сетке. Также удобно в меню View отметить Lock Views, что позволит вам наблюдать одну и ту - же точку на уровне в трех проекциях одновременно при перемещении в одном из окон. Можно начинать творить! Но, лично у меня, когда появляется какая-нибудь идея по уровню, Я сначала прикидываю на бумажке, на черновую заношу отдельные фрагменты будущего уровня, а уже потом подсаживаюсь к врагу - компьютеру. При работе с компьютером Я делаю уровень в несколько этапов:

  1. - подготовка и размещение основных помещений и элементов, неба;
  2. - их подгонка и выверка размеров, вырезание дверных проемов, окон, куда и как можно пройти и попасть;
  3. - размещение мелких элементов как поручни, лестницы, колонны, ящики, декор всякий по минимуму;
  4. - настройка и размещение дверей подъемников, телепортеров, коли такие случаться и точек Player - Deathmach;
  5. - когда все готово, раскладываем оружие, патроны, итемы;
  6. - нанесение и нудная подгонка друг к другу текстур;
  7. - и, в последнюю очередь, освещение;

7. Несколько слов о

моем понимании Ddeathmach-а и соответственно уровней для этого зверя (поклонники The Slime Place, готовьте банановые шкурки).

О архитектуре:

Архитектура уровня должна соответствовать принципу - каждой ключевой точке - несколько путей подхода, желательно в разных плоскостях, за исключением тех мест, где уж особо хорошие штучки лежат. Quake игра полностью трехмерная и глупо не использовать несколько плоскостей по вертикали на которых может проходить бой. Кроме того все пути игрока в обоих плоскостях, как по вертикали, так и по горизонтали, должны быть "замкнуты" по кругу или восьмеркой, хотя бы в одну сторону. Этот принцип, до которого мне пришлось доходить самому, подтверждает весь набор классических DM карт от id: Q2DM1 - Q2DM8. Размер карты зависит от количества игроков и собственно какую игру вы хотите на нем получить: кровавое месиво или что - либо тактическо-засадное. Лично Я не думаю, что кемперство плохо, но на практике это не эффективно (с удовольствием вспоминаю о бойце сидевшем в засаде у армора на Q2DM3 с рейлганом нацеленным на лестницу к нему, но так как его нещадно лагило, то стрелял он обычно в сторону лестницы, когда Я с другой стороны прилаживал ему оба ствола к башке, при этом он еще присевши был - миляга ;)). Но здесь надо учесть, что нормальный кемперский или тактический бой требует большого уровня, который в свою очередь будет напрягать и вашу машину, и машины ваших фрагов. Также Я думаю неинтересно делать всякие тайнички и секреты, которые другим неизвестны - конечно некоторое время можно порулить за счет этого, но сомневаюсь, что это есть гуд - если ты силен, дай всем равные возможности, вот если эти возможности не хотят или не могут использовать - другое дело! Конечно к таким возможностям не относится неубиваемость, даже если ты взял озверин с пулеметом, когда этого никто не делает, то оставь хотя бы маленький шанс от тебя, такого страшного, отбиться (коли ты не полный ламак конечно). Можно бросить неубиваемость на уровне, но хотя бы сравняй шансы: положи ее где -нибудь в оживленном, хорошо простреливаемом месте, да еще и в лаву засунь, да чтобы фраги могли куда-нибудь убежать, в общем, чтобы подумать, а стоит - ли (еще раз кивну на Q2DM1 - Q2DM8)? Еще одно важное понятие, в основном определяемое архитектурой уровня - это динамика. Зайдите втроем - вчетвером на The Slime Place, а потом попробуйте TxT_dos или расширенный вариант TxT_base. Динамика последних обусловлена не только геометрическим расположением элементов уровня, но и тем , что на них отсутствуют места с лавой и слизью, что позволяет уделять меньше внимания перемещению и больше сосредоточиться на выслеживании и отстреле фрагов. Ну тут кому что больше нравится, есть свои плюсы и в сложных для перемещения уровнях, или лучше сказать, в уровнях где больше внимания нужно уделять передвижению, например если в Q2DM2 воду лавой заменить ;), правда фраги все уходить в лаву будут, морально приятно - а пользы никакой.

Об оружии и итемах:

Я считаю , что поединок должен происходить в равных или относительно равных для всех условиях, чтобы не было так, что самый последний ламер, ухватив неубиваемость, БФГ-у, и 300 селлов или Chaingan с озверином + неубиваемость начал косить всех подряд, хватая халявных фрагов не из-за того, что он грамотно бегает, стреляет и просто потому, что он хороший человек, любящий пивка попить, а потому, что все остальные не могут спрятаться от него, наглого ламака. В общем о неубиваемости я уже говорил и забудем о ней, рип. Место БФГ-и, коли уж она нужна - самое недостижимое место на уровне, а селлы к ней - на другом конце уровня. Чтобы не совсем уж малина была, коль ты с БФГ. Хотя тоже уметь надо , чтобы после единого выстрела тебе никто не успел бы ответить, разве что в консоле ;). Это относится не только к БФГ, но и к Rocketlauncher-у на замкнутых коридорообразных уровнях. Но в отношении Rocketlauncher-а вопрос решается легко - разбрасывается по уровню еще один -два и баланс восстановлен. Само собой, озверин легко даваться не должен, или на прострельном месте, подальше от хорошего оружия, или чтоб с потерей здоровья, рокетджампом, например, его можно было достать. Зато чертовски хорош с Railgun-ом или Chaingan уж если надо баланс подправить. Старайтесь сильное оружие размещать по уровню равномерно, а патроны к нему на другом конце, чтобы от кемперства отучать и двигаться заставить. В ключевые точки положить бонусы - итемы, патронов кучкой, чтобы стимулировать бойцов почаще там встречаться. Раз уж упомянул Railgan скажу и о таких штуках как Powershield и Powersсreen (второй в Single Player-е не встречается, отличается от Powershield тем, что защищает только спереди, и если кто сзади пристроился - не поможет ;)). С ними тоже надо осторожней, хрошо их использовать на уровнях с БФГ-ой, патронов БФГ-истам поуменьshit да и от самой защитить немного сможет. Но! Практически делает Railgun бесполезным оружием. Если вы положили где то RG, а потом добавили Powershield и sells - все баланс нарушен, спасет только озверин поблизости рейлганиста, этого достойного труженика снайперской стрельбы и железных нервов, и стальных... увлекся. Чисто технически могу подсказать, с чем сам столкнулся и долго понять не мог - не размещайте оружие и итемы на карте вплотную к стенам или на полу - после компиляции их там не будет. По высоте их следует помешать не меньше, чем на расстоянии одной ячейки от пола (Draw Grid = 16) и не менее ячейки от стен, а некоторые и более (помните, оружие вращается на месте). Если на карте оружие или итем были, а на уровне нет - значит отодвигайте его от стен, пола и оно появится. Player Deathmach- точек побольше, чтобы не телефрагило, да и пограмотней, чтобы не стоял голый - босый и с пистолетом в загоне. Хотя бы оружие какое рядом или несколько путей отхода.

О текстурах:

Красивые уровни это хорошо, это красиво. Но подумайте о том, что (а я все также говорю о DM) во что обойдется вся эта красота. И нужна ли она на DM уровне, где самое важное - скорость. Если у вас Voodo - ускоритель, то текстуры загружаются в его память (2Mb для Voodo 1), если все, конечно поместятся, а если нет - то будут туда дополнительно подгружаться. На все это уходит время, fps падает и красота начинает радовать только создателя уровня. А ведь не у всех этот Voodo водится. Поэтому Я стараюсь максимально ограничить количество используемых текстур. Когда создаю уровень использую две-три контрастные, чтобы удобней было элементы уровня различать, ну а затем, когда все построено, сажусь за подбор ограниченного количества текстур, чтобы хватило на все элементы уровня, и подгонку текстур, чтобы кирпичи, например, совпадали друг с другом на разных brush-ах. Само собой использовать две разные текстуры для воды, да еще на DM уровне - дело абсолютно ненужное. В общем как не нужно использовать текстуры, да и вообще повеселится (Я, например, не знал даже, что на один браш можно несколько текстур накладывать и посмотрите, как это обходил), а также кого ностальгия по Doom-у или DN3D Bartmap-у мучает, могут скачать мой первый мап Bartmap, хе-хе, только не воспринимайте его серьезно, а если кто доделает по-человечьи - киньте, плз. Свои текстуры. Оригинально. Но Я столько уровней накачал с брашами в красную точку - забыли текстурки приложить, что сомневаюсь, стоит - ли? Посмотрите сколько в самом Q текстур (окно Textures) - все гарантированно будут на других машинах. По моему, только с отмороженной фантазией их может не хватать, учитывая, что текстуры можно еще и масштабировать. Эй, мы говорим о Deathmach - будьте проще - это не курсовой по архитектуре и если кто - то не увидит вашу фотографию на стене, то туда на крайний случай можно поместить фото Кармака (ourpic3_1) или его Ferrari (redcar_2), или обоих (а еще можно страшную толстую тетеньку (ourpic1_1 или ourpic1_2, если это тетенька) у озверина вывесить, чтобы пугались и не брали) ;).

Об освещении:

Да красивые уровни это очень хорошо, это очень красиво, и с тенями и с разноцветным светом, у-у-у как будет постанывать компьютер обсчитывая эту прелесть!!! Вот конкретно как: карта TxT_dos после обработки qbsp без источников света и оптимизации давала 36fps на машине с Voodoo 1 (Canopus Pure 3D), после освещения уровня 6 простыми источниками света и 5 цветными, полной обработки всеми утилитами - 24 fps - делайте выводы сами. Так, что бывает даже, что неоптимизированный уровень без освещения получается более быстрый чем с оным, но оптимизированный. При размещении источников света следует также учитывать, что некоторые текстуры светятся сами по себе. Например в комнате с потолком из light03_5 источники света вообще можно не размещать.

О хороших манерах:

Это, конечно, личное дело каждого, но Я считаю, что распространять исходники вместе с картой - признак хорошего тона. А то некоторые в описании даже копирайт указывают - во как себя ценят. Да бросьте вы эти амбиции, все мы играем в Quake, каждый со своим стилем, и дать возможность человеку изменить что-то на уровне так, как ему кажется нужным - это только вам же и в плюс. Другой вопрос, что не менее хорошим тоном и даже обязательно тот, кто переделывал карту, должен указывать, что он переделал, а также имя и координаты автора оригинала. Конечно козлов, которые поворовать чужое любят, везде полно, но на то они и козлы, а мы - квакеры!

Напоследок упомяну уровни которые, с моей точки зрения, не только заслуживают того, чтобы быть скачанными, но и того, чтобы с их авторами пиво попить с квакой или, по крайней мере, большой thx послать E-mail-ом:

fixed1 (Heavy Metal) by Phil Chopp "Retinal" - просто великолепен для двоих-троих;

ikdm1 ( - ) by Iikka "Fingers" Keranen - чуть меньше, чуть хуже для той-же компании;

Ну, творческих успехов и... фрагов вам,... квакеры.

P.S. Если кто-то, хочет меня поправить, исправить, спросить что-то, шкуркой банановой кинуть, пивка попить пригласить, позорно в Q2 уделать или, не дай боже, в клан вступить - связывайтесь: othes@pop.redcom.ru, ICQ 22729903 или к Avenger-у ICQ 19911522.

P.P.S. Пардон за безграмотность - русский язык в грузинской школе учил, тарэлька, там вилька и все такое ;))

8. Словарь наиболее часто используемых терминов

Q - сокращение от Quake, обычно в статье подразумевается Quake2;

Машина - электронно вычислительная машина, она же компьютер, IBM PC (Intel Pentium, как минимум) - совместимый;

Гуд - good, что хорошо значит, вот;

Баг - он же bug, он же bug'n'gluck - подарок программистов нам, юзерам, чтобы жизнь скучной не казалась, особенно программистов одной операционной системы 98 с не скажу каким фатом. Ошибки в программе;

Фича - от анг. Feature (особенность, свойство) - приятная мелочь;

Бот - от анг. bot, от анг. robot, компьютерный фраг (см. ниже) для тренировки с RG;

Кемперство - стиль ведения боя в DM, когда кемпер прячется в каком- нибудь месте или постоянно пасется у какого-нибудь ништячка и отстреливает пробегающих мимо, ну-ну, посмотрим на счет, что эффективней и главное интересней (хотя сам люблю иногда, что уж там ;));

Фраг - (frag) милый сердцу фраг, тот, кто умирая, одаривает вас единичкой в счет;

Ламак (он же ламер) - человек с большими претензиями и маленькими возможностями, обычно неимоверно крут и страшен, особенно когда Shift прижимает, чтобы быстрее бегать. Зверь - валит танков стаями, а Iron maiden-ов отарами. Во время DM обычно у него:
а) заедает мышка,
б) тормозит компьютер,
в) не то разрешение,
г) клавиатура неудобная,
д) чего-то нездоровится,
е) уровень плохой... стал
ё) вы все только меня убиваете, специально...,
ж) мама, забери меня отсюда!!! ;```(

Озверин - он же Quad Damage, по - англицки, как, не знаете что это? Вам пунктом выше;

Рип - не тот, который из 600 меговой Diabol-ы 160 меговую делает, а тот, который R.I.P. - Rest In Peace (покойся с миром);

fps - три значения, первое - frame per second (кадров в секунду), частота обновления экранной картинки в Quake (консольная команда timedemo), второе frags per second (тоже кадров в секунду, если кадры не против, а даже если и против...) и наконец first person shooter - игра-стрелялка по-русски, В статье используется только первое значение ;);

Я - это я, только в стиле того, что i на самом деле I пишется.



Hosted by Redcom
Сайт by
[TxT]-Avenger

Quake LinkExchange
Quake LinkExchange