Making of – La programmation de SwapTales:Léon!

Making of – La programmation de SwapTales:Léon!

David Hart Witty Wings

David Hart est le directeur technique de SwapTales: Léon! Aujourd’hui nous allons discuter avec lui des problématiques liées au code du jeu et de ce que ce métier implique plus généralement.

Cover1600900Quels furent les challenges d’un gameplay basé sur l’échange de mots en terme de programmation? Combien d’itérations furent nécessaires avant d’aboutir à un modèle pleinement satisfaisant ?

Malgré ce qu’on pourrait croire, la complexité en terme de programmation ne se situe pas dans la création du système d’échange de mots.

Le vrai challenge s’est plutôt situé autour de la conceptualisation du code nécessaire pour implémenter ce gameplay sous toutes ses formes, dans tous ses cas de figure. Par exemple, il faut aussi penser à trouver un format texte qui permette aux game designers d’éditer la logique du jeu de façon assez simple et ensuite d’arriver à lire ce format texte au niveau du code. Et, dans ce format de texte, il faut surtout arriver à trouver un moyen pour que l’on puisse encoder toutes les conditions et combinaisons qui affectent les pages d’avant et d’après de façon simple pour le game designer, et pas seulement pour le programmeur.

Exemple du fichier .json servant au script des conditions dans le jeu

Exemple du fichier .json servant au script des conditions dans le jeu

 

Sur SwapTales:Léon! la programmation a été divisée entre plusieurs programmeurs et scripteurs. Comment s’est réparti le travail et s’est déroulée la collaboration ?

Ça a été compliqué, haha. En fait, durant la première partie du projet, j’étais l’unique développement, dans un premier langage de programmation natif pour iOS.

Ensuite, d’autres programmeurs ont pris le relais, dans un autre langage et sur un autre moteur, Unity3D. Ce changement a forcément couté pas mal de temps parce que toutes les leçons que j’avais apprises grâce à la première phase n’étaient pas forcément déjà acquises par la deuxième « quipe de programmeurs. Mais nous étons obligés de fonctionner comme cela si nous voulions développer le jeu en vue d’une sortie assez rapide.

Au final, ce changement fut enrichissant pour moi car il m’a demandé de passer d’un rôle d’implémenteur, la seule personne qui travaille sur le projet, à un rôle de directeur technique, qui doit être capable d’être assez agile pour garder un oeil sur les points importants et flexible pour corriger la barre rapidement si besoin.

Selon quelles contraintes l’architecture (organisation structurée d’un système informatique, ndlr) du système du jeu s’est construite ?
Comment a-t-elle évolué au cours du projet ? 

Dans un premier temps, nous avons développé un prototype pour iOS. On était ainsi dans un environnement complètement différent. Ensuite, tout a changé : le langage, le moteur, les plateformes cibles et l’objectif, car nous passions d’un chapitre polish à un vrai jeu entier. Ainsi, la structure a énormément changé et le plus dur pour moi a été de conserver malgré tout un peu contrôle sur le projet.

game-loop-fixed

Comment le choix s’est porté sur le moteur de jeu Unity ?

C’est le seul moteur simple d’utilisation, et puissant car il permet de faire beaucoup de choses, qui soit multi plateformes. L’autre possibilité étant Unreal, cela aurait été un choix trop complexe pour le projet..

En jeu vidéo, la phase de  debug et l’optimisation (réglages et corrections visant à améliorer sa stabilité, sa rapidité d’exécution, sa compatibilité, etc. ndlr) représentent une part importante du travail de programmation. Comment se déroule-t-elle sur le projet ?

Je dirais même que c’est la partie la plus importante du projet et qui prend le plus de temps. Pendant le développement, quand on implémente des fonctionnalités, on fait forcément du debug, mais ensuite, pour peaufiner et terminer le jeu, c’est une phase obligatoire qui va faire la difference entre un jeu et un bon jeu. Pour un projet comme SwapTales: Léon!, qui est d’apparence assez simple, il faut que le niveau de finition soit au top !

Le jeu dans le moteur Unity

Le jeu dans le moteur Unity

 

Quelles sont les fonctionnalités qui ont demandé un effort particulier à programmer ?

Tous les systèmes visuellement poussés du jeu comme la coloration ou le tourné de page ont demandé forcément de grands efforts. Même si ces fonctionnalités ont été faites il y a un moment, ça a pris du temps pour que ce soit le plus parfait possible.

Que conseillerais-tu à un étudiant intéressé par la programmation pour le jeu vidéo ?

Il faut qu’il soit sûr de ce qu’il veut, parce que c’est un metier très dur et qui demande beaucoup de sacrifices, mais s’il est passionné, ça vaut le coup parce que c’est un métier magnifique !

De plus, dans le jeu vidéo, comparé aux autres métiers de l’informatique, on se trouve beaucoup plus souvent à communiquer avec des personnes de spécialités complètement différentes, et ça demande un vrai effort d’un point de vue communication, il ne faut pas négliger cet aspect, il faut aimer dialoguer avec les autres, mais c’est aussi ce qui rend ce métier intéressant !

Enfin, quels sont les projets qui t’ont marqué, t’ont touché ou inspiré en terme de programmation (vidéoludiques ou autre) ?

Alors, d’un point de vue développeur, comme tout programmeur, j’ai une vraie passion sur tous les jeux centrés autour de la technique, sur l’algorythmique. On pense naturellement à tout ce qui est jeu de simulation, Minecraft, ou tous les jeux à système utilisant du procédural, comme Dwarf Fortress.

Ensuite, personnellement, d’un point de vue joueur, je suis a l’opposé ! Je suis beaucoup plus attiré par les jeux à narration et à contenu. Je joue à tout ce qui passe mais j’ai aimé récemment Life is Strange, Until Dawn, Inside, etc.

Cliquez ici pour télécharger le jeu sur l’app store !

Et continuez de suivre notre actualité sur les réseaux sociaux :