Este projeto demonstra como construir um jogo arcade clássico do zero usando Godot 4.6 e C#, aproveitando ao máximo a API de desenho imediato (_Draw) e a geração de áudio procedural (AudioStreamGenerator).
Todo o jogo vive em um único script — Node2d.cs — sem dependências de assets externos.
| Recurso | Abordagem |
|---|---|
| Gráficos | _Draw() com DrawRect / DrawString — zero sprites |
| Áudio 8-bit | AudioStreamGenerator + síntese de onda quadrada em tempo real |
| Física da bola | Cálculo vetorial manual com aceleração progressiva |
| IA do CPU | Perseguição proporcional com limitação de velocidade |
| Renderer | GL Compatibility (roda em qualquer máquina) |
| Modo | Descrição |
|---|---|
| 1 Jogador | Você (J1) vs CPU |
| 2 Jogadores | Dois jogadores no mesmo teclado |
Primeiro a marcar 7 pontos vence.
| Ação | Tecla |
|---|---|
| J1 — mover para cima | W |
| J1 — mover para baixo | S |
| J2 — mover para cima | ↑ |
| J2 — mover para baixo | ↓ |
| Escolher 1 Jogador | 1 (na tela inicial) |
| Escolher 2 Jogadores | 2 (na tela inicial) |
| Iniciar / Reiniciar | Clique do mouse ou Espaço |
| Sair | ESC |
- Godot 4.6 (versão com suporte a .NET)
- .NET 8 SDK
# 1. Clone o repositório
git clone https://github.com/csharpbrasil/pong-godot.git
# 2. Abra o projeto no Godot
# File → Open Project → selecione a pasta src/
# 3. Pressione F5 para rodarDica: na primeira abertura, o Godot irá compilar o projeto C# automaticamente.
pong-godot/
├── src/
│ ├── Node2d.cs # Todo o código do jogo
│ ├── Main.tscn # Cena principal (só referencia o script)
│ ├── project.godot # Configurações do projeto
│ ├── Exemplo Godot.sln # Solução .NET
│ └── Exemplo Godot.csproj
└── README.md
MIT — use, modifique e compartilhe à vontade.