Mécanique de Jeu¶
Architecture du gameplay R-Type.
Vue d'Ensemble¶
flowchart TB
subgraph Server
GW[GameWorld]
Physics[Physics]
Collision[Collision]
Spawner[Enemy Spawner]
end
subgraph Client
Input[Input]
Prediction[Prediction]
Render[Render]
end
Input -->|UDP| GW
GW --> Physics
Physics --> Collision
Spawner --> GW
GW -->|Snapshot| Prediction
Prediction --> Render
style GW fill:#7c3aed,color:#fff
Modèle Autoritatif¶
Le serveur est la source de vérité :
| Responsabilité | Serveur | Client |
|---|---|---|
| Position joueurs | ✅ Calcul | Prédiction |
| Spawn ennemis | ✅ Décision | Affichage |
| Collisions | ✅ Détection | - |
| Score | ✅ Calcul | Affichage |
| Inputs | Validation | ✅ Capture |
Boucle de Jeu (Serveur)¶
void GameWorld::tick() {
// 1. Process inputs
for (auto& player : players_) {
if (auto input = player.popInput()) {
processInput(player, *input);
}
}
// 2. Update physics
for (auto& entity : entities_) {
entity.position += entity.velocity * TICK_DURATION;
}
// 3. Spawn enemies
waveManager_.update(TICK_DURATION);
// 4. Check collisions
checkCollisions();
// 5. Remove dead entities
removeDeadEntities();
currentTick_++;
}
Documentation¶
🌍 GameWorld
Serveur autoritatif
👾 Entités
Joueurs, ennemis, missiles
💥 Collisions
Système AABB
🔮 Prédiction
Client-side prediction
⚔️ Combat
Degats, HP, equilibrage
🎮 R-Type
Wave Cannon, Force Pod, Power-ups
🤖 IA Ennemie
Difficulte adaptative