Pokemon JS - Le fan-game qui fait trembler Nintendo (ou pas)
Vous voulez revivre l’époque dorée de votre Game Boy Color sans sortir votre vieille console du placard ? Et bien Chase Manning vient de lâcher une bombe qui s’appelle Pokemon JS et qui est une recréation complète de Pokemon Rouge et Bleu directement dans votre navigateur, codée en React et TypeScript !
C’est fou comme ce projet arrive pile au bon moment car alors que Nintendo continue de faire la chasse aux fans qui osent toucher à ses franchises sacrées, Chase Manning a eu les couilles de se lancer dans cette aventure périlleuse. Et franchement, le résultat est bluffant. On a affaire à un développeur qui a clairement passé des centaines d’heures à décortiquer chaque pixel, chaque son, chaque mécanisme des jeux originaux pour nous pondre quelque chose d’authentique.
Le plus impressionnant, c’est l’attention aux détails. Le mec a recréé l’interface exacte de la Game Boy, avec les couleurs, les fonts pixelisées, et même les transitions écran par écran qui vous rappelleront sans doute vos parties marathon sous la couette avec votre lampe de poche. La documentation officielle du projet montre également l’ampleur du boulot : système de combat au tour par tour, rencontres sauvages, centres Pokemon, boutiques, évolutions… tout y est.
Mais alors, comment il a fait techniquement ?
Eh bien comme je vous le disais en intro, Chase a fait le choix du React + TypeScript, et c’est malin comme choix parce que React permet de gérer facilement tous les états du jeu (position du joueur, inventaire, Pokemon capturés, progression) avec des hooks et du state management propre. Et TypeScript apporte la sécurité qu’il faut pour un projet de cette envergure, parce que croyez-moi, quand vous gérez les stats de 151 Pokemon avec leurs attaques, types, évolutions et tout le tintoin, vous avez pas envie que ça pète à cause d’une variable mal typée.
Si vous allez jeter un œil sur le Github, vous verrez que le dossier /maps
contient toutes les cartes du jeu (Bourg Palette, Route 1, Argenta, etc.) codées en dur avec leurs tiles, leurs zones de collision et leurs événements et ce qui me scotche le plus, c’est surtout la reproduction fidèle du gameplay original. Les combats respectent exactement les mécaniques de l’époque : calculs de dégâts, efficacités des types, chances de critique, tout est parfaitement émulé. Manning a même implémenté les bugs iconiques des versions originales ! Bon, peut-être pas le bug MissingNo, mais l’esprit y est.
Et niveau déploiement, c’est là que ça devient génial puisque le jeu tourne sur Firebase hosting, donc accessible depuis n’importe quel navigateur moderne. Plus besoin d’émulateur, plus besoin de ROM douteuse, juste votre navigateur et c’est parti pour des heures de nostalgie pure. Sur mobile ça marche aussi, avec des contrôles tactiles adaptés. Pratique pour vos trajets en métro ou en bus !
Maintenant, parlons de l’éléphant dans la pièce à savoir les implications légales d’un tel projet car Nintendo n’est pas exactement connu pour son laxisme avec les fan-games… En 2021, ils ont par exemple sorti l’artillerie lourde avec 379 jeux fan-made supprimés d’un coup via des DMCA takedowns. Pokemon Uranium, Full Screen Mario, Pokemon Essentials… tous passés à la trappe. La règle de Nintendo est simple : Si vous touchez à nos licences, on vous atomise juridiquement.
Mais Chase Manning est un malin. Son projet est sous licence MIT et inclut un disclaimer bien visible précisant que c’est un projet de fan non affilié à Nintendo. Ça ne le protège pas complètement bien sûr, mais ça montre qu’il est conscient des risques. Et puis, y’a une différence entre un projet personnel open-source et une distribution commerciale surtout que Nintendo tape généralement quand ça devient juteux financièrement.
Je trouve qu’on voit de plus en plus de projets similaires comme des recréations de Tetris, Snake, Pac-Man… Et même si Pokemon, c’est sûr que c’est plus complexe, c’est cool de voir les développeurs web redécouvrir les joies du game dev avec des frameworks comme React.
Ah et j’oubliais… Si vous vous lancez, sachez que pour la sauvegarde, Manning a implémenté un système de persistance local avec le localStorage du navigateur. du coup, vos parties seront automatiquement sauvegardées… pas besoin de chercher le bouton save comme un teubé. C’est moderne, hein ?? ^^
Bref, Pokemon JS c’est plus qu’un simple fan-game. C’est une déclaration d’amour à une époque où les jeux vidéo étaient plus simples mais pas moins magiques. Allez, foncez capturer votre premier Pikachu, je vous attends ici, moi je ne bouge pas.