Recentemente, mudei meu mecanismo de jogo dos comportamentos de direção para o movimento baseado em impulsos com uma resolução de colisão adequada com base no tempo. Isso resolveu muitos problemas (sem mais túneis, sim) e tornou a simulação muito mais estável. No entanto, com a estabilidade, surgiu um novo problema.
As três bolas começaram sua jornada perto da parte inferior da imagem, seu alvo era onde a bola rosa parou. No caminho, as bolas vermelhas e verdes ficaram presas no ponto de estrangulamento na parede.
Antes, eu podia confiar em erros de ponto flutuante e na instabilidade geral dos comportamentos de direcionamento para fazer as bolas verdes e vermelhas baterem umas nas outras até conseguirem passar pelo ponto de estrangulamento. Agora, com uma resolução de colisão adequada, as forças que atuam sobre as bolas se cancelam, o que resulta nas bolas permanecendo perfeitamente paradas.
Quais métodos são comumente usados para resolver essas situações? Talvez algum tipo de sistema de enfileiramento prioritário funcione, embora eu possa vê-lo se tornar complexo quando precisar decidir a prioridade entre mais de 2 objetos.