Minecraft a un nouveau client indépendant baptisé Torch, écrit de zéro en Rust. Le projet open source élimine la nécessité de faire tourner une machine virtuelle Java (JVM) et, selon ses auteurs, atteint 400 FPS contre 180 FPS pour le client Java classique, tout en consommant environ 700 Mo de RAM contre 2,3 Go. L'information sur le projet a été rapportée par le site Hacker News, et les sources se trouvent sur la page du projet ainsi que dans le dépôt GitHub.
Ce que Rust change concrètement par rapport à la JVM
Le client officiel Minecraft Java Edition fonctionne sur une machine virtuelle Java, ce qui est critiqué depuis des années pour sa surcharge mémoire et ses latences liées au ramasse-miettes (garbage collection). Torch règle ce problème en réécrivant tout le moteur de rendu et la logique du jeu en Rust, un langage compilé nativement, sans couche intermédiaire de machine virtuelle. Les auteurs indiquent sur le site torchclient.com que, grâce à cela, le jeu démarre en environ une seconde, contre quatre secondes pour le client Java.
Le projet prend en charge deux versions du jeu dans un même build : 26.1.1 et 1.21.11, ce qui signifie que les joueurs n'ont pas besoin de télécharger des paquets séparés selon la version des serveurs. C'est important pour celles et ceux qui jouent sur des serveurs n'ayant pas, pour diverses raisons, mis à jour vers la dernière version. Le code source de Torch est disponible publiquement dans le dépôt torch-client sur GitHub, sous licence GNU AGPL 3.0, ce qui signifie que n'importe qui peut le télécharger, le vérifier et le modifier.
Des fonctionnalités déjà disponibles en alpha
Malgré un stade de développement précoce, Torch propose déjà une partie des fonctionnalités que l'on retrouve dans les mods populaires d'optimisation des performances. La documentation du projet mentionne notamment un overlay intégré affichant le FPS, la consommation de RAM, de CPU et le nombre de chunks chargés, ce qui rappelle les outils de diagnostic disponibles dans les outils et calculateurs pour les joueurs de Minecraft.
- Prise en charge partielle des shaders Iris
- ClickGUI accessible via la touche Shift droite
- Contrôles tactiles sur appareils Android
- Éditeur d'interface HUD
- Distance de rendu allant jusqu'à 32 chunks
Les auteurs précisent eux-mêmes sur la page du projet que c'est une version précoce : « Torch est à un stade précoce de développement. Certaines fonctionnalités manquent encore, et d'autres peuvent planter ». C'est un avertissement classique pour les clients alternatifs, à prendre en compte avant de l'installer sur un ordinateur utilisé pour le travail ou les études.
Plateformes et installation
Torch fonctionne actuellement sur trois plateformes : Windows 64 bits, Linux x86_64 et Android arm64. Des fichiers binaires prêts à l'emploi pour Windows et Linux sont publiés sur la page des versions du dépôt GitHub, et les plus motivés peuvent aussi compiler le client eux-mêmes avec Cargo, le gestionnaire de paquets standard de Rust. À titre de comparaison, le client officiel est disponible via la page de téléchargement de Minecraft Java Edition, où Mojang propose un launcher nécessitant une licence du jeu achetée.
Il faut souligner que l'utilisation de clients alternatifs comme Torch ne dispense pas de posséder une copie légalement achetée de Minecraft. Torch ne reproduit que la couche client, en se connectant aux mêmes comptes Microsoft que le launcher officiel : sans compte valide, le jeu ne démarrera donc simplement pas.
Des projets similaires dans l'ombre de la communauté Rust et Minecraft
Torch n'est pas le premier projet à tenter de remplacer le client Java officiel par un moteur écrit dans un autre langage. Sur GitHub se développent en parallèle, entre autres, Pomme, un client Java Edition écrit en Rust et Vulkan qui se connecte aux serveurs des versions 1.20 à 26.3, ainsi que Rustcraft, qui reproduit en Rust à la fois le client et le serveur intégré de la version 26.3. La communauté des développeurs aime expérimenter avec la réécriture du code de Minecraft, car le jeu possède un protocole réseau ouvert et bien documenté, ce qui facilite l'écriture de clients compatibles à partir de zéro.
Pour les joueurs polonais utilisant les serveurs listés sur la page des serveurs Minecraft, la question clé est de savoir si les administrateurs de serveurs accepteront le trafic venant de tels clients, car une partie des systèmes anticheat vérifie les signatures du launcher officiel. Le projet Torch ne mentionne pour l'instant aucune certification ni collaboration avec les créateurs des plugins anticheat populaires, donc les joueurs qui l'utilisent sur des serveurs avec des protections restrictives doivent s'attendre à un risque de bannissement.
Et la suite pour le projet ?
Le dépôt torch-client sur GitHub compte pour l'instant peu d'étoiles et n'a pas encore réuni un large groupe de contributeurs, mais la publication sur Hacker News intitulée « Show HN: Torch » a attiré l'attention d'une partie de la communauté intéressée par Rust et l'optimisation des jeux. Les auteurs encouragent à signaler les bugs et à proposer de nouvelles fonctionnalités via le système Issues sur GitHub, ce qui est le chemin de développement typique pour les petits projets open source à un stade précoce.