Aller au contenu

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