Что вызвало «выпадение из мира» и что это исправило?

15

Во многих ранних 3D-играх была проблема, когда вы весело катались вместе, и вдруг все стало черным, а остров, похожий на полую оболочку фасада сцены, по которой вы шли, поднимался на расстояние выше. Потому что ты выпал из мира. Я помню, что это была особая и давняя проблема Bethesda Softworks, хотя они, конечно, были не одни. Прошло много времени с тех пор, как я видел это в дикой природе, поэтому, кажется, мы прошли через это. Мой вопрос состоит из двух частей:

1) Какова была причина или причины этого? (Я предполагаю, что это связано с точками с плавающей запятой между полигонами, взаимодействующими с позицией персонажа с точечной моделировкой, то есть кусок пола A заканчивается в позиции 1.0, кусок пола B начинается в позиции 0.9998, и в течение микросекунды ваша позиция равна 0.99992, и бум, ты провалишься по миру. Но это только предположение.)

2) Как это исправить?

хаос
источник
Morrowind. Вивек. Воспоминания ...
Тобиас Кинцлер
3
Говоря о Бетесде и падении через пол, вот несчастный NPC в Скайриме .
Крис
Всегда заставляет меня думать о Skate 3 .
user1118321

Ответы:

14

«Трещины» в геометрии в основном. Эти игры имеют несколько общих черт, имеют гравитацию и обнаружение столкновений.

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

Это часто случается, когда игрок делает то, чего не ожидали дизайнеры уровней. Прыгнуть на какое-то место, которым они не должны быть, или каким-то образом пережить падение, которого они не должны были делать. Или, когда игрок использует такие функции в игре, как телепортация или полет, чтобы добраться до мест, дизайнеры уровней не думали, что игроки смогут добраться до них. Еще в Skyrim ( видео: выпадение из мира в 11:25 я предлагаю отключить звук ...).

Когда обнаружение столкновения не удается, нечего отталкивать от силы тяжести, поэтому вы падаете. Так же, как ходить со скалы.

Это не совсем "исправлено". Есть способы избежать этого, но в основном это просто лучшие инструменты и инструменты создания геометрии для ландшафта, поэтому эти аномалии не представлены.

MichaelHouse
источник
5

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

Исходя из этого, я совершенно уверен, что выпадение из мира не было устранено, обязательно.

Наличие нескольких масштабных игровых движков (Unreal, CryEngine и т. Д.) Может привести к менее непредвиденным проблемам из-за того, что над этими движками постоянно работают. Тем не менее, ничто не мешает разработчику добавлять новые функции / интересные изменения в среду, которые могут позволить срывать мир даже в самом проработанном игровом движке.

РЕДАКТИРОВАТЬ: 1. Основные причины этого, насколько я знаю, связаны с тем фактом, что игровые движки, которые допускают это, имеют ограниченный метод определения, движется ли игрок неправильно. Более ранние игровые движки, вероятно, имели больше проблем с этим, потому что наземный самолет часто был просто самолетом. Если бы игрок находился в указанном самолете, он бы не упал. Если по какой-либо причине его вертикальное положение немного снизится, он упадет навсегда. Почти то, что вы говорите о вычислениях с плавающей запятой. Поскольку двигатели могут позволить себе быть более надежным и проверять, не находится ли игрок в целой РЕГИОНЕ, которая была запрещена, инициирование ошибки будет менее вероятным.

SWPhantom
источник
1
Да, вычисления с плавающей точкой могут легко вызвать это, если не было достаточного буфера или если символ был представлен как точка. +1
MichaelHouse
5

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

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

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

Адам
источник