Projet VR "Sauvons Mars" : L'Interaction au service de la Simulation
Jeu de Gestion et de Simulation en Réalité Virtuelle
Contexte du Projet
Scénario : En 2137, la Terre est submergée par ses propres déchets. Dans un acte désespéré, le gouvernement planétaire les envoie sur Mars. Cinquante ans plus tard, l'humanité a quitté sa planète d'origine et votre mission est de réparer les erreurs du passé : nettoyer Mars pour en faire le nouveau berceau de l'humanité.
"Sauvons Mars" est un jeu qui utilise ce scénario pour sensibiliser aux enjeux écologiques. L'objectif était d'exploiter les forces de la VR — l'immersion et l'interaction directe — pour créer une expérience où le joueur devient acteur de la dépollution.
Démonstration Vidéo
Note : La capture vidéo peut présenter quelques saccades dues à la charge de l'enregistrement, non présentes dans l'expérience de jeu réelle.
Un Gameplay Bâti sur l'Interaction VR
Plutôt que de reposer sur des clics de souris, le gameplay a été entièrement pensé autour d'interactions physiques et intuitives.
- Interaction Physique Directe : Le cœur du jeu est la manipulation. Le joueur doit :
- Activer les machines en appuyant physiquement sur des boutons 3D.
- Saisir les déchets qui défilent avec ses mains virtuelles (XR Grab Interactable).
- Trier activement en jetant chaque déchet dans la bonne poubelle.
- Gestion Stratégique via Interface Diégétique : La complexité du jeu est gérée via un grand écran de contrôle intégré à l'environnement, où le joueur peut consulter son inventaire, acheter des machines et améliorer ses équipements.
- Un Monde Réactif et Guidé : Le feedback est essentiel. Des sons immersifs, des jingles de succès et des indicateurs visuels clairs (boutons qui changent de couleur) guident et récompensent le joueur.
Galerie d'Images



Ma Contribution : Architecture de l'UI et Logique de Jeu
Mon rôle s'est articulé autour de l'architecture complète de l'interface utilisateur et de la logique de jeu sous-jacente. J'ai conçu l'écran de contrôle non pas comme un menu, mais comme une pièce maîtresse interactive.
Techniquement, j'ai résolu le défi de la lisibilité en VR en adoptant TextMeshPro. Une étape cruciale fut la résolution d'un bug d'interaction : une première version de l'UI bloquait le `raycast` du contrôleur. J'ai pris la décision de retirer les `UI Panels` problématiques pour garantir une fonctionnalité parfaite, un arbitrage essentiel en développement. Cette expérience a souligné l'importance de construire l'UI sur un "XR UI Canvas" avec un Tracked Device Graphic Raycaster.


Extraits de Code C#
1. Gestion de la Progression Exponentielle
Pour rendre les améliorations significatives, leur coût et leur rendement suivent une progression exponentielle.
// Dans Ecran.cs
private int ProductionAmount(int level)
{
// La production double à chaque niveau : 1, 2, 4, 8...
return (int)Mathf.Pow(2, level - 1);
}
private int MachineEnergyConsumption(int level)
{
// La consommation suit la même courbe
return 5 * (int)Mathf.Pow(2, level - 1);
}
2. Production Asynchrone avec les Coroutines
Chaque machine produit des ressources de manière asynchrone sans bloquer le jeu, grâce à une coroutine.
// Dans Ecran.cs - Méthode d'amélioration
private void UpgradeMachine1()
{
// ... (vérification des ressources)
// Redémarrer la coroutine est crucial pour mettre à jour la vitesse
if (produceMachine1Coroutine != null)
StopCoroutine(produceMachine1Coroutine);
produceMachine1Coroutine = StartCoroutine(ProducePlastic());
}
Potentielles Améliorations
- Intégrer un système de feedback haptique pour sentir les interactions.
- Développer des interactions plus complexes pour les machines, avec des mini-jeux de maintenance.
- Ajouter des effets de particules lors du recyclage pour un meilleur feedback visuel.
- Implémenter un système de sauvegarde de la progression du joueur.