En bref
Quake SRP (Safe Rust Port) est une réécriture complète du moteur solo du jeu vidéo culte Quake, réalisée dans un dialecte sûr (safe) du langage Rust. Ce portage a été en grande partie assisté par C...
👋 À propos de Quake ported to safe Rust, playable in browser
À propos de Quake ported to safe Rust, playable in browser
Quake SRP (Safe Rust Port) est une réécriture complète du moteur solo du jeu vidéo culte Quake, réalisée dans un dialecte sûr (safe) du langage Rust. Ce portage a été en grande partie assisté par Claude Code, un outil d’intelligence artificielle générative, pour migrer le code C d’origine vers Rust tout en conservant l’intégrité fonctionnelle du jeu. Le résultat est accessible directement dans un navigateur web, sans aucune installation locale, à l’adresse https://quake-srp.pages.dev/.
Contrairement à la plupart des projets modernes qui adoptent le rendu graphique par processeur graphique (GPU), Quake SRP préserve le rendu logiciel par processeur central (CPU) issu de WinQuake, une version de référence de Quake pour Windows. Ce choix délibéré offre une expérience rétro authentique, identique à celle des systèmes d’époque, tout en profitant des garanties de sécurité mémoire offertes par Rust. Le projet a été validé en comparant son comportement avec celui du jeu original, ce qui renforce la crédibilité de la conversion.
Quake SRP n’est pas un simple fork cosmétique : il s’agit d’une refonte complète du moteur dans un langage moderne, démontrant la faisabilité de migrer du code hérité critique vers un environnement plus sûr, sans sacrifier la jouabilité ni les fonctionnalités de base. Il constitue à la fois un outil de démonstration technique et une plateforme d’expérimentation pour les amateurs de programmation système et de retrogaming.
Fonctionnalités principales
- Portage complet du moteur solo de Quake en Rust sûr : tout le code de jeu, de rendu et d’entrée/sortie a été réécrit dans un sous-ensemble de Rust qui interdit les comportements indéfinis, garantissant l’absence de fuites mémoire et de vulnérabilités classiques liées aux pointeurs.
- Exécution dans le navigateur : le jeu est compilé vers WebAssembly et s’exécute directement dans un navigateur moderne, sans plugiciel ni téléchargement supplémentaire.
- Rendu logiciel CPU fidèle à WinQuake : au lieu d’utiliser un pipeline GPU, le moteur reproduit exactement le rendu par trames logicielles de l’époque, préservant l’apparence et les performances originales.
- Sauvegardes (saves) : il est possible de conserver sa progression et de reprendre une partie ultérieurement, comme dans le jeu original.
- Commandes console : l’interface console de Quake est entièrement fonctionnelle, permettant de modifier des variables, d’exécuter des scripts ou de dépanner.
- Plein écran : le jeu peut être basculé en mode plein écran pour une immersion totale, bien que le rendu logiciel limite la résolution à celle de l’original (320×200 ou 640×400 selon les réglages).
- Compatible avec les fichiers de données du jeu : l’utilisateur doit fournir les fichiers .pak officiels de Quake (shareware ou version complète) pour jouer, le code ne contenant pas de contenu propriétaire.
Tarification
Aucune information sur une tarification, un abonnement ou un modèle commercial n’est disponible pour Quake SRP. Le projet semble être une démonstration technique et un outil gratuit, hébergé sur une page web sans frais d’accès. Il n’y a pas de version premium ni de fonctionnalités payantes. L’utilisateur doit seulement posséder les fichiers de données de Quake (légalement obtenus) pour l’utiliser. En l’absence de service SaaS ou de licence commerciale, le coût est nul – seuls les besoins en bande passante et en matériel de l’utilisateur s’appliquent.
Cas d’utilisation
- Démonstration technique d’un portage C vers Rust assisté par IA : Quake SRP sert de preuve de concept pour montrer comment un outil comme Claude Code peut accélérer la migration de code legacy tout en maintenant la fonctionnalité et en améliorant la sûreté.
- Jouer à Quake en solo dans un navigateur : les fans peuvent profiter du jeu original sans installation lourde, simplement en ouvrant une page web. Idéal pour une session rapide ou pour redécouvrir le classique.
- Étude et expérimentation sur les moteurs de jeu rétro : les développeurs et chercheurs peuvent analyser le code source (probablement ouvert) pour comprendre les mécanismes de rendu logiciel, la gestion mémoire en Rust, ou les techniques de rétro-ingénierie assistée par IA.
- Formation et démonstration en classe : les enseignants en programmation système ou en développement de jeux peuvent utiliser Quake SRP comme exemple concret de modernisation de code hérité, tout en offrant une expérience jouable aux étudiants.
- Évaluation de la performance du rendu CPU dans le navigateur : le projet permet de mesurer les capacités du WebAssembly pour exécuter des charges de travail graphiques complexes sans matériel GPU dédié.
Notre avis
Quake SRP est un projet fascinant qui réussit le tour de force de faire tourner un jeu vieux de près de trente ans dans un navigateur, tout en le réécrivant dans un langage moderne et sécurisé. Son principal atout est la sécurité mémoire apportée par Rust, qui élimine une classe entière de bogues et de vulnérabilités potentiellement exploitables. Pour les puristes, le choix de conserver le rendu logiciel CPU est un gage d’authenticité : le jeu a exactement le même aspect et les mêmes performances que sur un processeur Pentium de l’époque. L’accessibilité immédiate via le navigateur en fait un outil de démonstration idéal pour les conférences ou les ateliers.
Cependant, ce portage présente certaines limites. Il est limité au mode solo, ce qui signifie que les parties multijoueurs, un aspect important de l’expérience Quake, ne sont pas disponibles. L’approche CPU/software rendering peut sembler désuète aux yeux des joueurs habitués aux remakes modernes avec accélération GPU, et les performances peuvent être bridées par la couche WebAssembly, surtout sur des machines anciennes. De plus, aucun modèle de support produit n’est documenté : pas de bugs tracker publique, de SLA ou de feuille de route claire. Cela en fait davantage un projet de passionné qu’un outil prêt pour une utilisation en production.
Le public cible de Quake SRP est assez spécifique : les fans de Quake et de retrogaming, les développeurs Rust curieux de voir un portage complet assisté par IA, les chercheurs en modernisation de code, et les formateurs qui souhaitent une expérience jouable sans installation. Pour ces profils, c’est une ressource précieuse.
Parmi les alternatives notables dans l’écosystème Rust, on trouve :
- Richter : un moteur Quake moderne en Rust avec rendu GPU, UI, console, audio, support de démos et divers chargeurs de fichiers. Plus complet et actif.
- Antiquake-rs : un autre moteur inspiré de Quake, basé sur Rust, avec console, HUD et commandes de variables.
- qrustyquake : un port WinQuake utilisant SDL3, axé sur la fidélité et la portabilité, mais nécessite une compilation native.
- Portage Quake 3 en Rust : un effort similaire, mais pour Quake III Arena.
En conclusion, Quake SRP est une réalisation technique impressionnante qui mérite l’attention des amateurs de retrogaming et des développeurs Rust. Il ne remplace pas les solutions modernes comme Richter pour une utilisation quotidienne, mais il constitue une démonstration éloquente de la puissance de Rust et de l’IA pour revitaliser le code hérité. Nous le recommandons pour l’expérimentation et la redécouverte nostalgique, en gardant à l’esprit ses limitations fonctionnelles.
🎯 Public cible
Envie d'essayer Quake ported to safe Rust, playable in browser ?
Visiter le site →Soyez le premier à donner votre avis !
Partagez votre expérience avec cet outil pour aider la communauté.
C'est calme ici...
Lancez une discussion ! Quelle est votre expérience ?
Aucun tutoriel pour le moment
Connaissez-vous un bon tutoriel ? Partagez-le !
📸 Screenshots de la communauté
Aucun screenshot pour le moment. Soyez le premier a en partager !
Aucune alternative pour le moment.