Game Physics and Statistics

Todos elementos de gameplay dentro do jogo terão algum componente de física.

A física é utilizada para a movimentação de objetos dinâmicos dentro do jogo e detecção de colisões. Para a implementação será utilizado a física integrada na unity e o character controller para movimentação dos personagens.

Animações
Para a cena de vitória e quando o jogador está morto ou caindo, será utilizado o sistema de animação dinâmica chamado ragdoll que tem um aspecto bem desengonçado, deixando o jogo um pouco mais divertido. Para fazer a animação dinâmica ele utiliza o rigging do personagem para criar juntas e corpos rígidos separados para cada osso.

Movimentação
A movimentação é feita utilizando character controller e corpo rígido ou sem uso da física.

No character controller, nenhuma força pode ser aplicada a ele o que impossibilita fazer algo que mova o player como se fosse atingido por uma explosão. E também há dificuldade de fazer o character controller empurrar algo. Por conta disso, caso necessário, deve-se fazer uma implementação por cima disso para poder executar essas ações. O personagem e o Avião de Controle Remoto utilizam essa movimentação.

O corpo rígido é um corpo com colisores sólidos que sofre ação de forças externas. Ele é usado em quase todos os objetos que tenha algum movimento não controlado pelo player, como a bola de ping pong.

Nos casos que não se usa a física, é feito a manipulação da posição dos objetos por script. Tenha certeza que o objeto usando esse tipo de movimento não ira interpolar com outros objetos que não são controlados pela física. As Rochas andantes utilizam esse tipo de movimento.

Colisões
As colisões se separam em dois tipos: triggers e sólidos. Os sólidos são utilizados principalmente pelos corpos rígidos para fazer com que objetos não se interpolem. Por conta disso grande parte dos objetos que não envolvem a movimentação, utilizam o sistema de trigger. Todos os pickups utilizam do trigger para ver se há colisão com os players, mas ainda utilizam do colisor sólido para a movimentação deles.Há diversos tipos de geometria de colisores, dentro deles o mesh collider, que utiliza a geometria do mesh para fazer a colisão. Porem isso é pesado e pode gerar problemas, por isso ele só sera utilizado em casos específicos de cenário em que a geometria é complicada de mais para ser substituída por colisores de primitivas. Para o personagem são utilizados dois colisores de capsula. Para a movimentação será utilizado um solido vinculado ao Character Controller, indo do pé do personagem até a cabeça e tendo largura do corpo do player. Para a colisão com outros elementos de gameplay é utilizado um trigger que ocupa todo o volume do personagem enquanto está em pose de T.