Tech
16 octobre 2023
logo Rust
Langage Rust : Rémi à la découverte des « alt.ctrl game » à l’EuroRust 2023 !

Rémi évoque l’évènement EuroRust 2023 auquel il a participé. Il revient sur cet évènement dédié à la communauté européenne de Rust et ce qui a retenu son attention.

Rémi, quelles sont tes missions chez Sully ?

Je suis développeur à Lyon, chez notre client BEDROCK, plateforme de streaming utilisée en particulier par 6play et RTL.

Pourquoi t’es-tu intéressé au langage Rust ?

BEDROCK a évalué la pertinence de passer de PHP à RUST pour ses applications. Cela m’a rendu curieux de ce langage, et j’ai décidé de m’y intéresser par moi-même.

Peux-tu nous présenter ce langage ?

Rust est un langage de programmation puissant et moderne initialement développé par Mozilla et désormais open source. 
La gestion de la mémoire, son approche multiparadigmes et les garanties de sécurité qu'offre le compilateur sont ses principaux atouts. C’est un langage idéal pour la programmation système, mais on le retrouve aussi dans l’embarqué et sur le web. Une partie du noyau de Windows a même récemment été réécrite en Rust, démontrant ainsi un intérêt croissant pour ce langage dans le monde du développement. 
Sa communauté est très active et continue de s’agrandir d’année en année, elle est passée de 600 000 utilisateurs début 2020 à plus de 2 millions début 2022. La Rust Foundation compte parmi ses membres des entreprises telles qu’Amazon, Google ou encore Microsoft. 
 

Et tu as donc décidé de participer au salon EuroRust les 10 et 11 octobre derniers…

Oui ! 
EuroRust 2023 était la2ᵉe édition de l’évènement, ayant pour objectif de réunir la communauté européenne Rust autour de conférences, pendant 2 jours.
Cette année, les sujets étaient très variés :

  • retours d'expériences en entreprise ;
  • programmation d’un BIOS ;
  • publication des bibliothèques ;
  • Rust et WebAssembly ;
  • discussions sur la communauté Rust…
Quelles sont les présentations qui t’ont marqué ?

Parmi les présentations qui m’ont particulièrement intéressé, il y a notamment celle de Lisa Passing, connue sous le nom de Lislis sur internet, 
Lisa est une technologue créative, une artiste et aussi une chercheuse qui prépare actuellement un master de Creative Technologies. Elle a rejoint la communauté Rust en 2017. Elle a également participé à l’organisation de Rust in Arts en 2021, un évènement qui a abordé l’importance de Rust dans les systèmes de bas niveau pour les artistes.
Lisa a choisi de nous exposer un « alt.ctrl game » qu’elle a développé en utilisant le langage Rust, avec l’aide de plusieurs matériels populaires.
 

Un « alt.ctrl game » ?

Le terme « alt.ctrl » est l'abréviation de « Alternative Controllers » que l’on peut définir comme l’utilisation d’un contrôleur de jeu non conventionnel ou personnalisé ou comme le détournement du fonctionnement d’un contrôleur classique.
De nombreuses œuvres utilisant des « alt.ctrl » ne se définissent pas comme des jeux, mais plutôt comme des créations artistiques interactives dans lesquelles le joueur n’est pas un simple spectateur. 
Un exemple bon exemple de « alt.ctrl game » est « Mr Floppy System’s recovery » par cosmografik’s, qui utilise une disquette de stockage pour faire sauter une entité et l’aider à grimper de plateforme en plateforme. 
 

Et comment se présentait le « alt.ctrl game » de Lisa ?

Je vous invite à regarder la conférence de Lisa à propos de son jeu « Riding in the park with parrots », inspiré par une personne se promenant à vélo dans un parc avec un perroquet posé sur le guidon.
À l’aide d’un guidon de vélo équipé d’un microcontrôleur ESP32 comme manette, du moteur de jeu Bevy pour coder le jeu et d’un Raspberry Pi pour faire tourner le tout, elle a créé un jeu mêlant des éléments en 2D et 3D :

  • Bevy est un moteur de jeux open source développé en Rust, constamment mis à jour. Une nouvelle version de son API avec des “Breaking Changes” sort environ tous les trois mois. Grâce à sa communauté active, Bevy dispose de nombreuses ressources pour faciliter l'apprentissage et la migration vers les nouvelles versions. Il propose également de nombreux plugins pour aller plus loin dans le développement de jeux vidéo. C’est aussi grâce à cette communauté que les plugins peuvent à peu près suivre le rythme des mises à jour du moteur de jeu. Lisa, ayant beaucoup entendu parler de Bevy, a choisi d’utiliser ce moteur pour son projet. 
  • ESP32 est un microcontrôleur populaire et largement utilisé dans le domaine de l’Internet of Things (IoT) en raison de sa puissance de traitement et de sa connectivité sans fil intégrée. Il est compatible avec l'environnement Arduino et il existe un répertoire GitHub esp-rs/std-training qui explique divers outils pour coder en Rust sur ce microcontrôleur. Lisa s’est trompée de modèle de microcontrôleur lors de son achat, et elle a donc codé la première version contrôleur en C++. La deuxième version a été développée en Rust. Les deux versions sont disponibles sur son dépôt Github. 
  • Les Raspberry PI, une série d’ordinateurs monocarte de petite taille et de faible coût, sont très utilisés dans l’apprentissage des débutants en informatique, la domotique, la robotique, la création de jeux vidéo, etc. 
Quels étaient les enjeux techniques ?

Lisa nous partage son expérience quant à la complexité de la cross-compilation lorsque des dépendances externes entrent en jeu, en particulier lorsqu’il s’agit de faire communiquer le moteur de jeu avec le système sous-jacent. Pour surmonter ces problèmes, elle a utilisé la bibliothèque cross-rs/cross qui permet, après avoir écrit des fichiers de configuration, de lancer des conteneurs Docker avec tous les outils nécessaires à la compilation, facilitant ainsi le processus.
D’après Lisa, il manque encore quelques bibliothèques en Rust pour certains capteurs contrairement à l’environnement Arduino qui est beaucoup plus développé. Il est donc préférable de se renseigner sur les outils existants avant un achat si l’on souhaite développer des applications embarquées avec ce langage de programmation. Il lui aura fallu à peu près 2 semaines pour s'entraîner avec les outils et concevoir ce petit projet. Avant de se lancer dans une nouvelle création, il lui reste encore à peaufiner son jeu en ajoutant ses propres scènes et modèles 3D, en optimisant les performances pour réduire le lag et améliorer la fluidité.
 

Finalement, que retiens-tu de cette expérience ?

Le concept de « alt.ctrl game » ajoute une dimension créative et amusante aux projets de jeux vidéo, allant au-delà du simple jeu en lui-même et permettant de laisser libre cours à son imagination. « Riding in the park with parrots » est un projet idéal pour s’initier à Rust et explorer plusieurs aspects du langage, notamment dans le domaine de l’embarqué et des moteurs de jeux. De plus, le faible coût des matériels permet de se lancer plus facilement dans ce type d’aventure. La communauté active de Rust propose de nombreuses ressources pour aider à résoudre une variété de besoins et de problématiques.

Partager