Post-mortem d’un jeu horrible de game jam…
Première place de la Jam Make Something Horrible de Canard PC!!! Trop la classe.
Pour le coup, je me dis que ça peut être sympa de raconter un peu les coulisses de ce projet plus que chaotique, alors qu’il n’a duré que 10 jours.
Ça parle de ce jeu : http://dvyk-kiep.itch.io/lorie-and-the-blind-quest
C’est gratuit, alors jouez-y avant de lire la suite…
4 Mai 2015
Au départ, je souhaitais réaliser un jeu pour la Ludum Dare 32. Mon domaine de prédilection étant le level design et la majorité des thèmes me permettant d’aller dans cette direction, j’étais extrêmement motivé. Mais finalement, le thème choisi fut “Unconventionnal Weapon”. J’avais bien une idée… Mais un gameplay avec une arme, ça demande pas mal de code, certes pas beaucoup pour l’arme… Mais surtout de programmer un comportement d’ennemi. Et clairement, je n’avais pas le temps, ni les compétences.
Et là on me parle de Make Something Horrible 2015… Alors je me dis pourquoi pas.
J’avais déjà fait un First Person Puzzle en 7 jours pour le 7DFPS (Beyond Perception : http://gamejolt.com/games/beyond-perception/28833), j’ai suffisamment de base en Unity3D, un ami compétent, des tutos et mes frères motivés pour créer un truc débile.
Alors c’est parti : Créons quelque chose d’horrible !!! (et si possible en 3 jours, parce que j’ai d’autres projets en cours. Ça me fera une petite pause ludique)... Si seulement j’avais su.
Pour me présenter rapidement, j’ai un parcours dans plusieurs studios en tant que game/level designer. J’ai monté une petite boîte avec des amis pour faire du mobile. On a sorti l’année dernière un puzzle game mobile avec 3 autres personnes, sur lequel j’ai conçu 500 niveaux (http://www.bardadum.com). Je travaille actuellement sur des jeux PC/Console...
Le point de départ pour le concept fut une réflexion, après avoir testé un First Person aveugle, réalisé lors d’une jam. ZERO graphisme, juste des sons et se déplacer en 3D : c’était injouable, mais cette idée d’un FPS aveugle avait un potentiel.
J’ai repensé aux autres exemples de jeux à la première personne où l’on joue un personnage aveugle et qui font systématiquement tous la même chose : l’humain devient une chauve-souris (non, pas Batman), avec des capacités de Sonar :
Devil’s Tuning Fork - https://www.youtube.com/watch?v=OrD_SolO7ag
Pulse - https://www.youtube.com/watch?v=fq60KLAH_is
Wander (ENJMIN) - https://www.youtube.com/watch?v=5vcotT7OtSU
Perception - https://www.youtube.com/watch?v=L_1zUXv5l7M
Je me suis dis, qu’il devait y avoir de moyen de représenter ce handicap différemment, d’une façon à la fois plus réaliste, mais sans être comme dans le jeu de la jam, sans aucun visuel et totalement injouable. En voulant respecter le fait qu’il n’y ait aucun graphisme, il en oubliait qu’une personne aveugle a le sens du toucher. Dans ce jeu, on ne savait même pas si on était en train d'avancer ou de foncer dans un mur. Pourtant l’aveugle le sait, tout est noir, mais ses autres sens compensent en partie. Il fallait du visuel pour que ça ait du “sens” face à son écran.
Ma première idée était de faire briller les éléments qui émettaient des sons. Avec une mise au point de caméra adaptée, les objets étaient flous à distance et devenaient visibles plus près… Mais finalement ça revenait pratiquement à la même chose que Beyond Perception. Les sons venaient de ses mêmes objets brillants, ce qui faisait perdre beaucoup d’intérêt à l’utilisation de l'ouïe et des sons eux-mêmes pour se déplacer dans l’espace. Il fallait donc spécifiquement une représentation graphique du sens du toucher.
Jour 1
Skype et Google Drive sont ouverts. Deux de mes frères sont là. L’un débute sur Blender, l’autre veut nous aider en cherchant les sons libres et en les réarrangeant sur Audacity. Le scénario prend forme, une petite fille aveugle dans une famille de psychopathes, à qui on donne des missions absurdes. Mon frère à la modélisation veut faire des trucs un peu crade, style Really3D (https://www.youtube.com/user/Really3D) et fait des concepts arts sur Paint, histoires que ça soit volontairement moche pour la modélisation après.
On dessine le plan de la maison sur les outils de dessins de Google Drive.
L’idée de l’étage est d’avoir un couloir central, avec des pièces sur les côtés (structure type donjon), le RDC est plus ouvert, long à traverser en suivant les murs, rapide mais compliqué en coupant au travers (open world), la cave est un mix des deux, avec de grandes pièces et une architecture moins “carré” que l’étage.
Chaque pièce de la maison doit avoir un objet spécifique, faisant un bruit continu. On lance l’idée d’avoir des objets dont les sons se déclenchent en tapant dedans, comme casser les tableaux et vases, ou en butant sur des jouets au sol, style une poupée qui parle quand on marche dessus, ou un camion de pompier. Finalement on aura pas le temps de faire ces objets là. Dans ce concept initial, on imagine aussi un jardin, une maison voisine avec la grand-mère et un chien… Finalement tout ça sautera aussi.
On fait la liste des missions/objectifs, lieux, sons et objets 3D. Je décide de faire les choses les plus simples directement sur Unity avec les formes géométriques basiques, mon frère gardant les éléments les plus complexes et les personnages pour Blender. On se donne 3 jours pour tout faire : 1 pour la modélisation, 1 pour les scripts et 1 dernier pour intégrer les sons… J’avais mal évalué le travail.
Jour 2
Début de la modélisation. Ça avance bien, premiers meubles et personnages apparaissent, tout part vraiment bien, même si ça prend plus de temps que prévu.
Jour 3
Je dois tester le rendu. Jouant un enfant, il faut adapter tous les meubles, pour donner une impression de grandeur. Le FPS Contrôleur de Unity mesurant 1m80 et ne voulant pas prendre de risque en le modifiant, je dois me fier à mes propres échelles. La commode mesure 1m70 de haut, l’armoire culmine à plus de 4m… Je ne peux me fier aux hauteurs de Unity, du coup je règle tout selon les meubles précédents. Les poignées sont à hauteur des yeux, on voit a peine au dessus des tables et bureaux. Et je dois régler absolument la “vision” du toucher du personnage, pour savoir ce que l’on verra vraiment. Du coup, je me lance dans la modélisation de la maison, toujours avec des “cubes” Unity.
Jour 4
La maison est construite en fin d’après midi. Je reçois le bras de Lorie, je l’attache à la caméra et je mets une petite source de lumière dans la paume de sa main…
Ça ne marche pas, on ne comprend rien et c’est injouable… On arrive pas à reconnaître les objets en 3D devant nous. Déception. Je mets tout en pause, dis à mes frères d’arrêter. Je verrai demain, si c’est possible de sauver quelque chose, mais on a déjà dépassé le temps qu’on s’était fixé. Il en faudrait au moins le double. Je décide de faire une pause d’une journée, même si on est à une semaine de la fin de la Jam.
Jour 5 (après la pause d’un jour)
Finalement, ce n’était qu’une question de réglage. Mais il m’a fallu une journée entière pour trouver le bon paramétrage. La lumière de la main avec un peu plus de rayon et beaucoup plus de puissance. Rajouter un second point de lumière au niveau des pieds du personnage, bien moins puissant, mais ayant un plus grand rayon. J’ai essayé avec un projecteur, mais impossible de trouver un configuration correcte. Je mets quelques filtres sur la caméra, du grain, du niveau de gris, du flou de profondeur de champs… Je règle aussi la vitesse de déplacement du personnage. 1 journée, mais mon personnage est correct. La prod peut reprendre et cette fois, on ira jusqu’au bout.
Jour 6
On coupe. Pas d’extérieur, de jardin, de grand-mère, ni de chien… Les objets facultatifs sautent aussi, le vélo, les percussions du frère, la camion de pompier en jouet… On coupe à fond.
62 objets prévus au total. On en a fait finalement “que” 54. Les 2 tiers sur Unity, les autres sur Blender. J’ai fini mes objets, mais mon frère qui bosse sur Blender, fait un stage en journée. Il lui faudra encore quelques jours pour tout finir. Je décide, d’optimiser mes collisions, virer toutes les petites boites de collisions inutiles de mes objets et les remplacer par des grandes. On valide les missions du scénario en fonction de ce que l’on a fait.
Jour 7
Je décide de faire un logo. Oui le logo, alors que le jeu n’est pas encore jouable. J'avais vraiment besoin de me remettre sur un logiciel que je maîtrise et laisser Unity3d de côté quelques heures, alors pourquoi pas. Le projet Unity s’appelle “Blind Quest”, on avait rien de mieux. Et là mon frère me balance “Blind Quest” ça fait penser à “Ori and the Blind Forest”. Ok, on à le titre. “Lorie and the Blind Quest”. Je m’inspire/repompe le logo en trouvant des polices similaires. Et hop, c’est trop classe et ça remotive pour la suite.
Après-midi, je place les meubles dans la maison. Je mets un brouillard blanc (temporairement) histoire d’y voir quelque chose. Je teste, c’est sympa… Mais ça pourrait être mieux. Et à moins d’une semaine de la deadline, je fais l’erreur classique : Ça doit pouvoir être encore plus beau, alors que le gameplay n’est même pas codé.
Jour 8
Alors là, je ne sais pas pourquoi, mais je me dis que mon idée de lumière dans la main, c’était sympa, mais finalement, faire que la main émette des particules brillantes sur les objets, ça serait plus cool. Et effectivement ça l’est. Le potentiel est énorme et la direction artistique pourrait donner un truc comme “A Light in Chorus” ().
Sauf que non. Les particules rentrent à moitié dans les blocs 3D, ce qui les fait scintiller, ou apparaître qu’en demi cercle. Les particules s’arrêtent sur mes collisions simplifiés (donc des gros cubes) donc on ne distingue pas les formes des meubles. Il faudrait que je régénère toutes les collisions de mes meubles et que je vire tous les volumes 3D pour que mes particules flottent dans le vide (une demi journée de travail pour faire ça, c’est peut être jouable). Mais surtout, il me faudrait plus d’une journée pour paramétrer l'émetteur de particules, pour que les particules restent assez longtemps pour qu’on puisse révéler les formes, mais que ça soit pas non plus du Unfinished Swan, où il suffit de repeindre les murs à tout va, jusqu'à révéler un passage. Un dosage subtil est nécessaire. Et il faudrait bien plus qu’une journée pour l’obtenir.
Donc après cette journée de test, je me raisonne et décide d’arrêter là cette expérimentation et de finir le jeu, comme il était le matin même, avant de changer tout le système de vision. Je garde cette idée dans un coin de ma tête pour un truc plus sérieux et avec plus de temps, mais là je veux finir ce projet et c’est encore possible si je me recentre sur le cœur du gameplay.
Une journée de perdue. On est mardi.
Jour 9
Mon ami et collègue JR me file un gros coup de main pour les scripts Unity. Je génère les quelques scripts utiles : activer/désactiver un élément, jouer un son, changer l’objectif. On en profite d'ailleurs pour rajouter une carte et un rappel de l’objectif en cours. C’est un coup de bol qu’on fasse ça alors que ce n’était pas prévu. Car sans la carte et l’objectif, le jeu aurait été impossible… Comme quoi, on a beau avoir tout réfléchi, des fois l’instinct fait bien mieux et sauve un concept.
Je créais la première mission du jeu. A midi, tout marche, mais il n’y a pas encore de son. Mon autre frère me passe les sons qu’il a récupéré à droite et à gauche sur des sites de sons libres de droits et gratuits. Il a fait quelques montages sympa sous Audacity.
Je les rajoute dans le jeu et nouveau problème. On entend les sons à travers les murs et surtout les sols et plafonds… Une nouvelle fois le jeu perd tout son intérêt. Nouveau sauvetage grâce à mon ami, qui me conseille de rustiner en plaçant des triggers dans chacune des pièces pour activer les sons seulement quand on est dans la pièce. Ça fera l’affaire, même si des sons atténués par les murs auraient été beaucoup plus cool.
Le soir, je décide de créer la page itch.io du projet, avec l’intuition que sinon ça risquerait de se faire trop dans l’urgence. Hop, nouvelle surprise, la Jam se finit dans 24H et non 48H, comme je l’imaginais. Vendredi minuit, c’est en fait la nuit de jeudi au vendredi… alors que je pensais que ça serait la nuit de vendredi à samedi… Bordel! J’ai aucune voix et il me reste toutes les missions à créer… en UN seul jour.
Une nuit peu sereine m’attend, mais je dois dormir avant de boucler les dernières heures du projet (avec beaucoup de doutes sur le fait que ça puisse passer dans le temps restant).
Jour 10
Rush. J’enregistre les voix à l’arrache avec ma femme. On devait aller voir Mad Max : Fury Road… On repousse ça au week-end. Je bosse comme un malade pour tout boucler. Aucune pause dans la journée.
3h avant la fin, j’ai la moitié des missions, mais heureusement aucun bug. J'envoie tout au fur et à mesure à mes frères pour qu’ils testent le jeu. En 2h, je finis les missions restantes, j’envoie le fichier sur le site, je me calme, il reste 1h, je fais ma page de présentation, je fais la bannière, prends des screenshots et les upload, pépère, j’ai le temps et…
Oh la vache! Il est 23h59, le dernier screenshots s’upload… Je m’en fous, je publie… Il est 00:00
J’y suis?? Je cherche dans la liste. 41 jeux, je ne voit pas Lorie…
Ouf… Il est là.
Merde, encore comme le 7DFPS… 2 game jams… Deux fois que je finis sans respirer pendant la publication à la dernière seconde du délai… Plus jamais ça ! Plus jamais de dernière seconde de merde.
Mes frères testent la version uploadée sur le site, il y a un bug à la fin, le jeu ne se finit pas. Je passe encore 1h à corriger, puis vérifier le truc. Et je balance une MAJ à 1h du mat. 1 jour de plus, ça serait passé large dans mon planning final. Heureusement que j’ai vu le compteur de la page de la jam 24h avant la fin...
Make Something Horrible terminé. Ouf. Quelle aventure.
Faire un jeu c’est dur. Faire un jeu pour une jam c’est dur et stressant...
(ALERTE SPOILER!)
Spoiler Alert!
Finalement le jeu est très proche de l’idée qu’on en avait au départ. Mais par contre, il est beaucoup plus abouti que ce qu’on avait prévu de faire en 3 jours...
Je vais essayer de faire une version “Director’s Cut Ultimate Edition” avec quelques améliorations. On verra en août.
Sinon testez les autres jeux de la Jam, il y a des trucs vraiment marrants : http://forum.canardpc.com/threads/96...s-Canard-PC%29
Davyn Karan
PS : J’ai préféré utiliser un autre pseudo pour la Jam, histoire de garder une totale neutralité face au jury de Canard PC (ayant déjà eut un article sur Beyond Perception dans le mag), et n'étant pas très confiant sur la réception d'un tel jeu.