Welcome to U.A.C. [O.S.A.]
login / register
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
Секреты Глуминархова царства
   Список разделов - Местечко мапперов и моддеров - Секреты Глуминархова царстваОтветить
АвторСообщение
Arsenikum
- Major -
Next rank: = Major = after 284 points
2656

Doom Rate: 1.49
Ссылка на пост №1 Отправлено: 10.03.14 01:50:39
Первым делом я хочу поздравить всех мапперов с завершением поистине эпохального мегавада для всего сообщества - Whitemare2. :igood:
Во-вторых я хочу извиниться за то, что заставлял всех так долго ждать мой уровень - месяц, наверное.
Ну и в-третьих, о грустном. Я решил завершить свою мапперскую карьеру. Всё, никаких больше уровней, ни для спидмаппов, ни для фрикмаппов, ни просто так.
За месяц маппинга я понял, что:
- маппить в стиле Мемфиса у меня не выходит, а говно, явно осознаваемое мной как говно, я по определению не желаю делать и выкладывать;
- процесс это крайне медленный, хорошие идеи должны дозреть, а генерировать бесконечное число абстрактных уровней, как спрашивал когда-то Нил, для меня занятие бессмысленное;
- но мало того, что маппинг медленный, он еще доставляет невыносимые мучения в перерыве между посиделками над Думбилдером; да пожалуй у всех творческих личностей, кто не штампует уровни по лекалам, они есть;
- карты мои жестокие, садистские, иногда нудные (хотя я старался от этого избавиться) и нравятся очень немногим;
- ну и в конце концов я осознал, что провожу ВСЁ свободное время за этим чертовым маппингом и удовольствия мне это приносит все меньше и меньше (а иначе карта бы так и не появилась), а это, извините, уже как вторая работа.
В Дум я играть, конечно, не перестану, общаться буду. Иногда буду давать рецензии на различные уровни, но не более. Маппинг для меня теперь закрытая тема.

Итак, Моя Последняя Карта для меня - не просто один из вадников, которые создают обычно, чтобы доставить людям фан и веселье. Здесь я попытался раздвинуть довольно тесные рамки стандартного геймплея. Одна из моих конечных целей была - заставить игрока Doom-ать примерно так же, как он чесал репу, впервые столкнувшись с MAP30 оригинального Doom2. На мой взгляд это удалось, хотя, конечно, судить игрокам. Эффект, разумеется, далеко не торт, но я старался. Кстати, второй конечной целью у меня было создать атмосферу Ужаса и Безысходности, когда игрок в панике бегает, как заяц, делая булавочные уколы, а Тёмные Силы его медленно, но неотвратимо душат и в конце концов раздавливают.

В процессе творчества я неоднократно рассуждал о природе мапперской гениальности. Чем отличаются просто карты от Шедевров? Какими качествами он должен обладать, чтобы создать что-то, чего потом будут помнить. Кое-какие ответы для себя я нашел. Будем называть того, кто замахнулся создать нечто эдакое "маппером", хотя понятно, что это уже не просто маппер. А саму карту назовем эээ... нетленкой, нет пошло... прото-шедевр, не по-русски... Пусть будет "эпик", как легендарный артефакт в WoW, который кузнец кует из уникальных ингредиентов, тем более тут прослеживается еще аналогия с небезызвестным мегавадом.
Эпик - еще не шедевр, ему нужно признание народа, чтоб таковым стать. Это как бы такая "заявка".
Итак:

1) Маппер должен верить в себя и свои силы. Определенное честолюбие в его характере должно присутствовать. Конечно, речь не идет о непомерной гордыне из серии "любИте меня, обожайте меня, я ваш Бог и Кумир". Но он должен верить в то, что создаст эпик, который прославит его в веках. Утрирую, конечно, но самому себе повторять это будет нелишне. Эта вера будет придавать мапперу силы, будет создавать душевный подъем и вести его вперед. Без такого душевного порыва его запал быстро иссякнет, и его эпик останется всего лишь очередной невоплощенной идеей, картой, которую лень и пофиг было сделать. Итак, маппер, должен в буквальном смысле оторвать от себя часть своей души и вложить ее в эпик.

2) И тут мы плавно подходим ко второй части. Сколько эпиков оставалось неоконченными, потому что мапперу надоело их делать? Вот вот... Маппер должен обладать концентрацией и усидчивостью. Чем сложнее и претенциознее эпик, тем выше требования. И в какой-то момент маппер осознает, что совершает над собой Насилие, делая карту. И вот тут он должен остановиться и подумать, стоит ли ему продолжать дальше и таким образом частично принести себя в жертву эпику, либо же ему лучше забить на это дело вовсе и не мучатся, либо же умерить амбиции и отказаться от части своих идей. Как правило всё же бесконечно взбираться на Олимп не получится и когда-то маппер должен остановиться. Ибо он все же не бог, в сутках 24 часа, спать когда-то НАДО и вообще солнце на улице светит, а он уже месяц из дому не выходил. Лучше всего, если он заранее очертит и определит для себя, что он обязательно сделает на своей карте, от чего откажется, а что будет делать, но если не получится, то убиваться не станет и от идеи откажется.
Например, я в своей карте хотел сделать так, что если игрок наступит на щупальце, то его телепортирует на его кончик, а затем подбросит и будет медленно сверху давить. От этой идеи пришлось отказаться, ибо игрок с этого кончика очень легко спрыгивал еще до сеанса довления, несмотря на усиленную его, этого кончика, вязкость. Возвращаясь к теме, я повторюсь, для создания эпика требуется терпение гораздо большее, чем для обычной карты. Мой небольшой опыт подтверждает, что все мапперские шедевры (тут уже явно употреблю это слово) были созданы ценой колоссальных трат времени.

3) Самая сложная часть. Эпик должен быть откровением. В нем должно быть заложено знание Извне - то, чего никогда не было ни в одной карте, вышедшей до него. Это может быть и визуальный стиль, и геймплей, и что-то ещё, чего никто пока не знает. Почему древний Cry of the Poseidon для меня - реализовавшийся эпик, ставший безоговорочным шедевром? Только ли из-за масштабности, ведь Большие Карты были и до него? Или из-за архитектуры? Тут я пас, ибо подобных карт, современников данной карты, с такой планировкой я не видел. Может быть, их нет, но скорее всего, они есть. Самое главное, что отличает эту карту от всех остальных - отчетливо прослеживаемый сюжет с двумя концовками, созданный на движке ванили! Я читал текстовик перед прохождением, но тем не менее, сыграв в этот вад в первый раз и заполучив - конечно, не специально - плохую концовку, я испытал достаточно сильное потрясение. Ведь игрок не просто сдох, ему воочию предстояло лицезреть уничтоженный демонами реактор, игрока буквально ткнули мордой в то, как бесславно он всё просрал. В то время как для получения хорошей концовки, игроку необходимо выполнить миссию на время - смотаться в Ад за ключом и успеть еще отключить реактор до того, как демоны выполнят свое обещание - взорвать все к чертям.
В своей же карте я постарался с помощью технических возможностей Бума реализовать разрушаемые при помощи ЛЮБОГО ОРУЖИЯ объекты с заданным количеством хитпойнтов в сочетании с бесконечным спамом монстров, пока этот объект не уничтожишь. Кроме Глуминарха это еще и два склепа, из которых толпами валят импы. Это и есть та самая изюминка, которая делает из просто карты тот самый эпик. Без этой фичи даже полностью вылизанный, проходимый и оттестированный вад был бы всего лишь еще одной картой. Очень хорошей, если понравится народу, или просто плохой, если нет.
Маппер, реализующий Идею, должен обладать смелостью и не бояться того, что она может оказаться нереализуемой. В случае создания фич, он должен быть технически грамотным, знать, что может данный порт и чего не может, чтобы в случае чего найти обходные пути и сгладить неустранимые побочные эффекты.

4) Исполнение фичи №3 еще не гарантирует эпику успех, ибо все остальное тоже должно соответствовать. В том же Cry of the Poseidon кроме сюжета были: нелинейный геймплей, отличная архитектура и неплохая боевая часть. Также была хорошо сделана вводная часть, где игроку показывали план-карту всего комплекса, и хороший финал, когда игрок сваливал по шахтам заглушенного, но спасенного реактора и принимал поздравления на подводной лодке. Без хорошего исполнения эпик превращается в "карту с необычной идеей, но загубленную тем-то и тем-то". Товарищи пытались меня остановить, сказав, что четырех лифтов для убийства четырех рож вполне хватит для моего уровня. Но я упорно настаивал на том, что лифты - тупейший баян со времен Doom2 МАР30, что к каждой роже должен быть свой подход и игрок должен обойти весь уровень и побывать в каждом его уголке. Попутно к основной идее добавилось еще некоторые плюшки, техническую реализацию которых я постараюсь раскрыть в данной теме. Таким образом, я намеренно выбрал сложный путь и все для того, чтобы порадовать тех, кто этот вад будет проходить.
Маппер должен уметь отстоять свое видение эпика, но в подтверждение этому также выполнить пункты 1) и 2).

В завершении своей мапперской карьеры я раскрою все секреты MAP20, всего уроков будет 4:

1) Разрушаемые Объекты.
2) Массивные Эпично Разваливающиеся Декорации.
3) Непрерывный Телепорт Нескончаемого Потока Монстров.
4) Кровавый Фонтан и Прочие Спецэффекты.

PS Выражаю отдельную благодарность мапперам:
- BigMemka за соавторство,
- Shadowman за моральную поддержку и тестирование,
- Dragon Hunter за организацию всего проекта Whitemare 2.
5 1
Dragon Hunter
= Captain =
Next rank: - Major - after 239 points
2401

Doom Rate: 2.96
Ссылка на пост №2 Отправлено: 10.03.14 10:50:15
Да я думаю, что не стоит так заранее ставить крест на мапперском поприще. У меня тоже был как-то период в год, а то и больший, когда не заходил ни на форум, ни маппил, потом вспомнил и снова захотелось вспомнить былое. Да и как же наши сходки?)

возможно, дело в долгостройных картах, у меня после 15го уровня для вада нашего тоже пока не идет маппинг, а на улице такая погода разгулялась, что на лето можно забыть о своих проектах:)
1 2 2
Shadowman
= UAC Commissar =
Next rank: - UAC Marshal - after 297 points
6603

Doom Rate: 2.46
Ссылка на пост №3 Отправлено: 10.03.14 11:08:03
Arsenikum
Я с интересом прочитаю о секретах мап 20, т.к. в подробности карты не вникал, а знание бум-"скриптов" может пригодиться.
Насчет маппинга - никогда не загадывай. Сейчас конечно погода зовет на улицу, но кто знает, не захочется ли через полгодика тебе сделать очередной эпик?
Перерывы необходимы - после такого перерыва появляются свежие идеи, и на старые карты тоже начинаешь смотреть другими глазами...
1 6 2
Arsenikum
- Major -
Next rank: = Major = after 284 points
2656

Doom Rate: 1.49
Ссылка на пост №4 Отправлено: 10.03.14 11:11:14
Итак, начинаем серию уроков.
Вводная часть

Мы будем использовать движок Boom, все создаваемые в этой теме примеры я проверяю в prboom-plus-2.5.1.3. В кратче напомню основные моменты скриптостроения. Как вы уже знаете, в этом движке скрипты выполняются при помощи фальшивых Player 1 Start, в народе называемых Voodo Dolls. В игровом движке постулируется следующее:
- Кукла может активировать действия по пересечении линий типа WR и W1, как если бы это делал живой игрок.
- Весь урон, наносимый кукле от кого бы то ни было, наносится живому игроку. Иногда это может приводить к забавным последствиям, но об этом в данной теме умолчим.
- Все предметы - ключи, оружие, патроны, аптечки - подбираемые куклой, даются живому игроку.
- При телепорте поведение куклы повторяет поведение игрока. Если куклу телефрагнут, игрок также погибает, если только не использовал неуязвимость.

Эти куклы Вуду помещаются в технические сектора, расположенные далеко от основной игровой зоны. Для их перемещения в PrBoom используются так называемые конвейеры. Раньше, в далекие мохнатые времена ванили для этого использовалась взрывная волна от бочки. Игрока обязательно калечило хотя бы на 1 хп, да и летел он от взрыва недалеко. Теперь же для этого специально создан
экшен 252 - "Scroll Move Things according to Line Vector". Этот экшен присваивается любой линии (назовем ее "вектор") и связывается с соответствующим сектором классическим способом - по тегам. А теперь интересное - сила и направление движения зависит от длины и направленности вектора. Длину мы будем измерять в привычных map units, сокращенно mu.
Из мануала по Boom: каждые 32 mu вектора добавляют скорость конвейера в 35 mu в секунду. Если быть совсем точным, то 1 mu за фрейм, который в ванили равен 1/35 секунды. Я в своей карте делал стандарт 64 mu и не парился. Теперь о направлении движения, тут стоит запомнить 4 основных положения.

- Если вектор ориентирован горизонтально и смотрит "мордой" (Front Side) на юг, предметы будут двигаться с запада на восток.
- Если вектор ориентирован вертикально и смотрит "мордой" на запад, предметы будут двигаться с севера на юг.
- Если вектор ориентирован горизонтально и смотрит "мордой" север, предметы будут двигаться с востока на запад.
- Если вектор ориентирован вертикально и смотрит "мордой" на восток, предметы будут двигаться с юга на север.

Первый пример можно скачать прямо сейчас. http://rghost.ru/52953407

:!: Как известно, среди всех Player Start на уровне только одна - настоящий игрок. Движок Doom считает игроком тот Player Start, который был поставлен в редакторе ПОСЛЕДНИМ. Поэтому, дабы избежать казусов и не играть куклой, после простановки всех кукол не забудьте стереть "старого" настоящего игрока и поставить на его место нового.



Ну вот, теперь мы сделали первый конвейер. Но скрипт, как известно, должен активироваться при определенных условиях. Для того, чтобы скрипт раньше времени не сработал, на конвейер ставят "задвижки". Это может быть либо дверь, либо ступеньку в 32 и более пикселя, я предпочитаю последнее.

:!: Тонкий момент. Чтобы кукла свободно проскочила ступеньку, она должна быть маленькой, иначе ее также придется скроллить.

Поскольку ширина игрока 32 mu, я делаю эту ступеньку в 8х32.

Дальше возможны скриптовые вариации.
- Бесконечный скрипт делается телепортом. В конце конвейера ставится экшен 97 WR Teleport, который телепортирует куклу в тот же сектор, но в начало. Для этого я ставлю Teleport Destination слева от куклы.
- Многоразовый скрипт делается сочетанием телепорта и экшена 123 (Lift Lower Wait Raise (fast)).
:!: При тестировании карты вы должны убедиться, что игрок будет активировать многоразовый скрипт не чаще, чем он успеет сделать полный цикл.
- Скрипт с отсрочкой делается увеличением высоты ступеньки. Если вы хотите подгадать точное время отсрочки, то тут не обойтись без вычислений.
Путем опытных экспериментов я вычислил, что сектор в 256 mu опускается стандартным тегом 23 (S1 Floor Lower To Lowest Floor) за 8 секунд. То есть имеем 32 mu в секунду. Что-то мне подсказывает, что эта цифра не 32, а 35, как стандартный Frame Rate. Поправьте меня, господа если что.
- Скрипт с прерываемой отсрочкой, то есть с останавливающимся и возобновляемым таймером сделать очень сложно, но можно. См. урок №4.
- Наконец, бесконечный, но деактивируемый скрипт делается хитро. Дело в том, что ступенька или дверь - вариант ненадежный. Если в момент деактивации скрипта ступенька попадет на куклу, она с нее просто свалится и сделает лишнюю итерацию. Обычная дверь при попадании на куклу отъедет обратно, потолок с крашером покалечит ее, заодно и игрока. Простой потолок... не пробовал, как он себя поведет в сочетании с конвейером неизвестно. Лично я сажаю куклу в яму в -32 mu. Яма, естественно, тоже скроллится. Таким образом, если требуется деактивировать скрипт - яма опускается, кукла в нее падает и дальше не едет. Если скрипт надо запустить вновь, яма поднимается и кукла продолжает движение.

Второй пример можно скачать здесь: http://rghost.ru/52954680
5 1
Shadowman
= UAC Commissar =
Next rank: - UAC Marshal - after 297 points
6603

Doom Rate: 2.46
Ссылка на пост №5 Отправлено: 10.03.14 11:37:00
Arsenikum :
после простановки всех кукол не забудьте стереть "старого" настоящего игрока и поставить на его место нового.

Для верности я делаю так: удалив "настоящего" игрока, сохраняю карту, потом ставлю настоящего игрока и сохраняю карту второй раз.

Арсеникум, поправь пост (убери лишние ======), а то страница съехала вправо, читать неудобно.
1 6 2
RastaManGames
= Sergeant Major =
Next rank: UAC Sergeant Major after 18 points
662

Doom Rate: 1.85
Ссылка на пост №6 Отправлено: 10.03.14 11:44:01
Shadowman :
Арсеникум, поправь пост (убери лишние =====, а то страница съехала вправо, читать неудобно.


1920х1080 HD, ничего никуда не съехало :3
1 1
Memfis
= UAC Marshal =
Next rank: UAC General after 97 points
8103

Doom Rate: 1.85
Ссылка на пост №7 Отправлено: 10.03.14 16:57:44
Arsenikum :
- Если вектор ориентирован горизонтально и смотрит "мордой" (Front Side) на юг, предметы будут двигаться с запада на восток.
- Если вектор ориентирован вертикально и смотрит "мордой" на запад, предметы будут двигаться с севера на юг.
- Если вектор ориентирован горизонтально и смотрит "мордой" север, предметы будут двигаться с востока на запад.
- Если вектор ориентирован вертикально и смотрит "мордой" на восток, предметы будут двигаться с юга на север.

Ой, ужас. :) Проще: прикладываешь ладонь к монитору так, чтобы оттопыренный большой палец совпадал с маленькой чёрточкой в середине линии (той, которая обозначает переднюю сторону). Тогда указательный палец будет показывать направление движения.
1 1 1
Arsenikum
- Major -
Next rank: = Major = after 284 points
2656

Doom Rate: 1.49
Ссылка на пост №8 Отправлено: 10.03.14 18:58:47
Memfis
Забыл уточнить, какую ладонь. Наверное, левую ;-).
5 1
Memfis
= UAC Marshal =
Next rank: UAC General after 97 points
8103

Doom Rate: 1.85
Ссылка на пост №9 Отправлено: 10.03.14 19:04:03
Лол, самое главное то и забыл. Конечно левую.
1 1 1
Arsenikum
- Major -
Next rank: = Major = after 284 points
2656

Doom Rate: 1.49
Ссылка на пост №10 Отправлено: 10.03.14 22:18:54
Часть 1. Разрушаемые объекты.

Как известно, в Думе есть активируемые выстрелом триггеры. Вот только от взрывов ракет, плазмы и БФГ они не работают. Ну и фиг с ними, теперь у нас есть свой порох непромокаемый!
Итак, нам надо запустить цепочку событий, срабатываемую от выстрела ЛЮБОГО оружия в строго определенную область. Причем запускаться эта цепочка должна со 100% гарантией и желательно без побочных эффектов.

Допустим, у нас есть вот такой вот красивый реактор.

В ревенантов стрелять бесполезно - сзади их воскресят арчвайлы.

У каждого разрушаемого объекта должно быть слабое место. Пусть у нас слабым местом будет центральная дырка. Обозначим ее так красиво, мерцающим огнём.

Это примерно то же, что стенка с трещиной в Duke 3d или в Blood. Вот только стенка разносилась вдребезги от одного попадания чего-нибудь взрывающегося, а здесь попаданий должно быть несколько.
"Держать удар" у нас будут монстры. Реактор может быть совсем дохлым (200 хп какодемона), с солидным запасом (1000 хп барона Ада) и наконец капитальным (4000 хп кибердемона с защитой от взрывной волны).

ХП реактора подлежит тонкой настройке: два барона друг за другом и т.п. Для простоты у нас будет один барон. Поставим его в impassible линию, чтоб не дёргался:


После того, как барон сдохнет, игроку остается сделать финальный выстрел. Поставим сзади барона бочку, а лучше три, ибо коридор достаточно широкий. Чтобы бочка просто взорвалась и никуда не улетела, поставим ее на impassible линию.
:!: Бочку надо ставить так, чтобы взрыв ракеты об барона ее не задел. Как правило, выясняется это опытным путем при построении карты.

А теперь самое главное! Бочка должна создать взрывную волну, которая отбросит стоящую за ней куклу в телепорт, который выкинет ее прямо на скриптовой конвейер. И тут нужен очень точный расчет, ведь если бочка будет стоять слишком близко к кукле, она ее покалечит, если не убьет. А если она будет стоять слишком далеко - взрывная волна не достанет до куклы и она не сдвинется с места.
Опытным путем была найдено оптимальное расстояние, запомните эту волшебную цифру: 143 мап юнита. Ровно столько должно отделять бочку от куклы, кукла должна стоять четко посередине линии телепорта.
:!: Чтобы снаряды игрока после убийства барона не попали прямиком в куклу (и не убили ее заодно с игроком), коридор, где стоит последняя перед куклой бочка, должен идти ПОД УГЛОМ к коридору, где стоит барон. Таким образом, создается цепь бочек, стоящих на impassable линиях.


? Очень часто бывает такие ситуации, когда кукла "капризничает", то есть не улетает от взрыва бочки, стоящей в 143 mu от нее. В данном случае можно только посоветовать подвигать бочки/куклу. Например, приблизить её вместе с телепортом, пока она не начнет в него улетать, и затем постепенно отодвигать ее, пока с нее не начнет слетать ровно 1 хп. Добиться того, чтобы с куклы слетало 0 хп и она улетала от взрывной волны, к большому сожалению, нельзя никак.

Ну а после того, как кукла улетит на конвейер, она может делать на нем все что угодно. Я поставил Generalized Floor, который опускает сектора с ревенантами, давя их. Не до конца, правда, но это мы исправим ко второму уроку.

Можете протестировать карту. Стрелять в центральную дырку. Единственное что в бочку целиться сложнее, чем в барона.
http://rghost.ru/52971895
5 1
c4tnt
= 1st Lieutenant =
Next rank: - Captain - after 211 points
1879

Doom Rate: 1.92
Ссылка на пост №11 Отправлено: 11.03.14 05:43:23
Ну раз уж тут такая тема про ванильные скрипты...

Вот небольшой тестовый вад про пончики и их пользу, даже вуду-доллы не нужны. Если где-то нужно от одной кнопки и закрывать и открывать одновременно разные двери, то как раз оно.
https://dl.dropboxusercontent.com/u/6498607/test_donut.wad

Особенности изготовления и работы с Dough экшном вообще.

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

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

С помощью пончиков можно реализовать поднимающийся на определённую высоту пол, опускающийся на определённую высоту пол, а так же те же два варианта, но мгновенно. Для мгновенного опускания пол нужно поднимать на высоту ниже той, на которой он находится, а для того, чтобы его мгновенно поднять, соответственно опускать "вверх". Для каждой отдельной пачки поднимающихся и опускающихся блоков высота вычисляется отдельно, поэтому, в принципе, с помощью одной кнопки можно построить почти что угодно. Кроме этого, экшн пончика меняет текстуру пола поднимающегося сектора на текстуру пола у сектора, задающего высоту. Это, в принципе, позволяет дополнительно ещё и поменять напольную текстуру и удалить жгучесть пола.
1 1
Memfis
= UAC Marshal =
Next rank: UAC General after 97 points
8103

Doom Rate: 1.85
Ссылка на пост №12 Отправлено: 11.03.14 20:36:50
c4tnt :
Для того, чтобы линия участвовала в поиске, её нужно обязательно повернуть лицевой стороной внутрь сектора.

А если все кроме одной повернуть задом, можно таким образом однозначно задать линию, не парясь о номерах? Или у неё в таком случае обязательно минимальный номер должен быть?

Трик очень прикольный на первый взгляд и я никогда о таком не слышал раньше. Спасибо, интересно, будем экспериментировать.
1 1 1
Arsenikum
- Major -
Next rank: = Major = after 284 points
2656

Doom Rate: 1.49
Ссылка на пост №13 Отправлено: 11.03.14 23:09:17
Часть 2.1. Разрушаемые объекты. Продолжение банкета.


Начнем там же, где и закончили урок №1. Пусть теперь реактор выпускает хеллнайтов с завидной регулярностью.

Ну здесь пока всё стандартно. Дверь, за дверью комнатка с телепортом.


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

НАЧАЛО: дверь закрыта.
1) Открыть дверь.
2) Подождать немного, пока хеллнайт выйдет.
3) Закрыть дверь.
Goto 1

Ясное дело, что хеллнайтов бесконечно много в Boom-e не бывает - это не zdoom. Телепортироваться они также будут, как обычно, из технического сектора. Надо только, чтобы их было "как бы бесконечно много". Допустим, штук 100 хватит :crazy:. В MAP20, например, первоначально в техническом секторе было 144 пейн элементалей, позже я решил сжалиться над игроками и сделать половину из них какодемонами. На самом деле геймплей из-за них становился не столько вызывающим, сколько унылым. Игрок без БФГ наносил булавочные уколы такой туче элементалей с черепами. Но вернемся к нашим баранам хеллнайтам. Если не нравится 100 штук, маппер может поставить сколько угодно: хоть 1000, хоть 10000, лишь бы было "много" "дофига" "всех не перебьешь, пока босса не завалишь".

:!: Если вы планируете проходить такую карту в кооперативе, тщательно продумывайте сражение, в котором врагов может быть потенциально "бесконечно много", особенно если оно происходит в тесных пространствах. Если игрок разбудит босса и проиграет сражение - умрет или попросту сбежит - в дальнейшем пройти эту комнату будет очень сложно. И если это не сурвайвал, то карта и вовсе рискует стать непроходимой.

Чтобы хеллнайты не валили валом по 2 штуки сразу, в техническом секторе можно установить задвижки. Они будут периодически перекрывать телепорт. Так сделано и на МАР20, ибо два и иногда больше пейна с 4-х голов за раз - это слишком бесчеловечно. Задвижки лучше делать такие, чтоб при попадании в них монстра задвижки не ломались, а продолжали двигаться дальше. С учетом этого, алгоритим будет выглядеть вот так:

НАЧАЛО: дверь закрыта, задвижка закрыта.
1) Открыть дверь.
2) Подождать немного, пока очередной хеллнайт выйдет.
3) Закрыть дверь.
4) Открыть задвижку, дать хеллнайту телепортироваться в закрытую комнату.
5) Закрыть задвижку.
Goto 1

Кроме задвижек очень важен еще тот факт, чтобы хеллнайты телепортировались по одному. Для этого линия телепорта должна быть маленькой. Но стоит помнить и об обратном: если в техническом секторе столпится куча хеллнайтов, то они будут толкать друг друга в тщетной попытке протиснуться к телепорту. Поэтому следует делать своеобразную "воронку", подводящую к сектору с телепортом. На тестирование "правильного" потока монстров может уйти немало времени.

Но хватит теории, за дело. Технический сектор у меня будет выглядеть вот так:



Спецсектор слышимости - маленький треугольный сектор, являющийся частью большого основного, где происходит сражение. Это чтоб хеллнайты нас слышали, когда мы из пушек по ревенантам палим. Делается так: клик на основной сектор, клик на треугольный сектор - кнопка "J". Смотрите, не перепутайте, а то эталонными признаются параметры (например, высота пола и потолка) первого выделенного сектора! Спасибо BigMemka, а то бы мне и дальше пришлось делать эти дурацкие "мышиные норки".
Задвижку я сделал давящую монстров, чтобы закрывалась. Конечно, мы теряем ценных хеллнайтов, но тут еще один немаловажный момент. Не всегда монстры могут телепортироваться: например, когда по ту сторону телепорта есть другие монстры или игрок. В таком случае "неудачник" вхолостую пересекает линию телепорта и застревает, а сзади на него напирает следующий. Возникает клинч, и поток монстров останавливается. Мозгов у монстров никогда не хватит, чтобы дружно отойти назад и попытаться пересечь линию телепорта еще раз. Давилка позволяет эффективно устранять "напирателя", чтобы у "неудачника" был шанс еще раз попытать счастья. Но впрочем, и от этой напасти существует решение. Какое - читайте в уроке №3.
Постоянная (капитальная) задвижка служит для запирания монстров после уничтожения босса, о ней мы поговорим чуть позже.

:!: Делайте технические сектора подальше от основных событий. А то, например, в случае с давилкой предсмертный рев хеллнайта может неприятно удивить игрока. Мол, кто ж это такой ужасный хеллнайтов так за стенкой без меня пытает.

Если после убийства босса, уровень не заканчивается, то необходимо расширить скрипт, созданный на уроке №1. Как вы помните, там он вызывал "обрушение" секторов с ревенантами, арчвайлами, а также "закрытие дырки". Теперь нам нужно добавть к этому отмену спавна хеллнайтов. Вот для этого как раз и нужна яма в бесконечном скрипте. Если вспомнить алгоритм, то его остановка должна быть где-то между пунктами 1 и 4. Ради простоты после смерти босса оставим дверь открытой. Иначе возникнет вероятность, что попавший "в гости" игрок в этой комнате застрянет и придется его оттуда высвобождать/убивать. Значит, остается только пункт №2. Кроме ямы нужно еще опустить капитальную задвижку; в принципе она не нужна, спавн и так прекратится, если вы правильно реализуете предыдущее действие. Кап. задвижка нужна, чтобы прервать спавн в случае если в момент прерывания алгоритм находился где-то на шагах 3-5. То есть фактически для отмены спавна последнего хеллнайта (надеюсь, у вас еще мозг не взорвался от моих рассуждений). С другой стороны, если вместо хеллнайтов маппер решил сделать киберов, то лишний кибер создаст проблемы на порядки больше, чем лишний хеллнайт.

После всех преобразований скрипты будут выглядеть вот так:



:!: Не стоит забывать об задротах игроках, играющих карты на 100/100/100. После убийства босса желательно уничтожить всех тварей, которые из технического сектора больше не вылезут. Иначе для таких профессионалов ваша карта будет "второго сорта" или вовсе "потерянной". Об этом поговорим попозже.

В принципе, карта вполне играбельна. Про голливудские спецэффекты расскажу во второй части урока.
http://rghost.ru/53097525
5 1
c4tnt
= 1st Lieutenant =
Next rank: - Captain - after 211 points
1879

Doom Rate: 1.92
Ссылка на пост №14 Отправлено: 12.03.14 01:43:41

А если все кроме одной повернуть задом, можно таким образом однозначно задать линию, не парясь о номерах?


Вообще получается вполне, но проблема возникает если линия с наименьшим номером без сектора сзади, тогда её просто повернуть нельзя, а работать конструкции она не даёт.
1 1
Dragon Hunter
= Captain =
Next rank: - Major - after 239 points
2401

Doom Rate: 2.96
Ссылка на пост №15 Отправлено: 12.03.14 21:14:40
Я думаю, теме надо медальку поставить, так подробно и понятно написано все, очень полезная статья, как для новичков, так и для опытных мапперов.
1 2 2
Memfis
= UAC Marshal =
Next rank: UAC General after 97 points
8103

Doom Rate: 1.85
Ссылка на пост №16 Отправлено: 12.03.14 23:13:58
c4tnt
Наверно в большинстве случаев это можно решить пририсовывая к другой стороне линии сектор с одинаковой высотой пола и потолка, то есть как бы и не отличимый от простой стены.
1 1 1
Arsenikum
- Major -
Next rank: = Major = after 284 points
2656

Doom Rate: 1.49
Ссылка на пост №17 Отправлено: 16.03.14 13:07:37
Часть 2.2. Разрушаемые объекты. Голливудские спецэффекты.


В ZDoom, а тем более в GZDoom можно придумать огромное разнообразие спецэффектов. В Boom же возможности сильно ограничены. Так чем же может нас порадовать древний движок?
Во-первых, это взрывы. Делается это просто: в техническом секторе делается крашер с бочкой, от взрыва которой в телепортер отлетает другая бочка. Поскольку бочка "телепортируется в наш мир" уже во взрывающемся состоянии, от нее можно спокойно построить "цепную реакцию" таких же взрывающихся бочек. Так и было сделано в MAP20, когда игрок убивает одну из голов Глуминарха.
Во-вторых, это мясо. Ну это совсем просто - мешаем с бочками зомбименов, и в месте с взрывом к нам уже летит мясцо :twisted:. Главное, направить взрыв так, чтобы все это летело в нужную сторону.
И в-третьих, это стены. Если после взрыва опустить пол и поднять потолок на нужную высоту, то можно создать иллюзию потрескавшихся стен и лопнувшей плоти. Можно и просто поднять тонкую стенку и показать игроку заранее заготовленные декорации руин.

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

Ладно, перейдем к практике. Но сначала сделаем для симметрии два хеллнайт спавна.
http://rghost.ru/53256729

Теперь самое главное - планирование, ведь бочки тоже занимают место. Мы поступим просто: так как реактор взорвали первым, то действия будут следующими:
1) Взорвать центр и опустить светящуюся стенку.
2) Взорвать дырки с ревенантами и стоящими сзади них арчвайлами
3) Эпично взорвать "месторождения" хеллнайтов вместе со всеми, кто там находился. Да-да и игроком тоже :(.

Вот теперь можно убрать "заглушку" в виде опускания секторов с тегом 2 (см. конец первого урока).

Продолжение следует, как только я сам построю спецэффект.
5 1
Страница 1 из 1Перейти наверх
   Список разделов - Местечко мапперов и моддеров - Секреты Глуминархова царства