Co spowodowało „wypadnięcie ze świata” i co go naprawiło?


15

Wiele wczesnych gier 3D miało problem polegający na tym, że wesoło krążysz i nagle wszystko stało się czarne, a wyspa, która wyglądała jak pusta fasada fasady sceny, przez którą przechodziłeś, wznosiła się w oddali. Ponieważ wypadłeś ze świata. Pamiętam, że był to szczególny i długotrwały problem dla Bethesda Softworks, choć z pewnością nie byli sami. Minęło trochę czasu, odkąd widziałem to na wolności, więc wydaje się, że minęliśmy. Moje pytanie składa się z dwóch części:

1) Jaka była tego przyczyna lub przyczyny? (Domyślam się, że ma to związek ze szewami związanymi z precyzją zmiennoprzecinkową między wielokątami, oddziałując z pozycją postaci modelowanej punktowo, tj. Fragment podłogi A kończy się w pozycji 1.0, fragment podłogi B zaczyna się w pozycji 0.9998, a dla mikrosekundy twoja pozycja to 0.99992, i bum, spadasz przez świat. Ale to tylko przypuszczenie.)

2) Jak to naprawiono?


Morrowind. Vivek. Wspomnienia ...
Tobias Kienzler,

3
Mówiąc o Bethesdzie i upadku na podłogę, oto niefortunny NPC w skyrim .
Chris,

Zawsze przywodzi mi na myśl Skate 3 .
user1118321

Odpowiedzi:


14

„Pęknięcia” głównie w geometrii. Te gry mają kilka cech wspólnych, grawitację i wykrywanie kolizji.

Anomalie te to lokalizacje, w których wykrycie kolizji nie powiodło się w jakiś sposób. Mogą to być ostre krawędzie, luki lub szereg innych anomalii geometrycznych. Mogą nawet występować problemy z przedziałami czasowymi w silniku fizyki, w którym aktualizacje uległy desynchronizacji, a postać mogła przejść przez idealnie dobrą geometrię.

Jest to powszechne, gdy gracz robi coś, czego nie oczekiwali projektanci poziomów. Wskakując na miejsce, w którym nie powinny być, lub jakoś przeżyły upadek, którego nie powinny. Lub, gdy gracz korzysta z funkcji w grze, takich jak teleportacja lub latanie, aby dostać się do miejsc, w których projektanci poziomów nie sądzili, że gracze mogą do nich dotrzeć. Jeszcze jako Skyrim ( wideo: wypadanie ze świata o 11:25 sugeruję wyciszenie dźwięku ...).

Kiedy wykrywanie kolizji nie powiedzie się, nie ma nic, co mogłoby odepchnąć się od grawitacji, więc upadłeś. Zupełnie jak zejście z klifu.

To nie jest tak naprawdę „naprawione”. Istnieją techniki pozwalające tego uniknąć, ale w większości są to po prostu lepsze narzędzia i narzędzia do tworzenia geometrii dla krajobrazu, więc anomalie te nie są wprowadzane.


5

Myślę, że nie można powiedzieć, że istnieje jeden szczególny powód, dla którego dzieje się przecinanie świata. Ze względu na różnice w silnikach gier / procedurach fizycznych między grami może to prowadzić do wielu przyczyn.

Odpowiadając na to, jestem całkiem pewien, że wypadnięcie ze świata nie zostało wyeliminowane, koniecznie.

Posiadanie kilku dużych silników gier (Unreal, CryEngine itp.) Może prowadzić do mniej nieprzewidzianych problemów z uwagi na fakt, że wspomniane silniki są nieustannie rozwijane. Jednak nic nie stoi na przeszkodzie, aby deweloper dodał funkcje / ciekawe zmiany w środowisku, które mogą pozwolić na obcinanie świata nawet w najbardziej pracującym silniku gry.

EDYCJA: 1. Przyczyny tego, o ile mi wiadomo, mają związek z faktem, że silniki gier, które to umożliwiają, mają ograniczoną metodę wykrywania, czy gracz porusza się nieprawidłowo. Wcześniej silniki gry prawdopodobnie miały z tym więcej problemów, ponieważ płaszczyzna naziemna często była właśnie tym samolotem. Jeśli gracz był w tym samolocie, nie upadłby. Jeśli z jakiegoś powodu jego położenie pionowe spadnie nieco poniżej, upadnie na zawsze. Prawie to, co mówisz w odniesieniu do obliczeń zmiennoprzecinkowych. Ponieważ silniki byłyby w stanie być bardziej niezawodne i sprawdzić, czy gracz znajduje się w całym REGIONIE, który jest poza limitem, uruchomienie błędu byłoby mniej prawdopodobne.


1
Tak, obliczenia zmiennoprzecinkowe mogą z łatwością spowodować to, jeśli nie ma wystarczającej ilości bufora lub jeśli postać jest reprezentowana jako punkt. +1
MichaelHouse

5

Domyślam się, że starsze silniki prawdopodobnie zastosowały szybki i prosty test promień kontra trójkąt, aby wykryć kolizję z geometrią. Oznacza to, że nawet najmniejsza luka (lub błąd precyzji w obliczeniach) może czasami przepuścić gracza.

Bardziej nowoczesne gry prawdopodobnie wykorzystają droższy test z kulą lub kapsułką reprezentującą gracza, a to po prostu nie mieści się w małych lukach. Wiele nowoczesnych gier będzie używać do tego celu dobrze przetestowanego oprogramowania pośredniego, zamiast pisać własne testy.

W niektórych przypadkach zdecydowanie można winić duży krok w aktualizacji fizyki. Wydaje mi się, że pamiętam, że w co najmniej jednej z elitarnych gier w niektórych przypadkach można było przelecieć przez planetę. Można to naprawić za pomocą ciągłego wykrywania kolizji, co również kosztuje dodatkowy czas procesora.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.