A fim de explorar simulações física na terceira dimensão será usada a ferramenta de desenvolvimento
Unity. Esta ferramenta gera executáveis para um enorme número de plataformas, como Windows, Linux, Flash, Android e iOS.
As principais vantagens desta ferramenta, além do que já foi dito anteriormente, são a facilidade de
deploy, a facilidade de desenvolvimento, a minha familiaridade com a ferramenta e grande comunidade bastante prestativa. Além de inúmeros livros sobre ela.
A facilidade de desenvolvimento vem da eficiente implementação de seus sistemas de simulação física de corpos rígidos e pipeline de
rendering. Além desses, a ferramenta possui um editor gráfico de níveis para que se possa montar os ambientes de maneira amigável usando o mouse e comandos como arrastar e soltar. Com isto, poderemos nos focar mais na parte do aprendizado e menos nos detalhes altamente técnicos que envolvem uma simulação e visualização de ambientes virtuais tridimensionais.
As linguagens de programação de script que ela aceita são a C#, boo (uma variação de python), unityscript (uma variação de javascript) que rodam em um ambiente
open source da plataforma .NET chamado
Mono. Dito isto, será utilizada a linguagem C#, novamente, pela familiaridade do autor do projeto com ela, além de ser a linguagem mais utilizada pela comunidade, o que facilita enormemente a busca por soluções de problemas de implementação.
Entre suas principais limitações atuais temos o fato de que ela ainda não exporta para HTML5, isto é, aparelhos móveis como
smartphones e
tablets não podem executar os aplicativos desenvolvidos a partir de um navegador, vale lembrar que estas plataformas são atendidas através da geração de
apps.
Outras ferramentas possuem característica semelhantes, como a
CryEngine e a
UnrealEngine. Porém estas ferramentas não oferecem o uso de linguagens de programação já conhecidas como javascript ou C# e acima de tudo possuem um valor elevado. A ferramenta escolhida possui versão gratuita com limitações (como o uso de sombras em tempo real) que não vão fazer diferença neste projeto.