De l'autre côté du miroir (ou mon projet de jeu personnel)
Cela faisait un petit moment que je voulais écrire quelque chose sur mon petit projet de jeu vidéo rien qu'à moi. Mais je me disais toujours que je le ferai plus tard, après avoir publié quelques articles. Je publie régulièrement mes quelques avancées de ce projet via Twitter. Et quelques lecteurs m'ont fait comprendre qu'il serait intéressant que je relate un peu cette expérience. Je pense donc faire une présentation détaillée et je reviendrai dessus de temps à autres dans de futurs billets. Et bien allons-y !
Hé bien, tu te doutes bien, j'adorais surtout les soluces qui utilisaient la seconde méthode. Que ce soit les niveaux dessinés (parfois très joliment) à la main ou alors faits d'assemblages de clichés, je restais des heures à scruter les pages de ces soluces. Parfois, je prenais un crayon et je m'amusais à m'imaginer faire les jeux que je n'avais pas. Je faisais genre je saute sur les plateformes, que je tombais dans le vide, etc... Lorsque j'écris ça, là, de suite, j'ai vraiment peur de commencer à te perdre. Mais crois-moi, je vais aujourd'hui très bien. Bon, même si j'ai de grosses difficultés d'un point de vue social.
Au commencement, le Big Bang. Puis vint la soluce
Avant d'aborder le cas de mon projet actuel, je trouvais ça intéressant de revenir sur certains facteurs qui ont probablement favorisé mon attirance pour la création de jeux vidéo. Tout du moins, je pense que quelques germes devaient être présentes depuis ma tendre enfance.
Alors, tu te doutes bien que le fait d'avoir été passionné de jeux vidéo depuis très longtemps aide forcément un peu.
En outre, les soluces présentes dans les vieux magazines de jeux vidéo des années 80/90 ont dû fortement contribuer à stimuler ma fascination pour le level design, et plus précisément un certain type de présentations. En effet, certains journalistes habillaient parfois leur soluce uniquement avec des screenshots maison. La qualité de ces images étaient souvent assez laides, conséquence de pigistes qui composaient avec les moyens du bord. Je me souviens de l'excellent Gregoire Hellot qui expliquait comment ils procédaient à la rédaction de Joypad: En fait, pour éviter les reflets des écrans cathodiques, et pour avoir l'image la plus chouette possible, ils se plongeaient dans le noir et prenaient de multiples clichés des jeux afin de pouvoir décemment garnir les pages des magazines. Ils concédaient volontiers que les screens pris dans les salons étaient un poil plus délicats étant donné qu'ils devaient faire avec les conditions du lieu où ils se trouvaient, comme par exemple s'accommoder d'une lumière pas toujours adéquate.
La seconde manière de rédiger des soluces, et celle qui me fascinait, étaient de cartographier intégralement (ou en partie) les niveaux des jeux, soit en les dessinant à la main, soit en assemblant des centaines de clichés qui, mis bout à bout, constituaient l'intégralité des mondes parcourus. Et purée ! Procéder de cette façon a dû demander une charge de travail relativement colossale. C'est d'ailleurs toujours Greg de Joypad qui expliquait que pour parfaire ces soluces, les journalistes du magazine progressaient dans les jeux tout en essayant de ne pas avancer trop vite, afin de pouvoir prendre chaque partie des niveaux en photo. Après coup, ils reconstituaient chaque zones via toutes les photos prises. Un véritable puzzle ! Je n'ose même pas imaginer combien cette manoeuvre devait leur coûter en thune lorsqu'ils se rendaient systématiquement chez le Kodak du coin...
Extrait du tout premier Mega Force, magazine officiel des consoles Sega. Ici le niveau de la tempête de Castle Of Illusion sur Megadrive. |
Hé bien, tu te doutes bien, j'adorais surtout les soluces qui utilisaient la seconde méthode. Que ce soit les niveaux dessinés (parfois très joliment) à la main ou alors faits d'assemblages de clichés, je restais des heures à scruter les pages de ces soluces. Parfois, je prenais un crayon et je m'amusais à m'imaginer faire les jeux que je n'avais pas. Je faisais genre je saute sur les plateformes, que je tombais dans le vide, etc... Lorsque j'écris ça, là, de suite, j'ai vraiment peur de commencer à te perdre. Mais crois-moi, je vais aujourd'hui très bien. Bon, même si j'ai de grosses difficultés d'un point de vue social.
Disons que ces croquis faisaient partie de ces moments où je me retrouvais dans ma bulle, celle qui me permettait de m'évader d'une vie familiale pas toujours très reluisante.
Ces solutions de jeux m'inspiraient tellement que je m'amusais parfois à en reproduire sur papier.
Je m'armais de mes feutres et je crayonnais plein de niveaux sur plusieurs feuilles et autres blocs du taf de mes parents. Préférentiellement, je dessinais par terre, abandonnant le bureau que mes parents m'avaient acheté... pour rien. Quoique si. Il me servait principalement de débarras. Vous savez, ces espèces de bureaux en bois que l'on pouvait plier. Probalement un meuble Ikea.
J'avais, je pense, déjà une appétence naturelle pour le level design, et notamment envers ceux des platformers, le genre roi des années 16 bits. Je trouvais ça fascinant tous ces niveaux qui défiaient très souvent les lois de la physique: Avec des bouts de terrain en lévitation, des tracés alambiqués et autres décors taillés en fonction des capacités physiques des protagonistes principaux.
Malheureusement, je n'ai plus du tout aucune trace des tous ces souvenirs d'enfance. C'est dommage. J'aurais tellement aimer illustrer mon article avec de vieux dessins de moi.
Soluce de Psycho Fox sur Master System. |
Les hommes créèrent l'éditeur de niveaux
Super Mario Maker 2 |
En parallèle, je connus également les joies de l'éditeur de niveaux à travers Macadam Bumper qui tournait régulièrement sur mon vieillissant Amstrad CPC 6128. Ce titre de flipper, en somme très classique, s'exhibait d'un habillage assez austère visuellement, et incluait un aspect légèrement fripon, puisque la femme sur le côté de l'écran pouvait se retrouver dévêtue lorsque le joueur était suffisamment habile pour ne pas mourir trop vite. Un truc beauf à 80% en somme.
Sincèrement, je n'appréciais ce titre pas plus que cela, jusqu'à ce que je découvre qu'il intégrait un éditeur de niveaux en son sein ! Stupéfaction !
Macadam Bumper |
Je découvris donc les joies de créer mes propres flipper. Trop "cool et branché" !
En définitif, j'ai dû en créer des dizaines et des dizaines. Ceci étant dit, personne n'a pu jouer à ces tracés, à part moi, bien évidemment. J'expérimentais un peu tout et n'importe quoi: Par moment, je m'amusais à pousser les limites de l'éditeur en plaçant un maximum de bumpers ou en faisant des flipper ultra alambiqués. Parfois, le jeu avait un peu de mal à suivre. C'était rigolo de faire subir ça à ces quelques Ko qui ramaient. A cette époque, je devais avoir entre 8 et 10 ans, je pense.
Ultérieurement, je m'éclatais ensuite sur le cheat code des Sonic Megadrive qui octroyait au hérisson bleu la capacité de se transformer en anneaux, en pièges, en ennemis et en diverses plateformes.
En définitif, j'ai dû en créer des dizaines et des dizaines. Ceci étant dit, personne n'a pu jouer à ces tracés, à part moi, bien évidemment. J'expérimentais un peu tout et n'importe quoi: Par moment, je m'amusais à pousser les limites de l'éditeur en plaçant un maximum de bumpers ou en faisant des flipper ultra alambiqués. Parfois, le jeu avait un peu de mal à suivre. C'était rigolo de faire subir ça à ces quelques Ko qui ramaient. A cette époque, je devais avoir entre 8 et 10 ans, je pense.
Ultérieurement, je m'éclatais ensuite sur le cheat code des Sonic Megadrive qui octroyait au hérisson bleu la capacité de se transformer en anneaux, en pièges, en ennemis et en diverses plateformes.
Plusieurs années ensuite, sur la Playstation première du nom, je me suis mis à me passionner pour les jeux d'infiltration grâce à la folie Metal Gear Solid. Dans cette même période, j'avais pas mal saigné Tenchu 1, qui sortis au Japon quelques mois avant le soft de Hideo Kojima. Après avoir bouclé le titre une énième fois, j'eus écho d'un bruit de couloir au collège: On me souffla qu'il existait un code permettant de créer soi-même ses propres niveaux ! Qu'entends-je ?? Je trouvais l'idée totalement folle, mais je n'ai jamais vraiment creusé la question. Peu importe puisque l'idée avait été implanté officiellement dans Tenchu 2. Cette séquelle, mi-figue, mi-raisin selon moi, avait surtout été un formidable terrain de jeu grâce à cet éditeur. Je me souviens même avoir passé plus de temps sur ce mode plutôt que sur le mode story, que je n'ai finalement bouclé qu'une seule fois, avec les trois personnages. Je m'amusais à faire jouer quelques copains, lorsqu'ils passaient à la maison. En général, ça les faisait chier au bout d'un moment, car j'avais tendance à faire des zones bien trop retordes: J'avais en effet la main un peu trop lourde niveau difficulté. J'avais tendance à foutre des ennemis et des pièges vraiment partout. Le syndrome du mec qui met trop de piment dans ses plats.
Et c'est aussi un peu le syndrome du débutant lorsqu'il s'adonne aux joies de la création de mods, de niveaux ou tout simplement de jeux vidéo. Il a tendance à en faire trop. Ce qui me fait dire que l'enthousiasme est à consommer avec modération, dans ces cas-là.
Editeur de niveaux de Tenchu 2 |
Et si je faisais un jeu ?
Oh ! Mon jeu ! |
Et oui ! Si je faisais un jeu ? Aller !
Je vous passe les détails de tous ces moments où je fantasmais de faire des jeux comme tous ces développeurs de génie. Je me disais que je n'avais et n'aurais jamais le niveau. Ce satané complexe d'infériorité conjugué à mon syndrome de l'imposteur m'auront toujours empêcher de sauter le pas. Ça plus le manque de temps... Car, effectivement, à un moment, je travaillais trop pour pouvoir m'adonner à ce genre de tests. Et puis, je n'avais pas de PC à moi, de toute façon. Je squattais sur le net majoritairement grâce à l'ordinateur du travail. Et puis, j'étais pauvre... Enfin... plus que maintenant, en tout cas.
Je vous passe les détails de tous ces moments où je fantasmais de faire des jeux comme tous ces développeurs de génie. Je me disais que je n'avais et n'aurais jamais le niveau. Ce satané complexe d'infériorité conjugué à mon syndrome de l'imposteur m'auront toujours empêcher de sauter le pas. Ça plus le manque de temps... Car, effectivement, à un moment, je travaillais trop pour pouvoir m'adonner à ce genre de tests. Et puis, je n'avais pas de PC à moi, de toute façon. Je squattais sur le net majoritairement grâce à l'ordinateur du travail. Et puis, j'étais pauvre... Enfin... plus que maintenant, en tout cas.
Ensuite, j'ai eu une trèèèèèès longue période de chômage qui m'a permis de créer une émission de jeux vidéo entre 2005 et 2011 (Le Moggy Aspi Show) qui connut un joli petit succès. Enfin... proportionnellement pour cette époque. Et le montage de ces vidéo me bouffait une grosse partie de mon temps. De surcroît, je ne pensais de toute façon plus tellement à la création d'un jeu. Ceci étant dit, j'avais testé très vite fait Game Maker et j'avais été effrayé par tant de fenêtres et de paramètres que le logiciel me vomissait en plein visage ! La frustration eut le dernier mot. Tout me paraissait tellement compliqué. Et puis, avec mon compère du MAS, nous avions un PC assez défaillant.
Avance rapide sur ma vie: En 2016/2017, je testai Super Mario Maker qui ne m'apporta que frustration. Je reconnais que ce jeu est un formidable outil pour créer des niveaux de Mario de manière ludique et super souple. Mais je me sentais trop limité, trop à l'étroit dans cet éditeur de niveaux. Je l'ai revendu d'ailleurs assez vite. Puis, peu de temps ensuite, je lança à ma compagne: "Hey ! Et si j'essayais de faire un ptit jeu ?!" Elle me répondit seulement: "Bah ouais pourquoi pas". Voilà. Fin.
En réalité, j'ai commencé à faire quelques tests sur Game Maker et Construct 2 en 2017. Je me suis mis dans l'idée de créer un petit jeu de plateforme. Cela me paraissait super sympa, et relativement rassurant, pour débuter. Je n'avais aucune notion dans quoique ce soit: Ni dans le dessin en pixel art, ni dans le code, ni rien. J'avais juste derrière moi mes souvenirs de gamin qui dessinait des Sonic et des Lemmings sur tous les murs de l'appartement. C'est tout. Ah si ! La seule chose que je savais faire, c'était la musique. Ce qui est plutôt rigolo car, souvent, c'est le contraire: J'ai vu pas mal de petites équipes de développeurs indépendants qui savaient coder et dessiner, mais à qui il manquait souvent un compositeur.
Lors de mes premiers pas sur ces logiciels de création, j'étais totalement perdu. Mais tellement perdu, si tu savais ! Pourtant, Game Maker et Construct 2 ont pour vocation d'être plus accessibles qu'Unreal Engine ou même Unity. Et c'est vrai. Ces logiciels sont moins impressionnants, mais ils restent tout de même des outils pour créer un projet de A à Z. Donc, disons qu'ils savent être plus souples mais: "Hé ! Démerde toi mon coco ! Je veux bien être plus souple avec toi, mais tu te débrouilles pour faire ton jeu ! Je vais pas le faire à ta place moi !"... Susceptible ce Construct 2...
Non. Vraiment. Au commencement, il ne faut pas avoir peur de l'inconnu et, surtout, il ne faut pas craindre de tester et d'être très curieux. Un peu comme Christophe Colomb qui a découvert l'Amérique. Tu sais ? Le mec qui ressemble à Gérard Depardieu.
Heureusement, créer un jeu vidéo, même amateur, est totalement viable aujourd'hui, dans un monde avec internet, les tutos Youtube et les blogs qui pullulent sur la toile. Et la plupart des PC ont la puissance nécessaire pour supporter un nombre impressionnant de logiciels.
Je reste persuadé que ce qui m'a motivé aussi était le fait que toutes ces choses soient nettement plus accessibles aujourd'hui qu'il y a encore une dizaine d'années. Il y a encore une décennie et demi, et comme beaucoup de monde, j'imaginais que le manque de diplôme et d'argent constituait un sérieux frein. Bien entendu, même actuellement, ces deux conditions aident pas mal pour se lancer là dedans.
"Funny Valley", premier monde que j'ai entièrement dessiné. |
Mes premiers pas se sont donc fait grâce à quelques tutos glanés sur le net. En tout cas, pour ce qui est des bases. J'étais très motivé, mais créer un jeu, même petit, me paraissait être une tâche colossale.
Au départ, je fis mes premières armes avec des sprites gratuits. Juste le temps de me familiariser avec le code et pour voir si j'étais capable de produire quelque chose sans jeter l'éponge. Et franchement, ça m'a plu ! Même si il faut le reconnaître que mes prémices ont oscillé entre l'amusement et la douleur, il y a quelque chose de magique de voir s'animer à l'écran un truc que l'on a créé. Et 2017, ça coincidait également avec la mise en ligne de la chaîne de La Développeuse du Dimanche qui se lançait dans l'aventure du jeu indépendant toute seule (avant d'être rejoint par Samuel, quelques temps après). Ses vidéo se présentent généralement sous la forme de tableaux de bord dans lesquelles elle montre l'évolution de son jeu, Propaganda. On la voit résoudre divers problèmes liés à la création d'un titre de A à Z. Et puis, c'est franchement rigolo de voir son projet se mettre petit à petit en place. De voir sur quoi elle a bloqué, sur ses doutes, ses inspirations, etc. C'est vraiment passionnant ! De plus, le montage des vidéo relativement dynamique font que c'est toujours plaisant à regarder. C'est probablement une des rares chaînes que je regarde très régulièrement. En outre, ça tombait bien car elle utilise Construct 2, le logiciel que j'ai finalement opté personnellement. L'alignement des planètes, tout ça, tout ça...
En tout cas, elle a été d'une aide précieuse.
Du coup, depuis ce jour, je suis à fond sur ce projet personnel, en plus de composer des musiques pour le jeu vidéo. Oui parce que, principalement, j'essaie de vendre mes services aux développeurs désireux de s'offrir les services d'un compositeur. J'ai eu la "chance" d'avoir déjà pu finaliser la bande son d'un projet étudiant, Phobia, un soft d'horreur qui se joue sur HTC Vive, le casque VR de Steam. Je travaille également toujours sur les musiques de Time Rift, un titre qui sera commercialisé (normalement) sur Steam et Switch dans le courant de l'année 2021. J'écrirais sûrement un truc sur tout ça, un jour, donc je referme cette petite parenthèse.
Comme je l'ai mentionné plus haut, j'ai très vite décidé de m'atteler à créer un jeu de plateforme. Je me suis dit que ce serait un formidable terreau pour tester toutes sortes d'expérimentations. "Mog Quest" est le nom de ce petit projet laboratoire. Ce n'est clairement pas le nom définitif. Je compte créer le nom officiel du jeu très bientôt, j'espère... Mais ça suffira pour l'instant.
Ce qui est cool avec un platformer, c'est que tu peux t'exercer sur le pixel art en imaginant toutes sortes de niveaux très différents: Tu peux aisément passer d'un monde à la plage, d'un monde de lave et ensuite conclure dans une ville. Tu peux vraiment créer un truc pas toujours très cohérent niveau progression, mais qui ne sonne pas comme quelque chose de dissonant, surtout si ton jeu se veut être très classique dans ses mécaniques de game design. Je vois mon titre comme un hommage aux jeux qui m'ont fait tripper dans les années 80/90. Prioritairement, Mog Quest me sert vraiment d'alibi pour dessiner une variété de décors, histoire d'être plus à l'aise avec le pixel art.
En outre, ce jeu me sert également à tester des ennemis aux comportements assez différents, ainsi qu'à jouer sur les changements de physique: Par exemple, lorsque le personnage se retrouve subitement sous l'eau, élément cauchemardesque de bon nombre de joueurs.
Tu sais lecteur, il y a des choses qui te paraissent facile lorsque tu commences à te lancer dans la programmation. Lorsque tu arrives enfin à mettre tes premières plateformes, à animer ton personnages, à lui faire faire des actions, et à paramétrer des patterns très simples à tes premiers ennemis, tu ne t'imagines pas que tu vas galérer à ce que le jeu comprenne que, lorsque tu ramasses 100 pièces d'or, ton personnage gagne une vie.
Cette anecdote est un peu un exemple qui résume parfaitement bien les galères que tu peux rencontrer lorsque tu planches sur un jeu, et sans filet. Après avoir bâti les bases de ton soft, tu as tendance à faire le reste de manière empirique: Tu te trompes 15 fois avant de comprendre là où tu as échoué. Tu apprends à progresser ce cette manière, brique par brique.
Concrètement, tu penses parfois que programmer telle ou telle chose va être insurmontable et, au final, pas tant que cela. Tu es surpris de l'aisance avec laquelle tu as finaliser ce problème. A contrario, tu sous-estimes totalement un autre élément que tu pensais programmer les doigts dans le nez. Monumental erreur ! Tu vas pourtant passer la journée suivante à essayer de comprendre pourquoi tout ne s'emboîte pas correctement, comme tu le voulais. Tu as beau relire ton code quinze fois, regarder tes layers et le placement de tous les éléments constitutifs de ton jeu, tu ne verras toujours pas où réside le problème, et pourquoi le logiciel ne va pas faire l'action escomptée.
Et l'exemple de la pièce d'or a été un de ces fameux problèmes...
J'arrivais déjà à configurer quelques trucs, donc j'avais un peu l'arrogance de croire que créer un système classique d'obtention de vies à la 100ème pièce n'allait pas me poser de problème. Hé bien si. Lorsque mon personnage dépassait les 99 pièces, non seulement le compteur de cet item affichait 100 (puis les nombres ultérieurs à chaque pièces glanées) sans jamais retomber à 0, mais aussi le logiciel devenait fou et mon nombre de vies grimpait à l'infini. Cela donnait lieu à un effrayant bug avec le son des pièces qui restait bloqué inlassablement jusqu'au moment où je faisais un rage quit sur Construct 2.
Etant de nature buguophobe, cette situation m'avait pas mal stressé.
Comme illustré sur l'image du dessus, j'ai d'abord commencé à tester mes premiers niveaux avec un personnage à la con, juste déjà pour voir si j'étais capable de sortir un truc plus ou moins potable. Mon choix final s'est très vite porté sur le lapin, qui faisait, je trouve, une formidable mascotte pour un jeu de plateforme. Et puis, j'aime bien les lapins. Mes sources d'inspirations sont multiples et elles vont de Buster Bunny (la plus flagrante) mais aussi de Mickey, Donald et Sonic. Respectivement, ces personnages proviennent de jeux qui m'ont énormément marqué sur Megadrive, à savoir Tiny Toon Adventures: Buster's Hidden Treasure, Castle of Illusion, Quackshot et... bah Sonic.
Les animations de mon personnage ont d'ailleurs été une des plus grosses difficultés que j'ai pu rencontrer lors du développement. Oui, parce que, si il y a des animations à ne pas foirer, c'est bien celle du héros. Le joueur passe 90% de son temps à voir son avatar courir, sauter, tomber, etc... Donc si ses mouvements ne sont pas un minimum plaisants à regarder, c'est que c'est globalement raté. Je ne dis pas que j'ai réussi haut la main, mais je pense que ça se laisser regarder, en définitif.
Pour ce travail, j'ai passé des heures à scruter le découpage des animations de plein de personnages de platformers des consoles Megadrive et Super Nes, en essuyant les plâtres de ces premières expérimentations. Par la suite, il a fallu que j'apprenne à implanter correctement toutes celles qui me plaisaient dans le jeu, tout en implantant des transitions qui apparaissent comme fluide aux yeux du joueur.
Pour les animations des ennemis, je me suis inspiré de tout un tas de patterns de créatures issus de dizaines de jeux. Ils restent finalement, eux aussi, assez classiques dans leurs comportements. Et tant mieux. Le but est de me perfectionner en douceur, tout en songeant à ne pas commencer à imaginer des trucs trop ambitieux non plus. On laissera ça pour le prochain jeu...
Ceci étant dit, certains ennemis m'ont également donné du fil à retorde. Et aujourd'hui encore, je galère pas mal avec certaines fonctionnalités (notamment la "function"). Je ne comprends pas pourquoi je dois "bricoler" parfois lorsque les animations des assaillants déconnent selon certaines conditions. Bref, je ne vais pas rentrer dans tous les détails non plus, mais disons que, même si j'ai beaucoup progressé, il y a encore tellement de chemin à parcourir avant que je ne sois totalement opérationnel. Et je ne pense même pas que je le serai véritablement un jour.
Je reste persuadé que mon code doit être un sacré foutoir, et si un professionnel de la programmation fouillait dans mes sauvegardes, il serait probablement horrifié de voir autant de bordel.
J'imagine tellement bien la scène dans ma tête d'ailleurs:
Il frapperait à ma porte. Je lui ouvrirais la porte. Nous souririons tous les deux, puis il me lancerait un "Bonjouuur monsieur", armé de sa petite serviette, sous le coude. Ensuite, il me dirait "Vous avez demandé un codeur consultant ?" Et je lui présenterais mon siège pour qu'il puisse s'asseoir. Assis devant mon écran de PC, son sourire s'effacerait lorsqu'il scrollerait tout ce que j'ai fait. Après un hochement de tête, il lâcherait: "Ah oui mais non ! Effectivement non. Non non non non ! Ça ne va pas du tout" et il remettrait tout ça au propre telle une Valerie Damidot du code.
Et puis, à un moment, tout ça commence à prendre forme: Tes propres sprites se promenent enfin dans tes décors faits maison, et voir tout ça s'animer sous tes yeux est un moment vraiment particulier ! Et quand tu superposes tes propres musiques, pour qu'elles viennent soutenir un supplément d'atmosphère à tes niveaux, c'est tout bonnement magique !
Musicalement, cette expérience m'a également permis de sortir de ma zone de confort. Par exemple, Dernièrement, j'ai dû créer une composition entièrement orientale pour le monde du désert. Il y a donc continuellement des défis à relever, ce qui génère une plus grande confiance en soi dans ce qu'on entreprend.
En outre, il faut faire très attention lorsqu'on place des choses dans notre jeu, car si il y a un composant qui rentre en conflit avec un autre, dans ce fichu code, c'est foutu. S'en suit alors des heures et des heures à chercher d'où vient le problème, en passant en revu les lignes de code que l'on vient d'entrer. En fait, le logiciel traduit EXACTEMENT ce qu'on lui dit de faire. Logique, remarque. C'est comme tout en informatique. Mais on se rend vraiment compte de ça lorsqu'on commence à faire ses premières armes. J'ai tendance à comparer ça à un génie qui exaucerait des voeux littéralement: Si ton premier souhait est "Je voudrais un sous-marin", le génie matérialiserait un sous marin sur ta maison, à la seconde près, explosant le toit de cette dernière et t'écrasant toi et ton chat. Le truc effroyable ! Le génie lui, avant te rendre ton dernier soupir, t'expliquerait que tu aurais dû prendre en compte toutes les conditions requises que tu n'as pas émises lorsque tu as validé ton voeu.Tu aurais donc omis "tout simplement" le fait de tout préciser dans ton voeu. Le code, c'est... bah c'est pas tout à fait ça, mais ça m'y fait un tout petit peu penser: Il faut TOUT écrire de haut vers le bas et de gauche vers la droite. Le programme va d'abord exécuter les actions d'en haut, avant de descendre. C'est logique dit comme ça, mais c'est d'une importance capitale, et on a parfois tendance à vite l'oublier. Vraiment !
Entre deux, il faut ensuite dessiner les niveaux, imaginer dans quel terrain mon lapin va aller se perdre. Imaginer des designs de monstres, d'animaux, de plantes et autres pièges qui se dresseraient devant l'avatar du joueur. Il faut réussir à rendre un niveau plutôt attrayant, même avec nos humbles capacités. Et il faut s'attarder à ce que tous ces composants soient cohérents les uns par rapport aux autres. Cette harmonisation est un travail à la fois jouissif, stimulant mais aussi terriblement compliqué parfois. Car lorsque je m'imagine un nouveau décor, j'ai l'impression de refaire un pas en arrière et de devoir repartir de zéro, sur une nouvelle page vierge (ou presque). Alors non, ça reste le même jeu, mais juste la perspective de devoir recréer un nouveau paysage, avec de nouvelles dominantes de couleurs, de l'habiller avec toutes sortes d'éléments graphiques qui constitueront l'environnement final, puis de composer une toute nouvelle piste sonore, ainsi que travailler sur un sound design au diapason, sont des choses excitantes, mais aussi terriblement vertigineuses. Cette "remise à zéro" s'accompagne heureusement d'une excitation tout particulière traduite par les infinies possibilités qui s'offrent à nous pour le prochain monde à créer.
Et pourtant, je ne place même pas la barre si haut que ça. Je le rappelle que je fais ça pour m'amuser, pour tester un peu. Je tape dans un style de jeu archi classique dans ses mécaniques. Je n'ose même pas imaginer ces indépendants qui travaillent sur un projet nettement plus ambitieux, depuis des années, et qui comptent le vendre, par la suite. Je comprends parfaitement qu'ils tombent facilement en dépression pour certains. Il y a une telle charge et une telle pression... A mon petit niveau, je navigue dans des eaux tranquilles, honnêtement.
En tout cas, elle a été d'une aide précieuse.
Du coup, depuis ce jour, je suis à fond sur ce projet personnel, en plus de composer des musiques pour le jeu vidéo. Oui parce que, principalement, j'essaie de vendre mes services aux développeurs désireux de s'offrir les services d'un compositeur. J'ai eu la "chance" d'avoir déjà pu finaliser la bande son d'un projet étudiant, Phobia, un soft d'horreur qui se joue sur HTC Vive, le casque VR de Steam. Je travaille également toujours sur les musiques de Time Rift, un titre qui sera commercialisé (normalement) sur Steam et Switch dans le courant de l'année 2021. J'écrirais sûrement un truc sur tout ça, un jour, donc je referme cette petite parenthèse.
"Mais pourquoi tu me fais ça ???"
center;">Ok. Ça va marcher ?</td></tr> |
Comme je l'ai mentionné plus haut, j'ai très vite décidé de m'atteler à créer un jeu de plateforme. Je me suis dit que ce serait un formidable terreau pour tester toutes sortes d'expérimentations. "Mog Quest" est le nom de ce petit projet laboratoire. Ce n'est clairement pas le nom définitif. Je compte créer le nom officiel du jeu très bientôt, j'espère... Mais ça suffira pour l'instant.
Ce qui est cool avec un platformer, c'est que tu peux t'exercer sur le pixel art en imaginant toutes sortes de niveaux très différents: Tu peux aisément passer d'un monde à la plage, d'un monde de lave et ensuite conclure dans une ville. Tu peux vraiment créer un truc pas toujours très cohérent niveau progression, mais qui ne sonne pas comme quelque chose de dissonant, surtout si ton jeu se veut être très classique dans ses mécaniques de game design. Je vois mon titre comme un hommage aux jeux qui m'ont fait tripper dans les années 80/90. Prioritairement, Mog Quest me sert vraiment d'alibi pour dessiner une variété de décors, histoire d'être plus à l'aise avec le pixel art.
En outre, ce jeu me sert également à tester des ennemis aux comportements assez différents, ainsi qu'à jouer sur les changements de physique: Par exemple, lorsque le personnage se retrouve subitement sous l'eau, élément cauchemardesque de bon nombre de joueurs.
Tu sais lecteur, il y a des choses qui te paraissent facile lorsque tu commences à te lancer dans la programmation. Lorsque tu arrives enfin à mettre tes premières plateformes, à animer ton personnages, à lui faire faire des actions, et à paramétrer des patterns très simples à tes premiers ennemis, tu ne t'imagines pas que tu vas galérer à ce que le jeu comprenne que, lorsque tu ramasses 100 pièces d'or, ton personnage gagne une vie.
Cette anecdote est un peu un exemple qui résume parfaitement bien les galères que tu peux rencontrer lorsque tu planches sur un jeu, et sans filet. Après avoir bâti les bases de ton soft, tu as tendance à faire le reste de manière empirique: Tu te trompes 15 fois avant de comprendre là où tu as échoué. Tu apprends à progresser ce cette manière, brique par brique.
Concrètement, tu penses parfois que programmer telle ou telle chose va être insurmontable et, au final, pas tant que cela. Tu es surpris de l'aisance avec laquelle tu as finaliser ce problème. A contrario, tu sous-estimes totalement un autre élément que tu pensais programmer les doigts dans le nez. Monumental erreur ! Tu vas pourtant passer la journée suivante à essayer de comprendre pourquoi tout ne s'emboîte pas correctement, comme tu le voulais. Tu as beau relire ton code quinze fois, regarder tes layers et le placement de tous les éléments constitutifs de ton jeu, tu ne verras toujours pas où réside le problème, et pourquoi le logiciel ne va pas faire l'action escomptée.
Et l'exemple de la pièce d'or a été un de ces fameux problèmes...
J'arrivais déjà à configurer quelques trucs, donc j'avais un peu l'arrogance de croire que créer un système classique d'obtention de vies à la 100ème pièce n'allait pas me poser de problème. Hé bien si. Lorsque mon personnage dépassait les 99 pièces, non seulement le compteur de cet item affichait 100 (puis les nombres ultérieurs à chaque pièces glanées) sans jamais retomber à 0, mais aussi le logiciel devenait fou et mon nombre de vies grimpait à l'infini. Cela donnait lieu à un effrayant bug avec le son des pièces qui restait bloqué inlassablement jusqu'au moment où je faisais un rage quit sur Construct 2.
Etant de nature buguophobe, cette situation m'avait pas mal stressé.
A gauche, mon personnage prototype (un peu effrayant), et à droite la version finale. |
Comme illustré sur l'image du dessus, j'ai d'abord commencé à tester mes premiers niveaux avec un personnage à la con, juste déjà pour voir si j'étais capable de sortir un truc plus ou moins potable. Mon choix final s'est très vite porté sur le lapin, qui faisait, je trouve, une formidable mascotte pour un jeu de plateforme. Et puis, j'aime bien les lapins. Mes sources d'inspirations sont multiples et elles vont de Buster Bunny (la plus flagrante) mais aussi de Mickey, Donald et Sonic. Respectivement, ces personnages proviennent de jeux qui m'ont énormément marqué sur Megadrive, à savoir Tiny Toon Adventures: Buster's Hidden Treasure, Castle of Illusion, Quackshot et... bah Sonic.
Les animations de mon personnage ont d'ailleurs été une des plus grosses difficultés que j'ai pu rencontrer lors du développement. Oui, parce que, si il y a des animations à ne pas foirer, c'est bien celle du héros. Le joueur passe 90% de son temps à voir son avatar courir, sauter, tomber, etc... Donc si ses mouvements ne sont pas un minimum plaisants à regarder, c'est que c'est globalement raté. Je ne dis pas que j'ai réussi haut la main, mais je pense que ça se laisser regarder, en définitif.
Pour ce travail, j'ai passé des heures à scruter le découpage des animations de plein de personnages de platformers des consoles Megadrive et Super Nes, en essuyant les plâtres de ces premières expérimentations. Par la suite, il a fallu que j'apprenne à implanter correctement toutes celles qui me plaisaient dans le jeu, tout en implantant des transitions qui apparaissent comme fluide aux yeux du joueur.
Cross over de folie ! |
Pour les animations des ennemis, je me suis inspiré de tout un tas de patterns de créatures issus de dizaines de jeux. Ils restent finalement, eux aussi, assez classiques dans leurs comportements. Et tant mieux. Le but est de me perfectionner en douceur, tout en songeant à ne pas commencer à imaginer des trucs trop ambitieux non plus. On laissera ça pour le prochain jeu...
Ceci étant dit, certains ennemis m'ont également donné du fil à retorde. Et aujourd'hui encore, je galère pas mal avec certaines fonctionnalités (notamment la "function"). Je ne comprends pas pourquoi je dois "bricoler" parfois lorsque les animations des assaillants déconnent selon certaines conditions. Bref, je ne vais pas rentrer dans tous les détails non plus, mais disons que, même si j'ai beaucoup progressé, il y a encore tellement de chemin à parcourir avant que je ne sois totalement opérationnel. Et je ne pense même pas que je le serai véritablement un jour.
Je reste persuadé que mon code doit être un sacré foutoir, et si un professionnel de la programmation fouillait dans mes sauvegardes, il serait probablement horrifié de voir autant de bordel.
J'imagine tellement bien la scène dans ma tête d'ailleurs:
Il frapperait à ma porte. Je lui ouvrirais la porte. Nous souririons tous les deux, puis il me lancerait un "Bonjouuur monsieur", armé de sa petite serviette, sous le coude. Ensuite, il me dirait "Vous avez demandé un codeur consultant ?" Et je lui présenterais mon siège pour qu'il puisse s'asseoir. Assis devant mon écran de PC, son sourire s'effacerait lorsqu'il scrollerait tout ce que j'ai fait. Après un hochement de tête, il lâcherait: "Ah oui mais non ! Effectivement non. Non non non non ! Ça ne va pas du tout" et il remettrait tout ça au propre telle une Valerie Damidot du code.
Et puis, à un moment, tout ça commence à prendre forme: Tes propres sprites se promenent enfin dans tes décors faits maison, et voir tout ça s'animer sous tes yeux est un moment vraiment particulier ! Et quand tu superposes tes propres musiques, pour qu'elles viennent soutenir un supplément d'atmosphère à tes niveaux, c'est tout bonnement magique !
Musicalement, cette expérience m'a également permis de sortir de ma zone de confort. Par exemple, Dernièrement, j'ai dû créer une composition entièrement orientale pour le monde du désert. Il y a donc continuellement des défis à relever, ce qui génère une plus grande confiance en soi dans ce qu'on entreprend.
En outre, il faut faire très attention lorsqu'on place des choses dans notre jeu, car si il y a un composant qui rentre en conflit avec un autre, dans ce fichu code, c'est foutu. S'en suit alors des heures et des heures à chercher d'où vient le problème, en passant en revu les lignes de code que l'on vient d'entrer. En fait, le logiciel traduit EXACTEMENT ce qu'on lui dit de faire. Logique, remarque. C'est comme tout en informatique. Mais on se rend vraiment compte de ça lorsqu'on commence à faire ses premières armes. J'ai tendance à comparer ça à un génie qui exaucerait des voeux littéralement: Si ton premier souhait est "Je voudrais un sous-marin", le génie matérialiserait un sous marin sur ta maison, à la seconde près, explosant le toit de cette dernière et t'écrasant toi et ton chat. Le truc effroyable ! Le génie lui, avant te rendre ton dernier soupir, t'expliquerait que tu aurais dû prendre en compte toutes les conditions requises que tu n'as pas émises lorsque tu as validé ton voeu.Tu aurais donc omis "tout simplement" le fait de tout préciser dans ton voeu. Le code, c'est... bah c'est pas tout à fait ça, mais ça m'y fait un tout petit peu penser: Il faut TOUT écrire de haut vers le bas et de gauche vers la droite. Le programme va d'abord exécuter les actions d'en haut, avant de descendre. C'est logique dit comme ça, mais c'est d'une importance capitale, et on a parfois tendance à vite l'oublier. Vraiment !
Entre deux, il faut ensuite dessiner les niveaux, imaginer dans quel terrain mon lapin va aller se perdre. Imaginer des designs de monstres, d'animaux, de plantes et autres pièges qui se dresseraient devant l'avatar du joueur. Il faut réussir à rendre un niveau plutôt attrayant, même avec nos humbles capacités. Et il faut s'attarder à ce que tous ces composants soient cohérents les uns par rapport aux autres. Cette harmonisation est un travail à la fois jouissif, stimulant mais aussi terriblement compliqué parfois. Car lorsque je m'imagine un nouveau décor, j'ai l'impression de refaire un pas en arrière et de devoir repartir de zéro, sur une nouvelle page vierge (ou presque). Alors non, ça reste le même jeu, mais juste la perspective de devoir recréer un nouveau paysage, avec de nouvelles dominantes de couleurs, de l'habiller avec toutes sortes d'éléments graphiques qui constitueront l'environnement final, puis de composer une toute nouvelle piste sonore, ainsi que travailler sur un sound design au diapason, sont des choses excitantes, mais aussi terriblement vertigineuses. Cette "remise à zéro" s'accompagne heureusement d'une excitation tout particulière traduite par les infinies possibilités qui s'offrent à nous pour le prochain monde à créer.
Et pourtant, je ne place même pas la barre si haut que ça. Je le rappelle que je fais ça pour m'amuser, pour tester un peu. Je tape dans un style de jeu archi classique dans ses mécaniques. Je n'ose même pas imaginer ces indépendants qui travaillent sur un projet nettement plus ambitieux, depuis des années, et qui comptent le vendre, par la suite. Je comprends parfaitement qu'ils tombent facilement en dépression pour certains. Il y a une telle charge et une telle pression... A mon petit niveau, je navigue dans des eaux tranquilles, honnêtement.
Vue d'ensemble de mon niveau (encore inachevé) du désert. C'est trop cool ! On dirait les pages d'une vieille soluce. |
Et pourquoi au final ?
Tiens, c'est vrai ça ? C'est une très bonne question que tu me poses là. Ah si ! Tu l'as peut être pensé. Si ce n'est pas le cas, tant pis. J'entends peut être des voix.
Je pense que j'ai toujours aimé créer des trucs, que ce soit réussi ou minable. C'est pour cette raison que je faisais des bd lorsque j'étais petit. C'est pour ça que j'ai créé plusieurs émissions de jeux vidéo par le passé. Idem en ce qui concerne la musique. Mais c'est aussi pour ça que j'aimais bien créer des tableaux en perles à repasser ou à faire des photomontages à la con juste pour passer le temps. Tout ça m'amuse vraiment. Créer un jeu vidéo fait donc partie de ces loisirs qui me font marrer, même si ça reste parfois très délicat.
Malgré ça, il y a tout de même des périodes de doutes. Des moments où tu je me dis que ça n'en vaut peut être pas la peine. Lorsque je bloque et que je reste trop longtemps sur les mêmes tâches, ou que je peaufine le même niveau depuis des semaines ou mois, ma motivation chute, par moment. Cela entraîne des coups de mou où je me dis que je suis nul. Que je n'arriverais à rien, alors à quoi bon... Cela alimente la spirale du "ça sera médiocre malgré tous mes efforts". Tu es petit et tu resteras petit... Pourquoi je m'inflige ça ? Ok, c'est pour "le fun". Mais c'est un fun qui fait péter la jauge de la pénibilité. Parfois, je reste une journée ou plusieurs jours à avancer en slow motion sur ce projet. Je bloque sur un détail qui me fait m'arracher les cheveux jusqu'au moment où je réussi à faire enfin (plus ou moins) ce que je voulais. S'ensuit un moment d'euphorie où j'ai l'impression d'avoir débloquer le problème et ouvert la porte de la grotte d'Ali Baba. Je suis tout content d'annoncer à ma compagne ce que j'ai fait, et elle m'avoue ensuite: "Tu n'as fait que ça ?" pour signifier que je n'ai pas l'air d'avoir tellement avancer, depuis la dernière fois où je lui ai montré une nouvelle avancée. Le chemin est donc jonché de pentes qui nous provoquent quelques ascenseurs émotionnels. Je tempère ce que je raconte néanmoins: Pour d'autres, la pression doit être bien plus forte vu l'ambition de leurs projets. Mais à mon niveau, et étant de nature assez émotive, ça reste assez chargé en émotions. Je n'ose même pas imaginer lorsque je m'attellerai à mon second jeu, que j'imagine plus ambitieux. Oui car ce premier titre me sert aussi de tremplin pour créer des choses nettement plus compliqué à réaliser. Déjà, la narration devrait avoir une place plus prépondérante dans ce second titre. Mais, je n'y suis pas encore...
Pour mon "Mog Quest", je compte inclure 7 mondes, juste histoire de faire bien mumuse en imaginant encore plein d'environnements, d'autres types de compositions, mais aussi d'autres types de level design et de patterns de monstres. Franchement, ça va être cool (je l'espère). En tout cas, je ne peux pas croire que je fasse tout ça pour rien...
L'interface déficiente |
Lorsque je poste des images du jeu sur mon Twitter, il y a toujours une petite appréhension qui se matérialise à mon oreille et me chuchote: "Oh ! Tu ne devrais peut être pas poster de vidéo ou d'images. Les gens vont s'en foutre ! Les gens vont trouver ça moche et sans intérêt". Et je ne suis pas naif. Je sais très bien que ces images vont sombrer très vite dans le flux d'informations sans cesse renouvelé du réseau social. Et même les gens qui marqueraient le moindre intérêt s'en détourneraient assez rapidement. Et je le conçois tout à fait. Mais pour moi, ce jeu, c'est mon petit bébé. C'est mon bb1 (comme disent les mamans sur les forums Magicmama). Mais pour tous les autres... C'est juste un bébé comme les autres. Et moi je suis le "relou trop fier qui fait chier tout le monde en postant des photos de sa progéniture". Hé oui, je me doute bien de tout cela.
Cela dit, plus j'avance dans mon jeu et plus je gagne en confiance. D'ailleurs, les deux derniers niveaux que j'ai créé (la plage et le désert) ont été plus facile à produire. Je les trouve même un peu plus fin visuellement que les deux premiers. J'aime toujours mon premier monde, ainsi que celui de la jungle, mais ces deux nouveaux segments sont plus aboutis, et ça fait vraiment plaisir de constater que l'on a progressé malgré tout.
A terme, je compte d'ailleurs rajouter quelques nouvelles features visuelles et autres éléments à ces premiers stages. Je ne sais pas... Pour que ce soit encore plus chouette à visiter. Pour que le peu de gens qui vont essayer s'amusent un peu.
Il faut que je te dise: Il y a un truc qui me faisait délirer lorsque j'étais enfant. C'était les jeux de plateformes qui abritaient moult passages secrets dans leurs niveaux. J'adorais tellement ça. J'adorais trop voir les émissions comme Télévisator 2 qui te montraient comment gagner une vie dans le Aladdin de David Perry, en plaçant la tête du perso juste en dessous des oreilles de Mickey placés sur un fil pour faire sécher le linge. Dans cette même émission, j'aimais bien voir les soluces sur Zelda A Link to The Past et Zelda Link's Awakening. Et j'adorais moi même dénicher tout seul des endroits cachés ainsi que des warp zones dans certains de mes jeux. Il y avait un sentiment de satisfaction mêlé à de la stupéfaction qui rendaient ces moments tout doux.
Du coup, j'ai décidé de truffer mon jeu de trucs comme ça. Des choses que, si ça se trouve, personne ne découvrira, surtout si il n'y a que 10 personnes qui essaient mon jeu, dont 2 qui s'y investissent à fond.
Mais tant pis. On verra bien. Je me prends peut être la tête pour rien, mais c'est mon petit plaisir pas coupable.
J'ai encore beaucoup de chouquettes à ingurgiter et beaucoup de travail sur la planche avant d'avoir bouclé cette aventure. J'imagine que je risque de réécrire un truc sur ce projet. Pourquoi pas. Je n'ai pas encore abordé certaines choses avec toi. Mais je n'ai pas non plus envie de te noyer sous un énorme pavé. Il y en a peut être qui ont cliqué sur l'article, qui ont écarquillé les yeux, et qui ont refermé la page immédiatement. Mais pour toi qui est resté jusqu'au bout, je t'aime. Je t'aime au moins parce que tu m'as lu avec intérêt. Et ça, ça me fait chaud à mon petit coeur fébrile.
Prochainement, je dois encore trouvé l'inspiration pour composer les derniers niveaux, Les thèmes musicaux qui les accompagneront, et enfin rafistoler le tout à la toute fin. J'ai encore tant de choses à apprendre. Et je vais encore pleurer sur tous les trucs que je ne vais pas réussir à appréhender. J'espère que ce "petit" texte aura réussi à te captiver un minimum. Ce n'est pas évident de synthétiser sur ce genre d'expérience. Je reviendrai vers toi...
En tout cas, je te souhaite une bonne journée ou une bonne nuit. Et on se revoit pour le prochain article, non ?
Moggy
Commentaires
Enregistrer un commentaire