Half life 2 не открывается дверь

Обновлено: 20.05.2024

«Двери — отстой»: как небольшой физический баг двери сломал Half-Life 2 Статьи редакции

Даже спустя десять лет после релиза игра может подкинуть неприятный сюрприз.

Разработчик из Valve Том Форсайт опубликовал в Твиттере тред, в котором рассказал о неожиданных проблемах, возникших при разработке VR-версии Half-Life 2 из-за дверей. Форсайт уточнил, что эти события происходили примерно в 2013-2014 году. Мы выбрали из треда главное.

Сцена, в которой внезапно появился баг

Мы привыкли к тому, что в реальной жизни двери чаще всего устроены достаточно просто. Но в играх — это сложный элемент дизайна, с которым связано множество потенциальных проблем. К примеру, недавно геймдиректор The Last of Us Part II Курт Маргено подробно описал в Твиттере трудности, которые вызвали двери, а мы пересказали его тред.

По словам Форсайта, когда разработчики решили добавить VR-режим в Half-Life 2, они поняли, что придётся менять код рендеринга. Но при этом они не вносили никаких изменений в код геймплея. Это значит, что по сути игра осталась всё той же, но с новым режимом.

В скриптах NPC не было прописано, что он должен открывать дверь дважды — изначально одного раза было достаточно. В результате вся игра заглохла. При этом игрок тоже не мог открыть эту дверь — это должен был сделать только определённый персонаж. Форсайт попробовал перезагрузиться, но результат всегда был один и тот же. Для разработчика стало очевидно, что они что-то сломали. Он предположил, что всё дело в изменениях рендеринга — это основное, чем команда занималась.

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

Форсайт делал всё это на основе старого кода, но при этом использовал новую версию компилятора. Старый компилятор применял стандарт 8087 для всех математических вычислений. В новом компиляторе его нет — сейчас применяется SSE. У этих компиляторов немного различается точность вычислений. В результате получилось, что новая версия иначе просчитала значения, что повлияло на физику игры.

Какое-то крохотное изменение привело к тому, что именно эта сцена не работала, а со всей остальной игрой всё было в порядке. Но это не объясняет, почему скрипт не срабатывал как надо.

Вот что должно было происходить. Когда охранник толкает дверь, она должна распахнуться на максимум — тогда она фиксируется в таком положении, а сцена продолжается по сценарию. Оказалось, что главный недостаток заключается в физике — когда охранник толкает дверь, она начинает двигаться на основе физических законов, а не по скриптам. Скрипт включается в тот момент, когда она распахивается на максимум.

Всё это не срабатывало, потому что дверь не раскрывалась на максимум — ей мешал стоящий рядом охранник: она цеплялась самым краем. Со старым компилятором дверь оказывалась достаточно тяжёлой, чтобы оттолкнуть персонажа и достичь точки, в которой она фиксируется. А новая версия компилятора посчитала, что силы недостаточно, поэтому дверь отскакивала от охранника и закрывалась.

Двери — отстой. Даже старые надёжные двери, которые работают десятилетиями, — отстой.

Том Форсайт разработчик из Valve Нужно больше гигов Как настроить дозагрузку
контента для тяжёлой игры 115 комментариев Популярные По порядку Написать комментарий.

Мало кто знает, но именно двери из HL2 стали главной причиной вступления капитана Прайса в ряды SAS.

Этой дверью был Альберт Энштейн

Разрабы в тот момент, когда столкнулись с багом

Симпатичный глобус

Вот и выросло поколение!

вр версия хл2? я слышал о пользовательских модах - но что валв само сделало вр версию .

Экспериментировали на второй части перед тем как к Alyx приступили.

Видать после этой двери все и заглохло :D

Так и не понял при чем здесь компилятор.

По-разному физику считал, соответственно в одном случае дверь была тяжелой и могла оттолкнуть, а в другом случае нет и не открывалась до конца

Компилятор физику не считает. Разрабы использовали SSE инструкции, что как-то сломало игру. Я не пойму, при чём тут компилятор.

Не перевели полностью. Компилятор по-другому посчитал числа, и из-за этого изменилась физика

But x87 code uses a very subtly different precision to SSE code. I don't know if we ever tracked down the exact place the code differed - I don't think it was as obvious as 80-bit vs 64-bit. But anyway - why the hell would it even matter? The rest of the game worked fine! /10

Ну вот теперь понятно. Точность чисел в новом стандарте другая была

Просто новые компиляторы сейчас везде используют SSE инструкции, а старые использовали инструкции математического сопроцессора x87. И в данном случае виновата архитектура самого сопроцессора, который всегда оперировал 80 битными числами с плавающей запятой и это повышало точность расчетов (даже если на вход передавались только 32 и 64 битные вещественные числа, он просто конвертировал их). А вычислительный блок SSE инструкций оперирует 32 и 64 битными вещественными числами (в зависимости от инструкции).
P.S. В некоторых актуальных компиляторах до сих пор могут использоваться x87 инструкции, но только при сборке под i686, а при сборке под x64 уже используются SSE инструкции

так а в чём вина х87, если это SSE - несовместимая китайская поделка?

Не понял прикола с "китайской поделкой", потому что SSE/MMX тоже поделки Intel. У x87 было несколько проблем:
1) Низкая скорость вычисления из-за 80 битного формата
2) Несоответствие стандарту IEEE-754 (из-за того же 80 битного формата)
3) Стековая архитектура. Это усложняло добавление векторных операций в будущем, при этом целочисленный вычислительный блок был с более удобной регистровой архитектурой
4) Лютый оверинженеринг в виде тригонометрических и других операций. В сравнении с самописными алгоритмами преимущество в скорости было минимальное и память экономили считанные десятки байт на всю программу. А если точность тебе была не принципиальна, то самописные алгоритмы были заметно быстрее

Исходя из этого можно именно x87 называть "китайской поделкой", а не SSE

тем не менее. Есть кривой, но стандарт.
И перекомпиляция без предупреждения - это немного хамство. Примерно как прийти на кухню и поменять продукты.

Ну или режим "принудительной совместимости", когда 87 инструкции эмулируются на SSE и пофигу на удорожание.

Сэмулировать x87 на SSE будет проблемно, да и не надо (x87 никто не выпиливал из железа, а переключиться обратно можно одним флагом компилятора). И предупреждение было, потому что компиляторы - это не такая из вещей, где в описаниях обновлений можно упускать что-либо, так что оно гарантированно было (как и настойчивая рекомендация разработчиков различных ОС не использовать x87 инструкции в 64 битных программах, появившиеся ещё до выхода первых таковых ОС, т.е. им уже 15+ лет). Так что это проблема разработчиков игры, а не компиляторов

Таки компиляторов, потому что на разрабах и так адская когнитивная нагрузка.

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

Иначе получается любопытная ситуация:
- Ты обязан следить за всеми патчноутами всего ПО
- Ты обязан адаптироваться ко всем проблемам всех участников процесса
- А тебе никто ничего не обязан. Жри что дают: пропустил сноску мелким шрифтом в новом тексте стандарта (нужно сравнивать постранично минимум 2 стандарта рядом) - виноват не автор компилятора, который "предупредил в списке обновлений", а программмист, над которым, между прочим, менеджмент, которому релизы давай.

Если программист решил обносить компилятор на новую версию (и особенно мажорную, как в посте) и не прочитал чейнжлоги, то он сам себе злобный буратино. А в рамках минорных версий abi меняется только в очень крайних случаях.

Но это означает знание архитектуры процессора и микропроцессорных комманд, т.е. выходит за рамки компетенции обычного программиста и требует глубокого понимания всего стека технологий?

А при кросс-платформе - и вовсе нужно учить особенности разных платформ.

В итоге возникает один простой вопрос: а нахрена тогда вообще нужны языки высокого уровня, если программисту нужно ещё и за ассемблер переживать?

Если программист решил обносить компилятор

Техлид сказал, джуня приступил к работе.

И ещё, насчет стандарта: разные процессоры для одного и того же набора операций с плавающими числами одинаковой точности могут выдавать слегка разные результаты и разработчики тоже должны это учитывать

ну, тут борьба простая: округлять до 5-6 знака, чтобы эксплуатационная точность была чуть ниже точности процессора.

Компилятор Апанасика тогда не придумали и всё было плохо.

Ну это я увидел в статье, но при чем здесь компилятор я не понял.

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

Да, это крайне маловероятно, ну так и подобную ситуацию мы все тут видим в первый раз

Куча случаев вообще то
Так же это причина почему многие организации в мире сидят на железе 80х и даже не пытаются с него слезть

Комментарий удален по просьбе пользователя

Там уже ниже написали из-за чего ошибка была.

Считать физику в компайл тайме эт мощно конечно

Таможенный корабль

А мне сравнение дверей из разных частей попалось недавно, тоже есть о чем подумать.

Real-Life vs. HLA vs. HL2

Кавказский Петя

Лол, почему то никогда не замечал этого)
Но риал лайф дверь на скрине явно маловата)

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

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

Из этого вывод - не делайте критически важные моменты в скриптах зависимыми от физики. Но это, кажется, и ребенку должно было быть понятно. Странно, что в Вальв это не понимали (Работает? Ну и ладно).

Ну видимо тогда идеей вентилей было все сделать по физону. В 21 году может и очевидно, что наверно это не лучший подход, но вторая халява была когда?

Ну в современной более-менее комплексной игре очень много аспектов зависят от физики. Банально перемещение персонажей чаще всего ее как-то использует. Что же теперь полностью отказываться от физики?

Ну, во-первых желательно отказаться (тем более, если есть мультиплеер), во-вторых я написал КРИТИЧЕСКИ ВАЖНЫЕ моменты. Например, как в данному случае, что если дверь не открывается из-за застрявшей из-за физики двери, ты застреваешь на уровне.

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

Ну перемещение персонажа это таки критически важный момент

Поэтому его желательно делать без физики. Кстати в Unity Character Controller, который рекомендуется использовать для движения персонажа как раз и написан без использования физики.

"Без физики" у него если и реализовано только передвижение по земле. У него есть коллайдер и он использует физику для определения столкновений, для определения стоит ли он на земле. Ну и прыжки например также там необходимо реализовывать через физику (или извращаться с самостоятельной реализацией подобия свободного ускорения при падении, а для определения конечной точки все равно использовать физику).
Character Controller это наипростейший контроллер, который для нормальной игры все равно нужно будет плотно допиливать, в том числе используя физику.

У него коллайдер только для просчета столкновений на него не действуют физические силы. Его перемещение полностью контролируется со скрипта. Так что такие объекты вполне предсказуемы для скриптовой логики.

Но просчет столкновений это физика. Там тоже что-то может пойти не так при изменении вводных данных в готовом продукте. Достаточно обновить версию юнити и уже что-то может пойти не так. Кроме того там не реализованы, как я уже сказал, прыжки. И чтобы их добавить к этому контроллеру нужно будет у него либо включать гравитацию и применять физические силы, либо писать свою систему с блекджеком и костылями для симуляции свободного падения (то есть дублировать функции физики), только чтобы не использовать "бгмерзкую" физику. И так во всех взаимодействиях, которые сложнее контроллера 30 летнего дума: если мы хотим плавать, прыгать, скользить на поверхностях, карабкаться по лестницам, толкать других персонажей и предметы и прочее прочее. нам нужно либо использовать готовую реализацию физики, либо пилить свою систему, которая (спойлер) будет по факту самописной системой обработки физических взаимодействий. Только дорогой, неэффективной и скорей всего с багами.

Но просчет столкновений это физика

Но это не та физика из-за которой что-то может пойти не так.
Вы вполне даже можете просчитать столкновения отдельно от физического движка (если вдруг такая необходимость возникнет). Это просто пересечение отдельных фигур между собой. Поскольку коллайдеры все выпуклые, там все простые формулы.
Кроме того там не реализованы, как я уже сказал, прыжки.

Там все есть в этом контроллере и прыжки, и скольжение, и подъем по ступенькам. Все базовые перемещения реализованы.

Специально посмотрел в документацию юнити. Там реализованы ступеньки и максимальный угол подъема. Никакого скольжения там близко нет. Не говоря уже о том что у нас могут быть разные поверхности с разным возможным углом подъема, которые в физическом движке легко определяются через коэфицент трения физического материала.
Прыжки там "реализованы" так как я и сказал - через самописную "симуляцию" физического явление гравитации. То есть вручную каждый кадр обновлять позицию персонажа вниз на gravityValue * Time.deltaTime.
То есть для прыжков мы "пилим свою систему, которая (спойлер) будет по факту самописной системой обработки физических взаимодействий".
И это мы говорим о такой простой вещи как прыжки.

Unity - Scripting API: CharacterController.Move Unity - Manual: Character Controller

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

Прыжки там "реализованы" так как я и сказал - через самописную "симуляцию" физического явление гравитации.

"Симуляция" прыжка аж в пару строчек кода :) Кстати, не слишком уж сильно отличается от AddForce.

И кстати, насколько легко и удобно через RigidBody узнавать, что ваш персонаж стоит на земле?

"Симуляция" прыжка аж в пару строчек кода :)

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

И кстати, насколько легко и удобно через RigidBody узнавать, что ваш персонаж стоит на земле?

Никак, собственно как и в CharacterController нужно использовать физику. Я предпочитаю SphereCast вниз.

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

Нет, ну конечно, если вашей игре нужны такие вещи для персонажа, как отскоки, скольжение на различных поверхностях, то без физики обойтись здесь будет ОЧЕНЬ сложно.
Но обычные бродилки, выживачи, те же шутеры, спокойно могут обойтись без физики для перемещения.

Но это не та физика из-за которой что-то может пойти не так.

Легко можно сломать. Например открывать дверь по скрипту, у которой есть коллайдер, Встать рядом и персонажа вытолкнет в out of bounds. Можно посмотреть на многих спидранах.
Ах, можно же отключать коллайдер на двери во время скрипта открытия. Ну да, костылей нам мало.

Его выстреливает из-за физики, а не из-за коллайдера. Мое предположение, что физика неверно рассчитывает силу удара.
Коллайдера просто рассчитывает пересечение фигур.

Если ты такой умный, то почему такой бедный?

А какое отношение перемещение персонажей имеет к скриптовым сценкам?

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

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

Ну перелезать через забор он и в геймплее может. Любые нестандартные взаимодействия конечно нужно будет как-то реализовывать в контроллере (каким бы он ни был) что для геймплея, что для сценок. Но ключевое здесь, что реализация должна быть одна. Если персонаж перелезает через забор в геймплее по одной системе, а в скриптах по другой, то это плохо и совершенно зря.
Оригинальный комментарий говорил, что как же они двери отрывают в скриптах по физике, то есть предполагается что в геймплее они должны открываться по физике, а в катсценах через другую систему (например анимацию). Я говорю о том что дублировать системы избыточно и подвержено багам в еще большей степени.
Перемещение персонажа чисто по анимации игнорируя физику в катсцене это конечно можно реализовать, но зачем? Нужно удостовериться что персонаж корректно переходит от физического контроллера в анимационный контроллер и обратно. А если игрок в это время загрузится или сохранится? А если еще 1000 но? А если мы поменяем немного сценку и персонаж будет идти не по плоскому полу а по склону? Менять полностью анимацию и перестраивать катсцену?
Дублирование систем это путь к двойной работе при разработке и при тестировании.

Где в ХЛ2? Нет не может. Там перелезть через забор можно только запрыгнув на него целиком, т.е. ногами, а не как бы в реальной жизни люди бы перелезали через забор.
Использование одной системы имеет смысл если рассматривать проблему поверхностно. Но на практике, если у тебя есть выбор между тем чтобы построить одну сложную систему или две простых, то разумный человек выберет второе. Хотя бы тупо потому, что тогда вторую систему можно будет отдать в соседний отдел, который как раз и занимается этими сценками. И работать и отлавливать баги в двух простых системах будет намного проще.
В нашем конкретном случае вторую систему, которая просто проигрывает анимации, тяжело назвать системой на самом деле. Проигрышь анимаций и перемещение в пространстве это и так базовая функция всех объектов в трехмерных играх. Так что тут просто стоит выбор между тем чтобы делать сложную физическую систему и делать менее сложную физическую систему.
Касательно перечисленных проблем перехода между состояний, сохранений и прочего. Во-первых они уже лет двадцать как решены. Во-вторых, решение этих проблем это как раз более "правильный", более высокоуровневый подход, нежели чем локальное решение гнать всё через одну систему.
А если мы поменяем немного сценку и персонаж будет идти не по плоскому полу а по склону?

А что если что-то изменится в физическом движке и придётся переделывать абсолютно все сценки?

Это невозможно учесть. В игре где физика тесно связана с геймплеем такие приколы могут вылезти вообще где угодно.

В мире программирования можно совершить бесконечно большое число "даже ребёнку очевидных" ошибок. Не зря до сих появляются вполне современные порты с консолей, в которых начинают ломаться скрипты при подъёме FPS выше 30 или 60.

На самом деле очень познавательная и интересная статья, спасибо. Half-Life 2 — игра на века.

Теперь понятно, почему в «Готиках» нет дверей! (на самом деле нет)

Здравствуйте, мы тут из r6 siege. Хотим сказать, что мы, в нашей секте, ненавидим двери. Поэтому у нас сплошные арки)

Настолько ненавидим двери, что наши двери нельзя открывать — только взрывать, пробивать и простреливать. И оконные проемы мы тоже дверным полотном закрываем!

Штааааа? В первой и во второй двери есть.

Пираньи до сих пор не могут до конца решить проблемы навигации НПЦ в дверях. Поэтому в Risen и Elex количество дверей тоже врятли превышает пяти экземпляров на всю игру.

Желтый нос

Сразу вспоминается статья про двери в TLOU II, где сказано, что разрабы ААА ненавидят двери.

Half-Life Inside: всё о вселенной Half-Life

Прохождение игры Half-Life 2, глава 6: «Мы не ходим в Рейвенхолм. » (We Don't Go To Ravenholm)

Новые предметы для использования

Контакты

    *
  • Леон с базы «Берег» *
  • Уинстон с базы «Берег» *
  • Леон с базы «Берег» *
  • Даниил с базы «Берег» *
  • Яков с базы «Берег» *
  • Вороны *
  • Чайки *

Враждебные столкновения

  • Зомби
  • Хэдкраб
  • Ядовитый хэдкраб *
  • Быстрый хэдкраб
  • Пол-зомби
  • Быстрый зомби *
  • Ядовитый зомби *
  • Барнакл
  • Солдат Альянса *

* первая встреча за игру

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

В этом безлюдном городке можно заработать достижение «Зомбомёт». Пройти через Рейвенхолм с одной гравипушкой — звучит легко, а на деле достаточно серьёзное испытание. Забудьте про любое другое оружие, от монтировки до гранаты. Только гравипушка и предметы окружения: лезвия циркулярных пил, бочки, батареи отопления и так далее. Полюбите ловушки и используйте их по максимуму.

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

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

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

На балконе с дробовиком наперевес появится Отец Григорий — единственный оставшийся человек в городе.

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


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

Зомби можно выманить и сжечь, можно застрелить или забросать баллонами.
Закрываем газ, выманиваем зомби, пускаем газ, пускаем искру.

Обесточив лестницу, возвращаемся и идём за дом ко второй ловушке. Закрываем газ, выманиваем зомби, пускаем газ, пускаем искру. Когда все сгорят, выключаем газ и перелезаем через сеточный забор по обесточенной лестнице. И далее ещё выше по лестницам.


На чердаке дома напротив появится Отец Григорий. Далее путь лежит между домами, по доскам. Запрыгиваем в окно. Внизу ходит один зомби и ползает несколько хедкрабов. Убиваем всех сверху, спрыгиваем и выходим. Перед выходом на улицу стоит устройство с мотором. При его активации перед входом на тросах резко опускается машина. Это ещё одна ловушка Отца Григория. Используем её против зомби на улице. Вторая подобная ловушка на улице справа. Использовать хотя-бы раз её необходимо, чтобы поднять машину. Ещё правее — знак лямбда на деревянном заборе.

Перед выходом на улицу стоит устройство с мотором — это ещё одна ловушка Отца Григория.
Вторая подобная ловушка на улице справа. Использовать хотя бы раз её необходимо, чтобы поднять машину.
Необходимо забраться наверх на доски.

Необходимо забраться наверх на доски. «Лифтом» служит первая ловушка — опускаем машину, быстро запрыгиваем на неё, и поднимаемся к доскам. Сверху можно запрыгнуть за забор со знаком лямбда — там аптечка, броня, граната. Обратно можно выбраться по металлическому профилю справа. Доски ведут к дому, на крыше которого Отец Григорий наконец-то представится. Залезаем в окно и идём в дверь.

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

Через окно выбираемся на бортик дома, предварительно убив двух ядовитых хедкрабов на противоположном.
Внизу много зомби и хедкрабов. Всех их лучше убить сверху, благо бочек внизу хватает.
Сначала идём чуть дальше, на чердак слева. Там есть знак лямбда и кое-какие припасы.


Возможно, внизу осталось несколько живых быстрых хедкрабов. От обычных хедкрабов они отличаются в основном скоростью передвижения. В доме, в одном из окон которого только что был Отец Григорий, у земли есть небольшая решётка, за решёткой — бочка. Взорвав ее, выбьем решётку, за которой есть аптечки. Но лезем не сразу — ждём, когда потухнет огонь. Теперь идём вдоль улицы до самого конца. Почти в конце, справа на доме есть лестница. Далее по профилю и доскам в обратном направлении. В окно справа можно сразу закинуть гранату, но сначала идём чуть дальше, на чердак слева. Там есть знак лямбда и кое-какие припасы.

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

Зомби на столах — живые.
Основной путь пролегает через дом слева.
Отец Григорий даст отличное оружие — дробовик.

Быстрые зомби довольно опасные враги. Главное — убегать от них не надо. Лучшее оружие — это дробовик. Стрелять, как верно подметил Отец Григорий, лучше в голову, желательно поточнее. При окружении можно использовать двойной выстрел дробовика (вторичная атака).

После отстрела всех противников разбегаемся и прыгаем в цистерну с водой, справа от балкона. Поднимаемся на крышу и снова отстреливаемся. Заходим внутрь, вызываем лифт, и снова отстреливаемся. Можно использовать баллоны слева. Внизу ходит опасная тварь — ядовитый зомби. Это обычный зомби, но на нём сидит несколько ядовитых хедкрабов, которых он может кидать. Лучше всего взрывать, или стрелять из дробовика. На улице ничего нет, поэтому бежим прямо по доскам через забор. За вторым забором направо вдоль стены (забор можно обойти слева).

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

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

Справа от неё есть дом с балкончиком — обходим дом справа и поднимаемся на этот балкончик.
Далее обходим этот же дом, но слева и забираемся сначала по коробкам на выступ.

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

Внизу слева уже были, поэтому идём направо. Выбравшись на крышу, перебираемся на соседнюю.
Можно запрыгнуть на наклонную лестницу справа, либо пойти на крышу слева, с неё к этой же лестнице.

Поднимаемся по лестнице и заходим. Поднимаемся на крышу. Пока Отец Григорий поднимает к нам люльку, активно отстреливаемся от быстрых зомби. Делать это лучше когда зомби ещё лезут по трубе. Оказавшись в люльке, используем рычаг, чтобы доехать вниз. Берём патроны и следуем за Григорием. Не надо бежать строго за ним — держим дистанцию метров пятнадцать. Патронов не жалеем и помогаем Отцу Григорию, он не бессмертный. В конце пути он откроет сетку к шахте. Заходим и спускаемся в неё. После прощания с Григорием получим достижение «Святая земля».

Следуем за Григорием, держим дистанцию метров пятнадцать.
В конце пути он откроет сетку к шахте. Заходим и спускаемся в неё.

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

Спускаемся как бы по часовой стрелке, прыгая по балкам.
Бежим ко второй лестнице и с неё на деревянные балки.

Затем прыгаем в шахту, там вода. На потолке соседней шахты висит барнакл. Можно использовать его, чтобы подняться вверх за аптечкой. Затем плывём дальше. В начале наклонной шахты включаем заключительную ловушку Отца Григория. Укрыться от неё просто — не стоять на рельсах и просто присесть. По ходу прохождения из разных углов начнут выходить обычные зомби. Пересечь путь они не могут, помешает трос. Поэтому, выманив их, просто ждём очередного «рейса» вагонетки.

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


Снаружи над выходом знак лямбда. Забраться туда можно по ящикам справа (в верхнем ящике патроны). Убив двух ядовитых хедкрабов, идём вдоль путей направо. Скоро из окна над путями покажется синий лазерный луч. Это снайпер. Стреляют они практически постоянно. Передвигаться можно только между выстрелами. Укрываться за ящиками и досками нельзя. Снайпера проще убить, кинув в его окно гранату, или выстрелив из гранатомёта или подствольного гранатомёта.

Снаружи над выходом знак лямбда. Забраться туда можно по ящикам справа.
Из окна над путями покажется синий лазерный луч. Это снайпер.

Но пока есть только гранаты. Они есть так-же в ящике прямо под снайпером. К следующему снайперу подобраться сложнее — он стреляет в нашу сторону. Прячемся за вагонами. Под вагоном, на котором есть брёвна, проползаем. Собственно теперь убивать снайпера не обязательно, но всё же.

Под вагоном, на котором есть брёвна, проползаем.

В вагонах и контейнерах есть патроны. Почти сразу появятся солдаты Альянса. Главное отличие от метрокопов, это более мощный автомат — импульсная винтовка, а так же больше единиц здоровья. В отличие от автомата она более мощная, но патронов можно взять максимум девяносто штук. Подствольный гранатомёт тоже интересный, стреляет не гранатами, а энергетическими шарами — эффективное средство против толпы противников в закрытых пространствах.

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



Проходим дальше и видим слева дом. За вагонами прямо — Джи-мен. Под правым стоп-сигналом обоих микроавтобусов — знак лямбда, а внутри аптечки. Снаружи несколько солдат, а внутри перестрелка между солдатами и повстанцами. Помогаем союзникам. После того, как перестрелка закончится, на полу окажется раненый повстанец — Уинстон. Его будут поддерживать двое друзей: девушка и парень по имени Даниил.

За вагонами прямо — Джи-мен.
В микроавтобусах аптечки.
Раненого Уинстона поддерживают двое друзей: девушка и парень по имени Даниил.

Повстанец, зовущий нас за собой — Леон. Идём за ним в соседнее помещение. Там разместили раненых бойцов. За одним из них: Яковом, ухаживает санитарка. Идём к Леону, который наладил видеосвязь с Аликс. Грустная девушка рассказывает, что её отца забрали и держат где-то в Нова Проспект (бывшей тюрьме строгого режима), и просит Гордона поскорее туда приехать на джипе. Выходим в доки, на пирс, где припаркован наш автомобиль.

Half-Life Inside: всё о вселенной Half-Life

Прохождение игры Half-Life 2, глава 9: «Нова Проспект» (Nova Prospekt)

Новые предметы для использования

Контакты

Враждебные столкновения

  • Хэдкраб
  • Сторожевое орудие
  • Барнакл
  • Быстрый хэдкраб
  • Страж муравьиных львов
  • Солдат Альянса
  • Мэнхаки
  • Уоллес Брин
  • Сталкер *
  • Элита Альянса *
  • Ядовитый хэдкраб
  • Ядовитый зомби
  • Зомби

* первая встреча за игру

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

На мониторе можно увидеть Джи-мена.
. и стража муравьиных львов.

В комнате с бронёй и аптечкой есть монитор, переключая который (клавишей «Е») можно увидеть много интересного, в том числе Джи-мена и Мирмидонта — стража муравьиных львов. Поднимаемся выше, и, опрокинув две автоматические турели, заходим в дверь с надписью DANGER слева от неё. По воде проходим помещение, осторожно обходя барнаклов или скармливая им окружающий хлам. Карабкаемся в пролом в потолке, отстреливаемся от противных быстрых хедкрабов и прямиком направляемся через двойные двери в сектор A5. Там спрыгиваем на один этаж вниз и бежим прямо в проход, не попадая под огонь впереди стоящих турелей. Чуть раньше орудий не пропустите тайник с лямбдой, а справа от них проход дальше.

Спрыгиваем на один этаж вниз и бежим прямо в проход.
Чуть раньше орудий не пропустите тайник с лямбдой.

Расчистив дверной проём от ящиков и пройдя по коридору окажемся как раз над тем залитым светом залом, в котором недавно по монитору могли видеть Мирмидонта. Другого пути нет, поэтому спрыгиваем вниз. Страж муравьиных львов выскочит справа, ломая и швыряя всё на своём пути, так что аккуратнее, чтобы не зацепило бочкой, щитом или ящиком. Стрелять в него лучше чем-то мощным: гранатометом, револьвером, арбалетом или дробовиком. Из дробовика оптимальнее стрелять двойными выстрелами в упор.

Идём в соседнее помещение к белым заваленным двойным дверям.

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

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


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

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

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

Сектор В4. Здесь довольно много солдат, а на противоположной стороне пулемётчик. Сворачиваем направо.

Возвращаемся назад и идём направо от выхода из вентиляции, поднимаемся в сектор В4. Здесь довольно много солдат, а на противоположной стороне пулемётчик. Доходим почти до него и сворачиваем направо, в помещение с двумя турелями. За ними поднимаемся наверх и идём к пулемёту. Поднимаемся ещё выше. На развилке справа тупик, так что идём налево в сеточную дверь. Убив всех солдат, разобравшись с турелью, подзарядив костюм и поправив здоровье, рубильником открываем решётку. Справа от рубильника есть монитор, на котором можно увидеть новый более мощный вид войск Альянса — элиту Альянса.

На мониторе можно увидеть элиту Альянса.
Небольшая комнатка с припрятанными припасами.


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

В окне есть дыра, сквозь которую можно выпрыгнуть.
Помогаем солдатам, после чего добиваем победителя.

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

Теперь пробираемся сквозь завалы в сектор С3, вернее в то, что от него осталось.
Метров двадцать идём по коридору.
. запрыгиваем налево в дыру в стене.

Теперь пробираемся сквозь завалы в сектор С3, вернее в то, что от него осталось. Метров двадцать идём по коридору, образованному огромными металлическими заграждениями, после чего запрыгиваем налево в дыру в стене, к костру. Чтобы запрыгнуть, ставим перед уступом ящик или бочку и запрыгиваем с неё. Медлить с этим не надо, потому что скоро начнут сдвигаться стены.

Ещё чуть дальше находится то самое место, где договаривались встретиться с Аликс — разгрузочная станция Нова Проспект.

Half life 2 не открывается дверь

Чужой компьютер

Просмотр темы 109

Раздел вопросов (Прохождение игры)

Underhell [Модификация Half-Life 2]

Застряли на каком-то уровне?
Не знаете о чем говорил Bryan упомянув "Poop Monster" в канализации?

Нравится Показать список оценивших

Владислав Лазовский

Вопрос связан с домом Джейка:
Обследовал колодец, вернулся в дом, и не могу понять что дальше делать? Ночью надо по дому погулять или ещё что?
И ещё 1 вопрос: по сравнению с завершением пролога, мир снов изменился, коридор стал пошире и подлиннее, прошёл 4 сна, но дверь в конце что-то не открылась.. Или она откроется только дальше по сюжету перед второй главой?

Нравится Показать список оценивших

Валентин Кавецкий

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

Нравится Показать список оценивших

Владислав Лазовский

Нравится Показать список оценивших

Валентин Кавецкий

Владислав, двери должны были открыться. Впервые слышу, что они НЕ открылись.

Редактор Half-Life 2, часть 2. Геометрия уровня

предлагаю вам выполнить небольшое задание на использование взаимодействующих объектов. Видели в Half-Life 2 дверь, закрытую на навесной замок — когда его ломаешь, дверь открывается? Именно такую дверку мы и создадим

Мастерская

Редактор Half-Life 2, часть 2. Геометрия уровня
Редактор Half-Life 2, часть 2. Геометрия уровня

Читайте также: