MY LIFE IS CACTUS
Jeu de Game Jam (Avril 2019)
Tower defense en first person dans un désert envahi par les zombies.
Introduction

Du 27 au 30 Avril 2019 a lieu la Ludum Dare 44. Le thème est "Your life is currency".

Nous sommes 3 amis, Corentin Lange : sound designer et musicien amateur, Jules Persch : étudiant programer et moi-même Axel Denjean : étudiant game designer.

Notre but : faire un jeu que l'on considère comme bien avancé en utilisant les méthodes de travail et les connaissances acquises en cours.

Je vous présente ce projet et surtout son développement en 3 parties. Tout d'abord, la phase de réflexion, la phase de développement et enfin les tests et améliorations.

La réflexion

Pour ce projet, nous avons choisi de ne pas perdre de temps à trouver des idées originales. Nous sommes partis sur l'idée que notre vie sert de monnaie comme on peut traduire littéralement le thème de la LD44.

Nous avons choisi le type de jeu tower defense car le but est simple : survivre à des vagues d'ennemis. Les actions sont aussi simples : acheter une tourelle, l'améliorer, gagner de l'argent (de la vie) pour continuer.

Nous avons choisi de jouer à la première personne pour 2 raisons :
- Nous voulions avoir un jeu en 3D dans lequel le joueur se déplace pour travailler le Level Design. En effet, les repères sont importants pour s'orienter.
- La vue à la 1ère personne offre une immersion dans laquelle le joueur se sentira plus facilement stressé et en difficulté.

Pour renforcer ce dernier point, le joueur n'a pas de base à défendre contrairement au tower defense classique mais il doit se défendre lui-même. En effet, il est la cible principale des ennemis.

Il ne nous reste qu'à choisir un univers qui colle avec notre gameplay et on peut se lancer dans la conception.
Comme vous l'avez peut-être remarqué notre équipe n'a pas de graphiste. Heureusement pour nous, Epic Games propose un lot d'assets très conséquent gratuitement pour des projets à but non lucratif. Le désert de cactus et d'ossements est dans notre bibliothèque, il nous manque les ennemis : les classiques vagues de zombies nous enchantent. Mixamo nous propose un zombie gratuit, riggé et animé...

C'est parti pour la conception et la fabrication (le développement) !

Le développement

Nous découpons le travail en plusieurs tâches : le joueur, l'environnement, les zombies, les tourelles, l'interface et enfin le son.


Le joueur (les 3C) :

La tâche "joueur" comprend les déplacements, la gestion de la caméra, les inputs et les actions possibles (3C).

Le personnage se déplace avec les touches Z, Q, S et D. Il peut aussi sauter avec la barre espace. La caméra à la première personne s'oriente en fonction de la souris. Le joueur peut planter un cactus n'importe où (sur un sol vide) en laissant enfoncé le clic gauche pendant 1 seconde. Il peut ouvrir le menu d'amélioration d'un cactus en se positionnant proche de ce dernier, en le regardant et en maintenant enfoncé le clic gauche. Les deux dernières conditions remplies empêche le personnage de se déplacer. Le joueur peut ensuite choisir parmi plusieurs améliorations, selon l'état du cactus (cf. les cactus ci-dessous), en appuyant sur les touches correspondantes (Z, Q, S et D). Le personnage ne peut pas planter ou améliorer de cactus s'il n'a pas suffisamment de points de vie. Il perd des points de vie lorsqu'il se fait toucher par un zombie et en gagne lorsqu'il récolte les fleurs d'un cactus fleuri. S'il atteint 0 point de vie ou moins, le personnage meurt et le joueur a perdu la partie.


L'environnement :

La tâche "environnement" comprend le level design et l'ambiance.

Pour un level design bien réalisé pour ce projet, j'ai noté les points suivants :
- le joueur doit pouvoir se repérer facilement.
- le joueur doit avoir l'impression que la map est grande et désertique sans pour autant qu'elle soit vide.
Pour le premier point, nous avons placé à la main différents grands assets visibles de loin et dont l'orientation est facilement reconnaissable (crâne et cage thoracique d'animal géant, rochers et le soleil).
Pour le second point, nous avons utilisé le système de foliage d'unreal engine 4. Et pour rendre le tout plus vivant, nous avons vallonné le terrain. D'ailleurs, le joueur débute la partie sur une sorte de colline d'où il peut voir les zombies arrivés.
L'ambiance globale doit rappeler le Far West. La lumière est rougeâtre, le soleil en train de se coucher, il y a une sorte de brume de poussière qui flotte dans l'air.


Les zombies (les ennemis) :

La tâche "zombie" comprend le spawn, leurs déplacements et leurs actions.

Les zombies apparaissent procéduralement selon les règles suivantes : un zombie apparaît, toutes les 5 secondes, sur un des 10 points de spawn de la map choisi aléatoirement, avec les statistiques de vie et de taille proportionnelles au temps passé en jeu. En effet, les zombies sont de plus en plus grands et de plus en plus résistants. Les zombies peuvent se déplacer comme le joueur mais ne peuvent pas sauter. Ils vont tout droit vers le joueur sans pathfinding et ce même s'ils ne le voient pas. Ils peuvent attaquer le joueur lorsqu'il est à leur portée d'allonge (1m). Les zombies perdent des points de vie lorsqu'ils se font tirer dessus par un cactus d'attaque.

Les tourelles :

La tâche "tourelle" comprend le spawn, leurs pouvoirs et les états.

Les tourelles sont plantées par le joueur sur une surface inclinée de moins de 45°. Un cactus de 3m apparaît. Il peut avoir 2 états : vierge ou bourgeonné. Le cactus vierge ne peut pas être récolté alors que celui bourgeonné le peut. Lorsqu'il est récolté, il donne des points de vie au joueur. Chaque tourelle a un indicateur de pouvoir (une fleur au dessus). La couleur de la fleur indique ses pouvoirs. Les pouvoirs/améliorations sont les suivants :
- récolte : le cactus rend plus de points de vie et deviens bourgeonné plus rapidement. Ces 2 points peuvent être encore améliorés.
- soin : le cactus tire sur le joueur pour lui rendre des points de vie. La distance de tir, la cadence de tir et le points de vie rendus peuvent être améliorés.
- attaque : le cactus tire sur les zombies. La distance de tir, la cadence de tir et les dégâts infligés peuvent être améliorés. De plus, le cactus d'attaque peut être amélioré pour obtenir des pouvoirs spéciaux : le tir de zone ou le ralentissement.
Chacune de ses améliorations a un coût. Ce coût est calculé en additionnant le coût de la dernière améliorations + le coût de cette amélioration.
Par exemple : je plante un cactus, il coûte 200 PV, à partir de ce point là le système ci-dessus se met en place. L'amélioration en "attaque" coûte 150 puis chaque amélioration des dégâts coûte 150 de plus, soit 300, 450, etc...
Chaque cactus peut être amélioré 5 fois au maximum.


L'interface :

La tâche "interface" comprend les informations utiles et le "guide".

Les informations utiles pour le joueur sont : ses PV, les améliorations et les statistiques des cactus.
Les PV du joueur sont affichés en haut, chaque case représente 100 points de vie sur un total de 1000. Les améliorations et les statistiques des cactus sont écrites dans un cadre noir lorsque le joueur ouvre le menu d'amélioration.
Le guide représente pour moi, le tutoriel ou plutôt les contrôles affichés lorsque le joueur peut les utiliser.


Le son :

La tâche "son" comprend les musiques et les indicateurs.

Il y a 2 musiques créées par Corentin ; à ma demande, l'une est dynamique, électrique et augmente la tension que ressent le joueur et l'autre est beaucoup plus calme et apaise le joueur lorsqu'il a perdu. Les indicateurs sont les sons comme :
- les cris des zombies qui indiquent leur position (lorsqu'on joue avec un casque).
- les cris du personnage lorsqu'il prend un coup.
- les bruitages lorsqu'un cactus devient bourgeonné, tire, est amélioré ou récolté.
- les bruits de pas, de respiration et de vent pour aider l'immersion.

Les tests et les améliorations

Durant la game jam, il est assez difficile d'organiser des tests conséquents (surtout avec seulement 3 développeurs et depuis chez soi). Le jeu a donc été shipped avec quelques bugs et surtout très peu d'équilibrage. Mais, la Ludum Dare laisse du temps aux créateurs d'envoyer une version "update" de leur jeu dans les jours qui suivent. Les jeux ont alors eu le temps d'être joués/testés par des dizaines voire des centaines d'autres créateurs, d'être commentés et de fait d'être corrigés/améliorés. Aucune nouvelle mécanique n'a le droit d'être implémentée.

Voici quelques commentaires des joueurs :

"The music is awesome. The game is fun, but I guess something went wrong, because I only can move to the right. Pressed A or D I moved to the right. With controllers it works fine. Great game, nice job!" - Kregames

"I like how you used the different colors on the cacti to mark different cactus types." - Apace

"My favourite entry so far, easily played it half an hour. I LOVED it! Love tower defence.It’s like a 3D PvZ, but totally legit. I’d seriously consider polishing that and putting it on steam for a few bucks if you want to.
What I would definitely polish if you even want to: Add Numbers to health bar. I have no idea how much 300, 400 oder 600 is and whether I have enough or not. Add a “tutorial stage”. What I think might be cool as well is if you add a round map with yourself in the center (like in the witcher), so you get a feel how the game progresses, with a lot of red dots coming closer.
Really a great game, you can be proud of yourselves :)" - angiemon

"Funny game, it let me be relaxed and just chill planting cacti. I was able to prevent the zombies from doing anything to me by walling in, not sure if that was intentional. Music and audio were good, and I liked the mechanic of using your HP to pay for everything, then harvesting the cacti to recover HP.
Good job!" - JoshAnthony1990

La plupart des commentaires étaient encourageants et bienveillants. Certains très constructifs, d'autres trop ambigus. Le métier de QA est assez prise de tête, en plus d'analyser le jeu, il faut analyser les commentaires des joueurs et arriver à les trier pour en tirer la vraie problématique.

Par exemple, le premier problème vient des contrôles en QWERTY que nous n'avions pas testés (parce que nous sommes français) malgré le fait d'avoir pensé à les implémenter.
Dans le 3ème commentaire, angiemon dit qu'elle a facilement joué une demi-heure. Même si le jeu devait être simple et que le commentaire est plaisant, il y a un problème : le joueur peut facilement survivre aussi longtemps qu'il veut, soit en courant tout le temps, soit en plantant des cactus tout autour de lui. Angiemon nous conseille quelques améliorations, elle est peut-être designeuse, mais dans le doute, j'ai préféré analyser les problèmes qu'elle évoquait plutôt que d'implémenter directement ses idées. Les problèmes soulevés sont :
- la barre de vie n'est pas lisible. Les nombres peuvent aider mais le problème vient plutôt du fait que la barre est en symétrique, qu'elle est semi-transparente et qu'elle est prend toute la longueur de l'écran. L'oeil du jour n'a pas le temps de l'analyser entièrement sans prendre trop de risques. Une barre plus courte, sur le côté et pas transparente résoudrait le problème.
- le tutoriel est une bonne idée, il y a beaucoup de mécaniques et de signaux à comprendre pour jouer correctement au jeu, une suite de niveaux scénarisés seraient une bonne option.
- le dernier point montre un problème de repérage, malgré le fait d'y avoir pensé comme cité dans la partie environnement, le joueur se perd. La mini map est une option mais elle ajoute plusieurs autres problèmes : quelles informations mettre dessus ? Quelle taille ? Pour moi, la lisibilité ne sera pas au rendez-vous (encore moins sans artiste) et nous avions conclu qu'il serait trop difficile de l'implémenter dans le lapse de temps qu'il nous restait.

Conclusion

La création d'un jeu en 48 heures est un excellent exercice pour les nouveaux développeurs. Toutes les phases de développement s'enchaînent rapidement. Pour les plus expérimentés, elle permet de tester de nouvelles mécaniques et de changer de projet.

Pour moi, l'ambiance générale et la bienveillance des participants sont très agréables. J'ai pu, grâce à ce projet, transformer les connaissances acquises en cours en compétences et choisir plus précisément le métier que je voulais faire, soit technical designer. En effet, mon passé de programmeur m'a rattrapé.