15
\$\begingroup\$

A lot of early 3D games had the problem where you'd be trundling merrily along and suddenly everything was black, with an island of what looked like the hollow facade shell of the scene you'd been walking through rising into the distance above. Because you'd fallen out of the world. I remember this being a particular and long-standing problem for Bethesda Softworks, though they certainly weren't alone. It's been a while since I've seen it in the wild, so it seems we've gotten past it. My question is two-part:

1) What was the cause, or causes, of this? (My guess is that it's to do with floating-point-precision related seams between polygons, interacting with point-modeled character position, i.e. floor chunk A ends at position 1.0, floor chunk B starts at position 0.9998 and for a microsecond your position is 0.99992, and boom, you fall through the world. But that's just a guess.)

2) How did it get fixed?

\$\endgroup\$
3
  • \$\begingroup\$ Morrowind. Vivec. The memories... \$\endgroup\$ Commented Aug 8, 2013 at 10:02
  • 3
    \$\begingroup\$ Speaking of Bethesda and falling through the floor, here's an unfortunate NPC in skyrim. \$\endgroup\$
    – Chris
    Commented Aug 8, 2013 at 15:04
  • \$\begingroup\$ Always makes me think of Skate 3. \$\endgroup\$ Commented May 23, 2018 at 5:03

3 Answers 3

14
\$\begingroup\$

"Cracks" in the geometry mostly. These games have a few things in common, they have gravity and they have collision detection.

These anomalies are locations where the collision detection failed in some way. It could have been sharp edges, gaps or a number of other geometry anomalies. Could even been issues with time steps in the physics engine, where the updates desynced and the character was allowed to fall through perfectly good geometry.

This is common when the player does something that wasn't expected by the level designers. Jumping up onto some place they're not supposed to be, or somehow surviving a fall they weren't supposed to. Or, when the player uses features in the game like teleporting or flying to get to places the level designers didn't think players could get to. As recently as Skyrim (video: falling out of the world at 11:25 I suggest muting the audio...).

When the collision detection fails, there's nothing to push back from gravity, so you fall. Just like walking off a cliff.

It's not really "fixed". There are techniques to avoid this, but it's mostly just better tools and geometry creation tools for landscape so these anomalies aren't introduced.

\$\endgroup\$
0
5
\$\begingroup\$

I think it's not possible to say that there is one particular reason why clipping through the world happens. Due to the differences in game engines/ physics procedures between games, any number of reasons can lead to this.

Stemming off this, I'm quite sure that falling out of the world has not been eliminated, necessarily.

Having a few large-scale game engines (Unreal, CryEngine, etc) can lead to less unforseen issues due to the fact that said engines are constantly being worked on. However, there is nothing that stops a developer from adding features/interesting changes to environment that may let world-clipping happen even in the most worked-on game engine.

EDIT: 1. The underlying causes of this, as far as I know, have to do with the fact that game engines that allow for this to happen have a limited method of detecting whether a player is moving wrongly. Earlier game engines probably had more issues with this because the ground plane was frequently just that- a plane. If a player was on said plane, he would not go down. If, for whatever reason, his vertical location went below by a little bit, then he would fall forever. Pretty much what you're saying in regards to floating point calculations. As engines could afford to be more robust and check if a player was in a whole REGION that was off-limits, triggering the error would be less likely.

\$\endgroup\$
1
  • 1
    \$\begingroup\$ Yep, floating point calculations could easily cause this if there wasn't sufficient buffer or if the character was represented as a point. +1 \$\endgroup\$
    – House
    Commented Aug 7, 2013 at 20:36
5
\$\begingroup\$

My guess would be that older engines probably used a quick and simple ray vs triangle test to detect collision with the geometry. That means even the tiniest gap (or a precision error in the calculations) could let the player through occasionally.

More modern games will probably use a more expensive test with a sphere or capsule representing the player, and that simply won't fit through small gaps. Many modern games will also use well tested physics middleware for the purpose instead of writing their own tests.

A large time step in the physics update can definitely be blamed in some cases too. I seem to remember that in at least one of the Elite games you could fly right through a planet in some cases because of that. This is fixable by using continuous collision detection which also costs extra CPU time.

\$\endgroup\$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .