Ellas War, un petit projet, mais qui m’a appris beaucoup

Posted by

Ellas War est un jeu en ligne gratuit qui vous permet de construire votre cité Grecque. J’ai commencé le projet en 2007, alors que j’étais encore au lycée. Grâce à ce projet, j’ai découvert de nouvelles technologies et été confronté à de nombreuses problématiques. Cet article sera le premier d’une séries d’articles sur ce fabuleux laboratoire qu’est Ellas War.

Languages de développement utilisés

Le projet a commencé en PHP, avec une base de données MySQL et sans aucun Framework. Techniquement, le projet a très peu évolué durant 10 ans. J’ai seulement ajouté des petites choses comme un cache (APC) et une couche d’abstraction pour la base de donnés (PDO) , ce qui a aussi amélioré la sécurité. J’ai aussi mis en ligne un petit site mobile, adapté aux téléphones mobiles basiques (avant les smartphones).

En 2017, j’ai commencé à réécrire le jeu depuis le début, avec NodeJS, Socket.io et AngularJS. Malheureusement Angular 2 n’était pas encore prêt et choisir à la place AngularJS qui était déjà en fin de vie a été une grosse erreur. Cette migration technologique a aussi eu du bon. Elle m’a permis de faire une application en utilisant Cordova et de mettre à disposition le fichier APK sur le site ainsi que sur le magasin d’applications d’Amazon (qui est gratuit pour les développeurs).

En 2020, j’ai décidé de réécrire encore une fois le projet depuis le début. Cette fois ci, j’ai continué avec NodeJS mais j’ai migré vers une version récente d’Angular. Plus tard, j’ai aussi ajouté Redis en cache/queue. J’ai aussi fait beaucoup plus attention à la license des images utilisées et publié l’application sur plus de boutiques d’application (Google Play Store, Microsoft Store et Snapcraft).

Hébergement

J’ai commencé le projet sur un hébergement gratuit (pages perso Free) mais j’ai migré rapidement sur un serveur dédié. Cette migration m’a forcé à apprendre à utiliser GNU/Linux, ce qui m’a beaucoup servi durant mes études et après, professionnellement. Mis à part quelques mois chez O2Switch, j’ai toujours utilisé un serveur dédié pour le jeu.

Sur ces serveurs, j’ai utilisé différentes distributions GNU/Linux (Centos, Debian et Ubuntu), et des installations différentes (Native, Docker, Kubernetes). Mon installation actuelle est basées sur Docker, qui est le meilleur compromis pour mon petit serveur. Cela me permet garder une bonne flexibilité tout en améliorant la sécurité et en gardant suffisamment de resources pour le jeu. Kubernetes utilisait trop de mémoire et de capacité processeur.

Management

Durant ces plus de 15 années, j’ai dû gérer une équipe qui a comporté plus de 10 personnes. J’ai dû définir les responsabilités et effectuer le recrutement. Il est assez difficile de gérer une équipe de volontaires, avec des objectifs et des disponibilités différentes. Malheureusement, la taille de l’équipe est maintenant très réduite.

Conclusion

Ce projet m’a beaucoup appris, techniquement et non techniquement. Si c’était à refaire, je ferai peut-être les choses différemment mais j’ai beaucoup appris et cela m’a énormément aidé par la suite.

Ma plus grosse erreur a été de ne pas utiliser directement un Framework, pour faciliter le développement. Utiliser directement Angular 2 m’aurait fait gagner énormément de temps.

Leave a Reply

Votre adresse e-mail ne sera pas publiée.