Logo of the project
Réalisé en
2025
Mars Mechanica
Autre
Mars Mechanica est un projet scolaire réalisé en Rust qui a pour but de simuler un essaim de robots sur une planète Mars.
Période
Mars 2025 - Avril 2025

Description

Mars Mechanica est un projet que j’ai réalisé dans le cadre du cours Rust & WebAssembly à l’Efrei. L’objectif était de développer un programme simulant un essaim de robots sur la planète Mars, chaque robot ayant un rôle spécifique au sein de la colonie.

Pour la réalisation, l’utilisation de la bibliothèque Ratatui nous était suggérée, mais le professeur nous laissait la liberté d’explorer d’autres outils, notamment Bevy. Étant donné que cela faisait un moment que je souhaitais développer un projet en Rust, utiliser le moteur de jeu Bevy m’a paru être le meilleur choix.

Cependant, cela n’a pas été de tout repos. En effet, n’ayant jamais programmé en Rust auparavant, les débuts ont été particulièrement difficiles. De plus, le manque de documentation sur Bevy a considérablement compliqué le développement. Les différentes versions du framework/moteur de jeu étant souvent incompatibles entre elles, la majorité des ressources disponibles en ligne n’étaient pas directement exploitables.

Malgré les difficultés rencontrées, j’ai pris beaucoup de plaisir à travailler sur ce projet. Il s’agit de ma première véritable expérience en Rust. Même si le projet est encore loin d’être terminé, je suis assez satisfait du résultat obtenu. J’ai notamment pu développer quelques outils de débogage, inspirés d’imgui (qui n’était pas compatible avec la version de Bevy utilisée).

Au final, j’aurai consacré près de 53 heures à ce projet. Pas si mal pour un projet scolaire. 😉

Fonctionnalités clés

Rich presence Discord

Le projet se connecte à l'API de Discord afin d'afficher le jeu dans notre profile en tant qu'activité courante.

Interface de debug

On ne dirait pas comme ça mais ça m'a pris un temps fou à faire. 😂

Technologies utilisées

Rust icon
Rust
Langage de programmation
Bevy icon
Bevy
Moteur de jeu conçu en Rust.

Vidéos

Démonstration de l'algorithme de déplacement

Démonstration de l'algorithme de déplacement

Concept d'introduction (non utilisé)

Concept d'introduction (non utilisé)

Démonstration complète

Démonstration complète

Capture d'écrans

Mode debug des cellules découvertes
Mode debug
Capture d'écran
Démonstration pendant le développement 1
Démonstration pendant le développement  de l'algorithme de placement des blocs
Démonstration pendant le développement 2
Démonstration pendant le développement 3
2025 - Sofiane Lasri-Trienpont, développé sur Laravel.