Existe um bom ponto de partida para a física realista dos carros de corrida 2D?
Estou tentando colocar um carro de corrida realista no meu jogo 2D de cima para baixo.
Fazer um carro muito simples que circule é direto, mas eu quero um modelo razoavelmente sofisticado que modele bem as leis de Newton e as forças no carro e resulte em algo ótimo.
Pesquisei na Web um bom tutorial sobre como fazer isso, mas não parece haver muito código de exemplo por aí.
Eu segui este tutorial http://www.gamedev.net/topic/470497-2d-car-physics-tutorial/ que foi muito bom e parece ser um bom ponto de partida, mas se você jogar com a demonstração incluída, poderá ver ainda tem um bom caminho a percorrer antes de ser um carro de corrida convincente.
Ouvi dizer que alguns motores de jogos em 3D como o Unity vêm com um bom modelo de veículo de partida pronto para uso. Existe algo assim por aí para 2D?
Só quero ter certeza de que não estou perdendo um ótimo ponto de partida 2D existente, que eu não conheço antes de gastar muito tempo lendo e descobrindo todas as forças corretas, etc, necessárias para construir o meu a partir do zero.
Este artigo parece descrever tudo o que você precisa: http://www.asawicki.info/Mirror/Car%20Physics%20for%20Games/Car%20Physics%20for%20Games.html, mas infelizmente os links do código-fonte estão quebrados.
— TerryB
Isso começou como um comentário, mas ficou muito tempo. :)
Se por "realista", você quer dizer incluindo a transferência de peso para trás / frente ou esquerda / direita ao acelerar / frear / virar, você precisa de um modelo em 3D para o carro (já que haverá forças e rotação em torno de três eixos), até se for executado em uma superfície 2d plana. Assim, o uso de um modelo 3d pode ser a única maneira de obter o que você precisa e você pode emprestar / roubar algum código existente (mas simplificar o cálculo da distância entre a roda e a superfície da estrada).
Se você não precisar disso, algum newton básico + um modelo de atrito estático / dinâmico para cada roda com base em seu ângulo de deslizamento (ou seja, o ângulo da roda em relação à sua direção de deslocamento) deve ser suficiente. Há muita informação nos livros de condução de carros de corrida sobre isso. (A força lateral máxima geralmente é de 3 a 6 graus de deslizamento, mas isso varia dependendo da mancha versus da rosca e da superfície (asfalto, cimento, cascalho, etc.))
Existem alguns motores de física da GPL, que podem funcionar para você. Não consigo encontrar o que estava procurando, mas http://vdrift.net/ parece que pode ser um bom começo. Acho que eu usaria um mecanismo de física 3d mesmo para um jogo 2D - presumivelmente você vai querer saltos e assim por diante, mesmo que sejam mostrados apenas ao escalar o carro.
— SimonW
Box2D é um mecanismo de física 2D bastante popular. Ele não possui um modelo de corrida embutido, mas parece ser um sólido mecanismo de física de uso geral, portanto você não precisará se preocupar com os detalhes da mecânica básica do corpo rígido, colisão, atrito ou restrições.
Oi Nathan, sim, parece uma boa ideia usar o box2d ou o farseer etc para ajudar com essas coisas. Acho que a parte complicada que sinto falta é saber como aplicar todas as forças necessárias para que se comporte como um grande carro de corrida. As fórmulas estão todas lá fora, mas surpreso que eu não tenha encontrado algo que já seja mais do que o caminho, dada a frequência com que esse problema foi resolvido.