Artheriom

Développeur & Étudiant à l'Université Clermont-Auvergne

FallenGalaxy

FallenGalaxy est probablement l’un des projets qui me tiens le plus à cœur, de toute ma vie de développeur. C’est pourquoi l’article que vous allez lire va être particulièrement long. FallenGalaxy, c’est un jeu en 2D par navigateur, où vous incarnez un dirigeant de nation, à la tête d’un empire galactique. Contrairement à un OGame, l’ensemble du jeu est en temps-réel, sans (re)chargement de pages ou interface sinistre.

L’ensemble du jeu est codé en Java. Le client est compilé avec le Google Web Toolkit, un outil futuriste, du moins en 2009. Le rendu final, c’est un jeu plaisant à l’oeil et à la prise en main, où l’on oublierais presque qu’on est toujours dans un navigateur. Bardé de JavaScript, l’ensemble des animations, des déplacements de cartes, des combats et de la gestion (bâtiments, alliance, diplomatie, recherche) s’effectue par le biais de requêtes AJAX lancées dans un socket. En résulte une fluidité impressionnante entre client et serveur, et une expérience vraiment inédite.

La vue de la galaxie. En bas à droite, le chat. En haut la barre de menu avec vos ressources, et votre niveau. A gauche la vue globale de votre empire, à droite vos compétences. Vous voyez également une de vos planètes, un chantier spatial, et deux grilles de calcul. En bas à gauche, une minimap vous donne l’état du secteur où vous êtes, ainsi que la liste des vaisseaux dans le bâtiment que vous avez sélectionné.

Fondé en 2006 par un jeune étudiant en informatique, Jérémie Gottero, le jeu n’est au début qu’un OGame-like, en PHP. Dés 2008 cependant, le jeu trouvera sa stack technique actuelle, à savoir du Java. Au fil des versions, de nombreux développeurs auront contribué au jeu, dont plusieurs noms importants du monde francophone, tel que Guillaume Chau, membre de la “Core-Team” de VueJS.

A mon arrivée en 2015, le jeu est dans sa 4eme version stable (Pandora), et beaucoup de membres de l’équipe sont récemment partis. Depuis, nous avons patché de nombreux bugs sur le jeu, et nous travaillons sur une nouvelle version, Nextgen”, qui apportera de très nombreuses nouveautés au gameplay global.

Un morceau de galaxie devant vos yeux.

Ce projet est intéressant, car il contient de nombreux éléments qui le rendent atypique. Le premier, c’est sa longévité, dans un monde où le jeu-vidéo est devenu une véritable industrie. FallenGalaxy à su rester indépendant et se développer, sans jamais offrir de bonus à des gens qui payent. Le deuxième, c’est sa communauté, fidèle et soudée, qui à toujours su soutenir le jeu. Le troisième surtout, c’est sa stack technique complexe et composée de pas mal de librairies externes. C’est un gros patchwork de plein de choses qui s’assemblent un peu par magie pour que le jeu prenne vie.

Combats en temps-réel. Aussi.

Cependant, mon temps aujourd’hui sur le projet ne se résume pas qu’à coder de nouvelles fonctionnalités sympas. Depuis le début de l’année 2018, nous avons commencés à éliminer toute la dette technique du code : Depuis 2008, certaines librairies n’ont jamais été mises à jour. Des bouts du code originel (Java 5) sont toujours présents. Le découpage des classes est pour le moins douteux, etc.

Cette réduction de la dette technique est un véritable enjeu pour nous : Cela doit nous permettre à terme de retrouver une viabilité au développement du projet, et améliorer notre rapidité dans la sortie de nouvelles fonctions. Par ailleurs, cette suppression de dette est complexifiée par de nombreuses erreurs de gestion. Par exemple, les anciennes équipes n’ont jamais pris la peine de créer des tests unitaires ou fonctionnels. Nous avons donc 226000 lignes de codes (approx.) à tester à la main. Outre le remboursement de la dette technique, nous avons donc commencé à ajouter des tests unitaires sur l’ensemble des classes que nous refactorons, et nous utilisons des tests en boîte noire le reste du temps.

Il est difficile, sinon impossible, de résumer tout ce que ce projet m’apporte en terme de compétences et de connaissances. Du travail en équipe à du remboursement de dette technique, en passant par du développement de nouvelles fonctionnalités tout en assurant la compatibilité avec du code très très legacy, FallenGalaxy représente pour moi une énorme source de connaissance et d’apprentissage. C’est probablement le projet le plus intéressant de mon portfolio. N’hésitez pas à venir l’essayer, c’est en prod” ! http://pandora.fallengalaxy.com/ !

Next Post

Previous Post

Leave a Reply

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

© 2018 Artheriom

Theme by Anders Norén