O que causou "cair fora do mundo" e o que o corrigiu?

14

Muitos dos primeiros jogos em 3D tiveram o problema de que você andaria alegremente e de repente tudo estava preto, com uma ilha que parecia a concha oca da fachada pela qual você andava subindo na distância acima. Porque você caiu do mundo. Lembro que esse é um problema particular e de longa data para a Bethesda Softworks, embora eles certamente não estivessem sozinhos. Já faz um tempo desde que eu o vi na natureza, então parece que passamos por isso. Minha pergunta é em duas partes:

1) Qual foi a causa, ou causas, disso? (Meu palpite é que isso tem a ver com costuras relacionadas à precisão de ponto flutuante entre polígonos, interagindo com a posição do personagem modelado em pontos, ou seja, o pedaço de piso A termina na posição 1.0, o pedaço de piso B começa na posição 0,9998 e, por um microssegundo, sua posição é 0,99992, e boom, você cai pelo mundo. Mas isso é apenas um palpite.)

2) Como foi consertado?

caos
fonte
Morrowind. Vivec. As memórias ...
Tobias KIENZLER
3
Falando em Bethesda e caindo no chão, aqui está um NPC infeliz em skyrim .
8283 Chris
Sempre me faz pensar no Skate 3 .
User1118321

Respostas:

14

"Rachaduras" na geometria principalmente. Esses jogos têm algumas coisas em comum, gravidade e detecção de colisão.

Essas anomalias são locais onde a detecção de colisão falhou de alguma forma. Pode ter sido arestas vivas, lacunas ou várias outras anomalias de geometria. Pode até haver problemas com as etapas do tempo no mecanismo de física, onde as atualizações foram dessincronizadas e o personagem foi deixado cair perfeitamente em uma geometria perfeitamente boa.

Isso é comum quando o jogador faz algo que não era esperado pelos projetistas de nível. Saltando para algum lugar que não deveriam estar, ou de alguma forma sobrevivendo a uma queda que não deveriam. Ou, quando o jogador usa recursos do jogo, como teleportar ou voar para chegar a lugares que os projetistas de nível não pensavam que os jogadores poderiam chegar. Tão recentemente quanto Skyrim ( vídeo: caindo do mundo às 11:25 , sugiro silenciar o áudio ...).

Quando a detecção de colisão falha, não há nada para afastar da gravidade, então você cai. Assim como andar de um penhasco.

Não é realmente "fixo". Existem técnicas para evitar isso, mas na maioria das vezes são apenas melhores ferramentas e ferramentas de criação de geometria para paisagem, para que essas anomalias não sejam introduzidas.

MichaelHouse
fonte
5

Eu acho que não é possível dizer que existe uma razão específica para que o clipe do mundo aconteça. Devido às diferenças nos mecanismos de jogo / procedimentos físicos entre os jogos, várias razões podem levar a isso.

Para evitar isso, tenho certeza de que cair fora do mundo não foi eliminado, necessariamente.

Ter alguns mecanismos de jogo em larga escala (Unreal, CryEngine etc.) pode levar a problemas menos imprevistos, devido ao fato de que esses mecanismos estão sendo constantemente trabalhados. No entanto, não há nada que impeça um desenvolvedor de adicionar recursos / mudanças interessantes no ambiente que possam permitir que o mundo ocorra mesmo no mecanismo de jogo mais trabalhado.

EDIT: 1. As causas subjacentes a isso, tanto quanto eu sei, têm a ver com o fato de que os mecanismos de jogos que permitem que isso aconteça tenham um método limitado de detectar se um jogador está se movendo incorretamente. Motores de jogos anteriores provavelmente tiveram mais problemas com isso porque o plano de terra era frequentemente apenas isso - um avião. Se um jogador estivesse no referido avião, ele não cairia. Se, por qualquer motivo, sua localização vertical diminuísse um pouco, ele cairia para sempre. Praticamente o que você está dizendo em relação aos cálculos de ponto flutuante. Como os motores poderiam se dar ao luxo de ser mais robustos e verificar se um jogador estava em uma REGIÃO inteira fora dos limites, desencadear o erro seria menos provável.

SWPhantom
fonte
1
Sim, os cálculos de ponto flutuante poderiam facilmente causar isso se não houvesse buffer suficiente ou se o caractere fosse representado como um ponto. +1
MichaelHouse
5

Meu palpite seria que os motores mais antigos provavelmente usaram um teste rápido e simples de raio x triângulo para detectar colisão com a geometria. Isso significa que mesmo o menor espaço (ou um erro de precisão nos cálculos) pode deixar o jogador passar ocasionalmente.

Jogos mais modernos provavelmente usarão um teste mais caro com uma esfera ou cápsula representando o jogador, e isso simplesmente não se encaixará em pequenas lacunas. Muitos jogos modernos também usam middleware de física bem testado para esse fim, em vez de escrever seus próprios testes.

Um grande passo na atualização física também pode ser responsabilizado em alguns casos. Parece que me lembro que em pelo menos um dos jogos da Elite você poderia voar através de um planeta em alguns casos por causa disso. Isso é corrigível usando a detecção contínua de colisões, que também custa tempo extra da CPU.

Adão
fonte