O GGWars é um dos projetos mais ambiciosos do Guima Games Portal. Desenvolvido com uma arquitetura autoritativa em tempo real, ele suporta múltiplos modos de jogo na mesma infraestrutura de backend.
1. Física e Validação 100% Server-Side
Diferente de jogos casuais onde a movimentação é calculada no cliente, o GGWars adota estrita validação no servidor Node.js/Socket.IO:
- Tick Rate Constante: O loop do servidor roda a 60 FPS (60 ticks/segundo).
- Constantes Sincronizadas: Parâmetros como PLAYER_SPEED (120 px/s), BULLET_SPEED (720 px/s) e BULLET_DELAY (800ms) ficam no arquivo compartilhado do servidor. Alterações feitas no cliente são ignoradas pelo backend para impedir trapaças.
2. Arquitetura Multi-Modo via Room IDs
O mesmo servidor backend suporta diferentes tipos de arena de acordo com a sala criada (roomId):
- Modo Tanques (default-room): Arena de combate tático de tanques em 2D ou 3D.
- Modo Espacial Space Wars (space-room): Arena espacial 3D completa (client-wars) desenvolvida em Three.js.
3. O Modo Espacial Space Wars (client-wars)
No modo de naves espaciais 3D, a física muda radicalmente:
- Física Híbrida com Inércia Suave: A nave possui acelerador de turbina (thrust) e atenuação gradual de velocidade (auto-damping).
- Controles e Câmeras: O jogador usa W/S/A/D para propulsão e rotação de guinada (yaw), enquanto o movimento do mouse com pointer lock ajusta a arfagem (pitch). A tecla V alterna entre visão Chase (atrás da nave) e Cockpit (visão interna da cabine).
- Asteroides Destrutíveis: Disparar contra um asteroide faz com que ele se fragmente em pedaços menores com física de espalhamento de detritos e partículas de poeira.
4. Infraestrutura e Deploy no Google Cloud Run
O servidor do GGWars é containerizado com Docker e hospedado no Google Cloud Run na região southamerica-east1 (São Paulo), garantindo latências inferiores a 30ms para jogadores do Brasil. O script de CI/CD automatiza o build dos clientes Vite e sincroniza as variáveis de ambiente com o Firebase Hosting.
