Atualmente, estou escrevendo um pequeno mecanismo de jogo 2D baseado em OpenGL de plataforma cruzada para o nosso estúdio. Quando pesquisei qual classe de vetor 2D usar, me deparei com três paradigmas de design diferentes:
Flutuar e chamar por valor, como neste artigo do Gamasutra . Parece ser rápido, mas oferece pouca precisão (consulte também este tópico ). Pro: Rápido, portátil e compatível com a maioria das bibliotecas.
Duplo e Chamada por Referência. Se eu entendi direito o artigo acima, também poderia usar 2 variáveis de precisão dupla em vez dos 4 números flutuantes. De acordo com o segmento acima, o duplo ainda é mais lento que o flutuador.
Modelo para double e float: o livro amplamente popular " Game Engine Architecture " usa modelos para possibilitar o uso de float e double conforme necessário. A desvantagem óbvia é o inchaço do código. Além disso, duvido que o código possa ser otimizado sem basicamente escrever duas classes.
Gostaria de saber quais são as soluções que você está usando em seus mecanismos internos e quão precisas, por exemplo, os mecanismos de jogos populares são, para que eu possa decidir qual solução implementarei em nosso mecanismo. No momento, estou pensando em simplesmente usar a precisão de flutuação e conviver com ela.