Le 16 mai dernier, les étudiants d’Holberton en fin de spécialisation ont présenté leurs projets de fin d’année à l’occasion du DemoDay. Thomas Borde, étudiant en spécialisation AR/VR a présenté le jeu vidéo qu’il a développé, Tankstorm.
Nous lui avons posé quelques questions à ce sujet, notamment sur le déroulement de celui-ci :
Holberton : Présente-nous ton projet :
Thomas : Tankstorm est un jeu roguelike* multijoueur en ligne, où les joueurs incarnent tous les deux un tank. L'un des joueurs peut conduire le tank et utiliser des capacités spécifiques aux conducteurs, et l'autre joueur peut tirer sur les ennemis et utiliser d'autres capacités. Le but du jeu est de tuer des vagues d'ennemis et d'améliorer son tank, pour devenir assez fort et pouvoir affronter le boss final.
*Roguelike = Le roguelike (ou rogue-like) est un sous-genre de jeu vidéo de rôle dans lequel le joueur explore un donjon infesté de monstres qu’il doit combattre pour gagner de l’expérience et des trésors.
H : Quels sont les langages/technos que tu as utilisés ?
TB : En termes de langage, j'ai utilisé exclusivement du C#. Sinon j'ai utilisé Unity comme moteur de jeu, avec Unity Lobby pour la configuration et création des lobbys, Unity Relay pour la connexion en réseau, et Netcode for GameObjects comme bibliothèque pour gérer le code multijoueur.
H : Quels ont été les plus grands défis (techniques et non techniques) que tu as rencontrés en réalisant ce projet ? Comment les as-tu résolus ?
TB : Le défi technique le plus grand a sûrement été d'intégrer le code multijoueur pour toutes les features du jeu, il y a pas mal de nouvelles logiques de travail à intégrer par rapport à un jeu solo, et il faut synchroniser ce qu'il se passe côté client et serveur. Pour surpasser ce défi, j'ai lu beaucoup de documentation sur Netcode for Gameobjects, regardé beaucoup de tutoriels pour être certain de tout comprendre. Et j'ai aussi beaucoup tâtonné en faisant pas mal de tests de code et de builds, pour voir ce qu'il se passait côté serveur et côté client.
En défi non technique, je dirai que le plus grand défi a été la gestion de mon temps lors du projet. Avant de me lancer dans le projet, je me suis imposé une roadmap de travail à effectuer chaque semaine, en me laissant une petite marge en cas d'imprévu avant la fin du projet. Et ensuite, tous les matins, je m'attribuais une ou plusieurs tâches à effectuer pour la journée, qui devait me permettre d'arriver au bout de ma semaine en ayant atteint mes objectifs. Le planning a été très dense le premier mois de travail, mais grâce à la marge que je m'étais laissée, j'ai pu finir le projet sans trop de pression de temps sur les 3 dernières semaines.
H : Comment as-tu géré ton temps pour rendre le projet à temps ?
TB : L'élaboration du projet m'a appris à prendre le temps de comprendre un concept avant de me lancer aveuglément dans le code. J'ai perdu énormément de temps pendant le projet car je pensais avoir suffisamment compris la logique multijoueur, alors que ce n'était clairement pas le cas au début. Donc si c’était à refaire, et pour chaque nouveau concept que j'apprendrai dans le futur, je pense que je prendrais plus de temps en préparation du projet, et je ferai attention à moins me précipiter dans le code.
H : Penses-tu que la réalisation de ce projet t’as fais progresser ?
TB : Je pense que la réalisation du projet m'a fait progresser, notamment dans ma gestion du temps et de l'effort sur une période de sprint relativement longue. J'ai aussi progressé dans l'organisation de mon code. Je pense que c'est à ce jour le projet qui m'a demandé d'écrire le plus de scripts différents, et cette complexité m'a permis de me rendre compte de certaines erreurs d'organisation. Donc je pense que sur mes projets futurs je porterai une attention particulière à ce niveau-là.
H : Es-tu satisfait du résultat final ?
TB : Je suis satisfait du résultat final dans la mesure où je n'ai travaillé dessus qu'environ 7 semaines, et dans ce cadre-là, je pense que je n'aurai pas pu faire beaucoup mieux.
H : Comptes-tu continuer/améliorer ce jeu que tu as développé ?
TB : Je ne pense pas continuer à travailler sur Tankstorm pour le moment, j'ai besoin de passer à autre chose. De plus, je pense que je pourrai plus facilement mettre en pratique ce que j'ai appris en termes de méthodologie et de technique sur ce projet en travaillant sur un autre jeu.
H : Avais-tu des appréhensions quant à la présentation de ton projet devant tes pairs et un jury d’expert ?
TB : Pas vraiment, j'étais assez fier de mon projet, et j'y ai quand même passé assez de temps pour bien le connaître, donc je n'avais pas de raison de stresser de mon point de vue, en dehors de l'oral en lui-même qui forcément rajoute un peu de stress. Mais pour le projet en lui-même ça allait.
H : Maintenant que tu as terminé Holberton, que vas-tu faire ensuite ?
TB : Idéalement j'aimerais trouver un emploi dans un studio de jeux vidéo, que ce soit pour faire de la VR ou du jeu plus classique.
H : Quel conseil donnerais-tu à un étudiant qui commence le cursus ?
TB : Ne pas hésiter à aller chercher plus loin à chaque projet. Il y a 1000 façons différentes de faire les choses sur Unity, mon conseil serait d'explorer plusieurs chemins plutôt que de se contenter d'avoir un projet qui fonctionne et de s'arrêter directement.
Avant de rejoindre l’aventure, Thomas était infographiste 3D, dans mon dernier emploi il modélisait des voitures pour une boîte dans le secteur automobile. 18 mois après le début de sa formation, il est capable de créer un jeu vidéo, de s’imposer une roadmap et de suivre son projet.
Si comme lui, vous aussi, vous voulez être capables d’une fulgurante ascension technique : Rejoignez l’aventure !
Student Success Manager