Сия тема является подборкой постов из старой темы для вопросов по демкам.
1. Вопросы первой необходимости
1.1. Что такое демка?
- Демка (demo) - это файл, содержащий события игры в закодированной форме. В каждой игре демки устроены по-своему - в Doom, к примеру, хранятся лишь данные о передвижениях игрока, уровне сложности, переключении оружия и нескольких других мелких деталей. Все остальное - дело рандома. У каждого порта (иногда даже версий портов) Doom свой формат демок, т.е. записав демку в порте ZDoom или Doomsday, вы не сможете воспроизвести ее в оригинальном Doom или наоборот.
1.2. Как записать или воспроизвести демку?
В большинстве портов запись демки осуществляется путем запуска команды portname.exe -record demoname.lmр. Удобнее всего просто создать файл .bat, в нем прописать нужную команду и сохранить в папку с нужным портом.
Примеры использования команд при записи / воспроизведении демок:
-iwad doom2.wad - загрузить doom2.wad как IWAD -file av.wad - загрузить AV.wad как PWAD -warp 2 1 - перейти на карту Е2М1 (только для Doom или Ultimate Doom) -warp 07 - перейти на карту MAP07 (для Doom 2) -skill 3 - выбрать уровень сложности под номером 3, в данном случае Hurt Me Plenty -nomonsters - выключить монстров на карте -fast - очень быстрые монстры, как на уровне сложности Nightmare -respawn - монстры возрождаются через некоторое время, как на уровне сложности Nightmare -turbo (от 0 до 255, по умолчанию 100) - ускорение игрока, считается читом -playdemo 30pl1241.lmp - воспроизвести демку под названием 30pl1241.lmp, должна быть в папке с портом -record demo.lmp - начать запись демки под названием demo.lmp
Образец полной команды для записи демок:
doom.exe -warp 1 1 -skill 4 -record demo.lmp (Запускается doom.exe, загружает карту E1M1 и начинает запись демки под названием demo.lmp)
zdoom.exe -iwad doom2.wad -file av.wad -warp 20 -skill 3 -respawn -nosound -record 1337.lmp (Запускается zdoom.exe, загружает doom2.wad как iwad и av.wad как pwad, включает уровень сложности Hurt Me Plenty, кидает на карту 20, включает респавн монстров, выключает звук и начинает запись демки под названием 1337.lmp)
1.3. Какой порт наиболее подходит для записи демок?
Единогласно PrBoom-Plus (не просто PrBoom) - он обеспечивает полную совместимость с классическим Doom, а при желании еще и с такими портами, как Boom, MBF, DosDoom, TASDoom. Помимо множества функций для записи скоростных демок и TAS, в нем присутствует удобный лаунчер, поддержка текстур высокого разрешения и множество других фишек, улучшающих игру. Еще существует порт Competition Doom, но он заточен сугубо под "чистые" демки - на TAS он не рассчитан.
1.4. Что за сложные термины?
Привожу список терминов, касающихся демок:
Speedrun (спидран) - скоростное прохождение игры / части игры. FDA, first demo attempt - демка, записанная при первой попытке пройти карту. Их очень любят смотреть авторы карт. Существует также FDC - соревнование, цель которого - быстрее всех остальных участников пройти незнакомую всем карту с первой попытки. Desync (десинк) - рассинхронизация демки. Происходит из-за бага движка, несовместимости портов и нескольких других факторов. TAS, tool-assisted speedrun - скоростное прохождение игры с использованием посторонних фишек эмулятора / порта - замедления времени в игре, записи по кускам, редактирования демок по кадрам и прочего. SR50 - один из эксплоитов движка Дума, позволяющий увеличивать скорость стрейфа (передвижения влево/вправо). Очень полезен в скоростных прохождениях. Пример использования: прыжок к экзиту на Doom E1M4. Shortcut (шорткат) - способ сократить время прохождения игры / карты. В их число входят баги карт. Подробный их список можно найти ниже.
1.5. Какие бывают демки?
Список категорий демок:
UV-Speed - наиболее быстрое прохождение уровня на сложности Ultra-Violence. UV-Max - демки на уровне сложности Ultra-Violence с 100% убийств и секретов (с исключениями) Nightmare Speed - наиболее быстрое прохождение уровня на сложности Nightmare. Nightmare 100% Secrets - скоростные демки на Nightmare с 100% секретов. UV Fast - аналог UV-Max с параметром -fast. UV Respawn - аналог UV-Max с параметром -respawn. UV Pacifist - наиболее быстрое прохождение уровня на сложности Ultra-Violence без наноса урона врагам. UV Tyson - демки с 100% убийств, в которых можно использовать только пистолет, кулак и бензопилу. No Monsters - наиболее быстрое прохождение без монстров (параметр -nomonsters). Reality - категория демок, в которых нельзя получать урон (могут быть и UV-Max, и NM-Speed и т.д.). FDA - запись первой попытки прохождения карты. Stroller - демки без бега и стрейфа. Тurbo - демки с параметром -turbo. Solo-Net - демки с параметром -solo-net, который включает режим "одиночной сетевой игры" с дополнительными монстрами и вещами.
1.6. Где можно найти демки по определенным вадам?
На Doomed Speed Demos Archive. Там есть практические все имеющиеся на свете демки, и чтобы их все посмотреть, потребуется более полугода.
2. Углубленная подготовка
2.1. Как он пролез там / прыгнул здесь / не умер тут?
Привожу описание большинства трюков, используемых в демках Doom:
- Wallrunning (воллран) Это небольшой баг коллизии, позволяющий развивать скорость, в 2 раза превышающую моментум. Для этого нужно прижаться к ровной стене и побежать, не отходя, вдоль нее. Когда наберется достаточно моментума, вы сможете разогнать скорость, в 2 раза превышающую скорость ракеты (!). Работает только в сторону севера и востока (на восток заметно сложнее), но с -complevel 17 можно и во все остальные стороны. Пример использования: http://www.youtube.com/watch?v=xJ7PgOJKbEk
- Keygrab Представляет из себя "захват" вещи, лежащей на / за препятствием. Несмотря на название, сей трюк касается не только ключей, но и всех остальных вещей Дума, лежащих за препятствием на расстоянии до 32 юнитов (за точку отсчета берется центр вещи). Выполняется путем "долбежки" в это самое препятствие с хорошего разгона, желательно в южную / западную сторону препятствия. Наиболее популярные примеры: красный ключ на E4M1, плазмаган в мультиплеере на Doom 2 map01. Исполнение: http://www.youtube.com/watch?v=2gqd4Bw8L4U
- Glide (глайд) Глайд - это "пролезание" между двумя стенами / объектами, расстояние между которыми равно ширине игрока (32 юнита). Исключение - диагональный и momentum-глайды. Существует несколько разновидностей глайдов: опорные, безопорные, диагональные и momentum-глайды (нормального перевода на русский нет). Подробное описание (много букв):
Скрытый текст:
Опорный - самый простой вид глайда. Используется почти во всех скоростных демках на Doom 2 map16, когда надо пролезть к выходу между красным ограждением и стенкой. Выполняется путем точного "позиционирования" игрока, чтобы наиболее сильно вжаться в стену - для этого нужно очень медленно двигаться вдоль стены. Пример: http://www.youtube.com/watch?v=JkDoXPI7m5o
Безопорный - усложненный вариант глайда, описанного выше. Нужно точно такое же "позиционирование", только стены для опоры при этом не будет. Используется в скоростной демке Doom 2 на второй карте. Пример: http://www.youtube.com/watch?v=GdaqWRIAnyQ
Диагональный - сложный глайд, еще не до конца исследован. Возможен исключительно в TAS, но есть одно исключение - Doom 2 map21. Позволяет проходить в проемы, ширина которых составляет 24 юнита по горизонтали и вертикали, но 32 по диагонали. Выполняется путем точного позиционирования по одну из сторон глайда и последующим разгоном в сторону проема. Его принцип работы трудно объяснить, но легко понять - просто его надо сделать самостоятельно. Пример: http://www.youtube.com/watch?v=tLwHXIUGNuQ
Momentum - по сути, это не глайд, а интересный баг коллизии. Позволяет проходить сквозь непроходимые линии или даже выходить за пределы уровня (зайти обратно, увы, не выйдет). В случае с непроходимыми линиями, работает на линиях, образующих угол около 60 градусов в любую сторону. В случае с выходом за пределы уровня, работает на линиях, образующих угол 90 (или 45 градусов при наличии объекта для опоры) и исключительно в сторону (северо-)востока. Используется в Doom E2M6 (выход за карту) и Doom 2 MAP10 (проход сквозь линию). Пример: http://www.youtube.com/watch?v=4DuOghM54Mo (на английском, но очень подробно) http://i.imgur.com/vXpTNkl.gif
- Linedef Skip (лайнскип) Лайнскип - это пропуск триггера на карте. Часто срабатывает случайно, например, когда вы с разбегу входите в телепорт или экзит, вы можете пройти через него и улететь вперед. Выполняется путем разбега перпендикулярно линии, которую нужно скипнуть. Иногда используются рокетджампы для увеличения скорости. Пример использования (не очень корректный, но понятный): http://www.youtube.com/watch?v=2mCuWzN9MGQ
- Rocket Jump (рокетджамп) Известен подавляющему большинству игроков в шутеры. Не нуждается в объяснении. Просто выстрелите из ракетницы во врага или стену неподалеку - и готово! Пример использования на Doom 2 map07: http://www.youtube.com/watch?v=_bvDdgiFy6o
- Arch-Vile Jump (AVJ) Представляет собой эксплоит атаки арчвайла, которая подбрасывает вас вверх. При грамотном использовании с ее помощью можно перелетать через пропасти, залетать на высокие платформы, пропускать препятствия, увеличивать скорость перемещения... Это одна из причин любить арчвайлов. Пример исполнения: http://www.youtube.com/watch?v=EURapFZolH0
- Deathslide (DS) Этот трюк можно назвать эксплуатацией смерти. Когда игрок умирает, "высота" его тела в среде движка мгновенно уменьшается, позволяя ему пролетать под препятствиями или в помещениях со слишком низким потолком.
2.2. Как делать SR50?
Для этого нужно начать бежать по диагонали с помощью стрейфа (клавиши W и A/D), затем нажать alt (strafe on) и двигать мышку в направлении стрейфа (или нажать соответствующую стрелку на клавиатуре).
Упрощенный вариант для TAS (автоматизация) - PrBoom-Plus -> Options -> General -> Permanent SR50 (листать меню надо стрелками).
2.3. Что такое TAS и как его делать?
TAS, tool-assisted speedrun - скоростное прохождение игры с использованием посторонних фишек эмулятора / порта - замедления времени в игре, записи по кускам, редактирования демок по кадрам и прочего.
Привожу список средств для TAS:
- PrBoom-Plus, в частности его функции перезаписи (recordfromto), замедления игры и автоматизации SR50. - Doom Replay Editor. - Прямые руки и капелька воображения.
Итак, чтобы сделать TAS, нам понадобится сначала подготовить наш PrBoom-Plus - включить SR50, замедление игры по вкусу и отображение полезной инфы на HUD. SR50 включается в настройках, цитирую пункт 2.2: PrBoom-Plus -> Options -> General -> Permanent SR50 (листать меню надо стрелками). Процент скорости игрового времени меняется кнопками + и - на нумпаде. "Полезная инфа" включается путем добавления дополнительных параметров в файле .bat для записи. Список возможных вариантов:
-trace_thingshealth ThingID - отображение количества имеющегося здоровья у монстра или другой вещи. -trace_thingspickup ThingID - показывает, были ли подняты указанные вещи -trace_linescross LineID - показывает, была ли активирована указанная линия. -trace_givendamage ThingID - показывает, сколько урона было нанесено монстром / игроком / чем-то еще.
Напоминаю, что в обычных (не TAS) демках это считается читерством. В многоуровневых демках все это дело с переходами не обновляется, так что полезна в них бывает только команда -trace_givendamage, направленная на игрока. ID вещей и линий искать надо в редакторе.
Затем нам понадобится файл record.bat из архива stuff.zip, который поставляется с портом PrBoom-Plus (в версии 2.5.1.4 я его не видел, так что советую брать 2.5.1.3). Затем его нужно отредактировать под себя, заменив названия вадов после команд -iwad и -file, изменить номер карты при -warp на нужный и прочее. Все остальное, включая названия записываемой демки, трогать не стоит. Дефолтные имена демки при записи: "u" - первая запись, "_u" - вторая и последующие записи, "__u" - предпоследняя запись
Запустите получившийся файл и попробуйте поиграть. Если замедление, SR50 и прочие фишки работают, то можно приступать к записи самой демки. В начале не стоит сразу же пытаться бить старые / ставить новые рекорды, я бы лично посоветовал попытаться сделать демку Doom 2, по времени приближенную к текущему рекорду (он вполне побиваем как минимум на 30 секунд, так что ничего невозможного тут нет). Следует помнить золотое правило: не мелочиться с количеством сегментов. Чем больше времени вы потратите на TAS, тем лучше он получится.
Прежде всего стоит убедиться, что ваша демка является рекордом среди остальных, иначе отправлять ее нет смысла. Есть два способа отправки демки на DSDA - или выложить ее на форуме doomworld.com в положенную ей тему, или отправить ее по почте владельцу сего архива (адрес можно найти там же). Также желательно приложить к демке текстовый файл такого формата.
2.5. Что есть манипуляция рандомом?
Это термин в TAS, обозначающий "восстановление" рандома на сторону игрока - монстры наносят вам урон меньше обычного, а вы им - больше. Когда вы бежите по коридору, монстры отходят с пути, иногда даже открывая вам двери. Когда вам надо, монстры стреляют в вас, а когда не надо - нет (чем абсурднее звучит описание TAS, тем он круче). Генератор рандома в игре можно сбить путем выстрела в воздух / смены траектории движения во время перезаписи. Если один монстр отошел с дороги, а второй - нет, то можно попробовать выстрелить еще раз или еще раз сменить траекторию движения. И так далее, пока не достигнется лучший результат.
Стоит упомянуть урон оружием - выстрел в воздух тут не прокатит, надо или менять траекторию перемещения, или стрелять с задержками, или отойти подальше от цели, чтобы снаряд летел подольше. Вот таблица урона оружия:
Это сайт, который когда-то являлся средоточием лучших спидраннеров Doom по всему миру и базой для выдающихся не-TAS демок. 10 лет назад он потерял свою активность и с того момента не обновлялся, однако правила и стандарты спидранов, которые были установлены в его времена, до сих пор актуальны. Ветераны compet-n, чьи демки до сих пор кое-где занимают места мировых рекордов, тоже в большинстве своем ретировались.
Сайт Compet-N умер, но архив демок до сих пор жив и активно обновляется. Там можно найти текущие рекорды скоростных прохождений по картам Doom и некоторых неофициальных вадов-дополнений.
Главное правило Compet-N - записывать демки на оригинальном doom.exe (лично я считаю это мазохизмом).
3. Техническая информация (крайне сырой раздел)
3.1. Что такое complevel?
Complevel (compatibility level) - это параметр в порте PrBoom-Plus, позволяющий почти полностью эмулировать большинство портов семейства классических, а также старые версии Doom. Большинство из них нужны лишь для воспроизведения демок с конкретных портов. Наиболее используемые: 2, 3, 4, 9.
Полный список комплевелов:
0 doom_12_compatibility Эмулирует (частично) doom.exe версии 1.2
1 doom_1666_compatibility Эмулирует doom.exe и doom2.exe версии 1.666
2 doom2_19_compatibility Эмулирует doom.exe и doom2.exe версии 1.9.
3 ultdoom_compatibility Эмулирует doom.exe в Ultimate Doom версии 1.9.
4 finaldoom_compatibility Эмулирует doom2.exe в Final Doom. Нужен для демок Plutonia и Evilution
5 dosdoom_compatibility Эмулирует DosDoom версии .47
6 tasdoom_compatibility Эмулирует TASDoom
7 boom_compatibility Эмулирует Boom
8 boom_201_compatibility Эмулирует Boom 2.01
9 boom_202_compatibility Эмулирует Boom 2.02
10 lxdoom_1_compatibility Эмулирует LxDoom 1.4.x
11 mbf_compatibility Эмулирует MBF
12 prboom_1_compatibility Эмулирует PrBoom 2.03beta
13 prboom_2_compatibility Эмулирует PrBoom 2.1.0
14 prboom_3_compatibility Эмулирует PrBoom 2.1.1-2.2.6
15 prboom_4_compatibility Эмулирует PrBoom 2.3.x
16 prboom_5_compatibility Эмулирует PrBoom 2.4.0
17 prboom_6_compatibility Последняя версия PrBoom-plus
-1 default_compatibility_level Текущая (используемая) версия Prboom-plus
3.2. Каков максимальный размер демки?
4096 кб. Этого хватает примерно на 8 часов.
3.3. Можно ли объединить две демки в одну?
Теоритически - да, но никому это пока еще не удавалось сделать это без дальнейшей рассинхронизации. Исключение - демки с -nomonsters.
- Arch-Vile Jump (AVJ) Представляет собой эксплоит атаки арчвайла, которая подбрасывает вас вверх. При грамотном использовании с ее помощью можно перелетать через пропасти, залетать на высокие платформы, пропускать препятствия, увеличивать скорость перемещения... Это одна из причин любить арчвайлов. Пример исполнения: http://www.youtube.com/watch?v=EURapFZolH0
Лучший монстр из всех игр на id tech 1 имхо
Avrelian:
-trace_thingspickup ThingID" - показывает
показывает что именно?
Avrelian:
Главное правило Compet-N - записывать демки на оригинальном doom.exe (лично я считаю это мазохизмом).
А на чем бы ты предпочел их записывать?
Avrelian:
P.S.: Тут крайне не хватает кнопочки "предварительный просмотр"!