0

L’environnement où s’exécute réellement le jeu est appelé “production”. L’environnement où il est développé est appelé “local”. Il faut que ces deux environnements soient séparés. Entre les deux, une zone de test peut exister (staging).

Le besoin de deux environnements

A vous tous débuts de créateurs (ou peut-être encore maintenant?) vous avez loué un serveur web (ou utilisé un serveur gratuit), mis des fichiers PHP dessus, et vous les avez directement édités pour voir le résultat. Cette approche est à bannir. En effet, elle mélange deux notions capitales en informatique: l’environnement de production et l’environnement de développement. Pour éviter ce mélange, voici des qu’il vous faudra installer sur votre poste pour développer tranquillement votre jeu, avant de pouvoir le mettre en ligne.

La “prod” et le “local” doivent toujours être séparés. L’action de basculer des fichiers du local vers la “prod” s’appelle un déploiement (ou “mise en production”).

Les risques de mélanger “prod” et “local”

Si vous persistez à mélanger ces deux environnements, alors vous prenez le risque de flinguer votre jeu: vos modifications affectent immédiatement tous les joueurs du jeu, vous risquez donc de planter votre jeu si vous faites une mauvaise manip’ ou si votre code n’est pas bon. Les joueurs seront alors bloqués, et ils s’en iront. Pire, si vos modifications prennent du temps, votre jeu sera dans un état “inconsistant”, qui peut déboucher sur des comptes de jeu corrompus (quantités de ressource négatives par exemple) ou sur des cheats involontaires (un joueur gagnera 4 fois de suite la même bataille et touchera 4 récompenses).

Implications: plus de complexité

Séparer ces deux environnements (développement et production) est donc une bonne pratique essentielle à la tenue de votre jeu dans le temps. Mais, évidemment, elle amène de la complexité supplémentaire, qu’il va vous falloir gérer. Cette complexité ne doit pas dépasser le bénéfice que vous en retirez (sinon, cela ne vaut pas le coup).

En fait, le surcout de cette séparation ne se voit qu’à sa mise en place, et non à l’usage. En effet, une fois que vous avez installé WAMP, un IDE, un outil de déploiement et un outil de versionning (voir la page dédiée aux logiciels) alors vous n’aurez plus aucune difficulté à séparer développement et production. Le surcoût va donc être ponctuel.

Bénéfices une fois en place

Encore mieux: vous allez bénéficier de cette séparation! En effet, vous n’éditez plus les fichiers directement en ligne, mais sur votre poste de développement (votre ordinateur ou votre tablette). Du coup, vous n’avez plus de temps d’attente pour uploader vos modifications sur votre serveur, ou pour rafraichir la page web de votre jeu. Comme votre serveur web (de développement) est maintenant sur votre propre machine et non plus ailleurs sur internet, vous allez avoir de meilleurs temps de réponse qui accélèreront grandement votre développement. Sans compter que cette séparation est la seule à vous permettre d’utiliser des outils de débogages, qui vous épargneront de longues heures à trouver la réponse à des questions comme “pourquoi mon personnage gagne de la vie au lieu d’en perdre quand on le blesse?” ou “pourquoi mes usines ne tournent pas alors qu’elles ont toutes les ressources en stock?”.

0