
RoadMania : Génération procédurale
Quel est le commanditaire du projet ?
Le commanditaire du projet est un client souhaitant avoir un jeu où il puisse y jouer sans jamais s’arrêter. Actif sur les démarches éco-responsable, le jeu a dû être développé en suivant les notions du numérique responsable.
Quelle est la demande de départ ?
La demande initiale consiste à enrichir un projet existant avec de nouvelles fonctionnalités. Ce projet a été développé auparavant lors de ma deuxième année de BUT Informatique appliquée à l’imagerie numérique.
Quelles sont les grandes lignes du cahier des charges ?
Le projet inclut la création d'un mode de jeu Chrono permettant l'enregistrement des scores des joueurs ainsi que l'affichage d'un fantôme pour améliorer l'expérience compétitive. Des obstacles variés ont été ajoutés, offrant des effets bonus ou malus pour enrichir le gameplay. Plusieurs niveaux de difficulté équilibrés ont été mis en place afin de s'adapter aux compétences des joueurs. De plus, les performances du jeu ont été optimisées grâce à l'utilisation de la technique LOD (Level of Details), garantissant une fluidité accrue. Enfin, une fonctionnalité de changement de caméra a été intégrée, permettant de basculer entre une vue à la première personne et une vue à la troisième personne, offrant ainsi une expérience immersive et personnalisée.
Capture d'écran des scores d'un joueur dans RoadMania

Quels sont les ambitions ? Les objectifs du projet ?
Le projet vise à développer un jeu qui soit à la fois amusant et techniquement solide. L'objectif est de créer un gameplay équilibré et fluide, tout en optimisant les performances pour offrir une expérience utilisateur agréable et s’inscrire dans une démarche de numérique responsable. Pour cela, des techniques avancées telles que les ScriptableObjects, les événements Unity et les LOD (Level of Details) seront utilisées. En parallèle, ce projet permettra de renforcer des compétences clés, notamment en programmation, en gestion de projet et en travail d'équipe, tout en favorisant une approche méthodique et collaborative.
Vous avez des procé-quoi ?
En programmation et en développement de jeux vidéo, le terme "procédural" fait référence à une méthode ou un processus qui génère des éléments ou des données de manière algorithmique, souvent de façon dynamique et automatisée, plutôt que de les créer manuellement. Par exemple, dans un contexte de jeu vidéo, la génération procédurale peut être utilisée pour créer des niveaux, des terrains, des objets ou des événements en fonction d'algorithmes, ce qui permet de produire des contenus variés et uniques à chaque exécution du programme. Cela est particulièrement utile pour réduire le temps de création manuelle et pour offrir une expérience renouvelée aux joueurs.
Étapes de réalisation
1. Mode Chrono
- L'enregistrement des trois meilleurs scores à l'aide de PlayerPrefs.
- L'enregistrement des positions du véhicule pour afficher un fantôme représentant le meilleur score.
- L'interpolation des positions pour garantir une fluidité optimale lors de l'affichage du fantôme.
2. Obstacles et actions
- Des obstacles seront ajoutés pour enrichir le gameplay. Ils auront des effets bonus ou malus sur le joueur, comme une augmentation ou une réduction de la vitesse. Ces effets seront gérés via un GameManager et des événements Unity. Un manager sonore pourra également être intégré pour améliorer l'immersion.
3. Niveaux de difficulté
- Deux niveaux de difficulté seront proposés, avec des paramètres ajustables comme la vitesse, la largeur de la route, et le nombre d'obstacles. Les paramètres seront définis à l'aide de ScriptableObjects pour permettre une gestion facile et rapide. Une interface utilisateur sera créée pour permettre au joueur de choisir le niveau de difficulté.
4. Optimisation avec LOD
- Pour améliorer les performances, deux obstacles avec plusieurs niveaux de détails seront ajoutés. Le composant LOD Group sera utilisé pour ajuster automatiquement le niveau de détail en fonction de la distance par rapport à la caméra. Une option permettra d'activer ou de désactiver les LOD en fonction des priorités (rendu ou FPS).
- Le numérique responsable est un axe fortement mis en avant par le BUT Informatique appliquée à l’imagerie numérique dans lequel j’étudie et de mon IUT. Il s'agit d'une démarche visant à réduire l'empreinte écologique de nos projets. Il englobe des principes éthiques et environnementaux pour limiter les impacts négatifs du numérique sur l’environnement. Cela passe par des choix technologiques, une sensibilisation aux enjeux environnementaux et une utilisation raisonnée des outils numériques. Enfin, le Green IT, est une partie intégrante du numérique responsable. Il se base sur la réduction de l'empreinte écologique des logiciels, notamment en optimisant les performances et la consommation énergétique.
5. Changement de caméra
- Deux modes de caméra seront proposés : un mode 1er personne et un mode 3ème personne. Le joueur pourra basculer entre ces modes en appuyant sur une touche. Une transition progressive entre les deux positions sera implémentée pour améliorer l'expérience utilisateur.

Capture d'écran du mode chrono dans RoadMania
Technologies, outils et langages utilisés
Compétences techniques, transversales, humains développées avec RoadMania
| Compétences techniques | Compétences transversales | Compétences humaines |
|---|---|---|
| Ce projet renforce la maîtrise de Unity et du langage C#, notamment à travers l'utilisation de fonctionnalités avancées comme les ScriptableObjects, les événements, et les optimisations via LOD. Il permet également de développer des compétences en manipulation de données persistantes grâce à la gestion de l'enregistrement et du chargement de données avec JSON. | Une approche méthodique est encouragée, avec une attention particulière portée à la qualité du code, à l'équilibrage du gameplay et à l'optimisation des performances, des aspects essentiels pour garantir un projet abouti. | Le travail en groupe favorise la collaboration, la communication et la gestion de projet, des compétences clés pour réussir dans un environnement collectif et structuré. |
Conclusion
En conclusion, ce projet m'a permis de réfléchir à l'importance de l'optimisation dans le développement de jeux vidéo, non seulement pour améliorer l'expérience utilisateur, mais aussi dans une perspective de numérique responsable. L'optimisation, à travers des techniques comme les LOD ou la gestion efficace des données avec JSON, réduit la consommation de ressources matérielles et énergétiques, ce qui est essentiel dans un contexte où l'impact environnemental du numérique devient une préoccupation majeure. Selon moi, l'optimisation constitue une véritable porte d'entrée vers un numérique plus responsable, en permettant de concevoir des applications performantes tout en limitant leur empreinte écologique. Ce projet m'a ainsi sensibilisé à l'importance de développer des solutions techniques qui allient efficacité et durabilité.

