1 avr. 2024

Game dev #00 : Ça commence, ici.

 Salutations, voyageur !

Alors, par où débuter ? Comment est-ce qu'on entame ce qui est le départ d'un hobby complexe, dont les chances qu'il aboutisse un jour à un produit fini sont à peu près aussi minces que la probabilité de sortir indemne d'une tentative de lutte gréco-romaine avec un dos-argenté de 250 kg ? Début d'un journal, qui rime aussi avec une tentative de retrouver l'habitude d'écrire des singeries plus régulièrement sur internet.

"Si c'est pour revenir faire tes métaphores filées avec des primates, il valait peut-être bien que tu tentes de rester hors-ligne bordel de-" crie déjà un lecteur trop enjaillé du fond de la salle d'audience, avant de recevoir une brosse à tableau dans les dents.

Où en étions-nous ? Un peu comme un Youtubeur un peu trop farceur qui essaie de faire durer le suspens alors que le nom du jeu testé est dans le titre de la vidéo, je ne peux pas contenir votre sens de perspicacité aigu (et suprême) beaucoup plus longtemps : on va parler du développement d'un jeu. Que je fais moi. Avec mes doigts boudinés, mon intellect oug-boug d'ermite et ma dissidence habituelle (le terme oug-boug sert à qualifier mon intelligence avec l'image exacte qu'il renvoie ; si vous avez mentalement aperçu, l'espace d'une seconde, un macaque ou un homme des cavernes sortir en clopinant des fougères, fracasser des cailloux ciselés entre eux sans avoir l'air très convaincu, c'est que j'ai atteint mon but).

Cela fait des années que je m'imaginais développer un jeu, et certains d'entre-vous se souviendront d'un ou deux projets passant sur ce blog. De quelques sprites animés et de visions de grandeurs pour un RPG top-down, avec une gestion de ressources et des histoires de métamorphoses. J'imagine que tout amateur invétéré de jeu vidéo s'est déjà imaginé directeur créatif, construisant et designant un software de son cru. Améliorer son jeu favori, distiller ses logiciels préférés, pour ne garder que les meilleures idées, et faire forcément mieux que ces "développeurs corpo de m*rde qui sont des feignants incompétents, doublés de cashgrabbers indignes avec leurs précommandes et leurs kickstarters" (/s).

Circa 2020 - un développeur de jeu vidéo, aperçu sur le chemin de la cafeteria du studio. La légende raconte qu'il vient d'achever sa seule et unique heure de labeur annuelle, dédiée à la résolution de bug. Image restaurée numériquement.

Alors qu'est-ce qui change, cette fois ? Peut-être que c'est l'âge et l'expérience, qui me permettent de travailler à long terme sur un projet complexe, en y prenant un maximum de plaisir. Avec cette sensation satisfaisante de savoir que le travail peut payer, et que le chemin va forcément me conduire quelque part. Peut-être bien que le fait d'être plus vieille me permet également d'assumer très rapidement un fait qu'on a tendance à cacher honteusement quand on est plus jeune et plus bleu : même si ça ne mène à rien, c'est quand même diablement cool de dédier ses efforts à une tâche si engageante. Et ça me donne une excellente raison de revenir baver sur ce blog.

Je vais donc essayer de m'efforcer, en plus du temps de développement usuel avec lequel j'essaie de remplir une majorité de mon temps libre, de documenter cette aventure sur la forme d'articles. Il y a assez peu de blogs de gamedev bien documentés. C'est d'autant plus difficile quand on travaille avec des visuels bruts ou de prototype. Le but ici n'est pas d'attirer le chaland avec des GIF et des clips d'environnements 3D sensuels, pour vendre un maximum de copie. C'est davantage de documenter mon cheminement dans la réalisation d'un gros morceau de code complexe. 

"Pourquoi ne pas remplacer ce temps de rédaction avec PLUS de temps de développement, histoire d'aller plus vite, Micheline ?", me demanderez-vous, en filant votre moustache du bout des doigts. Parce que ça change, et que ça repose mon gros cerveau plein d'eau. Parce que j'aime bien écrire, et encore plus présenter mes pensées maladives à des spectateurs innocents, qui cherchaient simplement du contenu intéressant sur le web. Vous pensiez que les blogs rédigés avaient disparu ? Que le contenu d'internet se résumait à des chaînes vidéo, de jeunes ingénus qui visent une monétisation fructueuse en moins de huit mois d'existence ?

Et bien peut-être MAIS CA NE M'EMPÊCHERA PAS DE CONTINUER §§§ SI VOUS PENSIEZ QUE LES TEXTES GEEKS ÉTAIENT MORTS AVEC L'ARRÊT DE NIOUTAIKNOLOGIE C'EST FAUX JE VAIS M'ÉNERVERaaaaaaaaaAAAAAAAAAAAAAA

Et si on démarrait le cœur du sujet ? Quel type de spectacle numérique essaie t-on de construire ici ?

Le  soft est entièrement développé sous le bien-nommé GODOT. Il s'agit d'un jeu en vue aérienne, centrée sur un personnage jouable, et qu'on peut qualifier de RPG, avec un savoureux mélange entre un auto-attacker, un jeu de construction et un simulateur de village (ce faisant, de villageois ? zOMG).

 Image absolument contractuelle. Achetez mon jeu.

Le principe est que vous contrôlez un vyrrlin, créature mi-humaine appartenant à une civilisation développée, et que vous tentez de survivre face aux ombres environnantes qui persistent éternellement à vouloir vous enlever. Alors que vous construisez un abri et de quoi vous défendre, vous aurez l'occasion de trouver, et d'essayer de soigner, certains de vos compatriotes corrompus. Ceux qui seront purifiés vous rejoindront et vous aideront à développer votre avant-poste, en exécutant les rôles que vous leur assignerez. Mais prenez garde, car vous n'avez rien d'une figure héroïque, et l'obscurité qui vous contrôlait il y a encore si peu de temps, pourrait revenir réclamer son dû plus tôt que prévu.

Comment mentionné précédemment, le combat s'appuie sur un principe simple d'auto-attaque vers les ennemis proches, à l'aide d'armes de mêlée, à distance ou de lanceurs de projectiles. Si vos statistiques et votre équipement détermineront votre capacité à infliger des dégâts et à les esquiver, une panoplie de talents et de compétences pourront vous permettre de pimenter vos escarmouches et d'élaborer des builds adaptés à vos ennemis et à vos objectifs. Le but final étant de résister à des assauts nocturnes constitués de vagues d'ennemis, et de mener l'offensive pour aller détruire les autels ombreux en zone corrompue.

La corruption et la lumière jouent un rôle essentiel dans le combat et la gestion des vyrrlins. Les ennemis sont en effet des entités ténébreuses, qui patienteront jusqu'à la tombée de la nuit pour essayer de mettre à mal vos constructions. Il faudra soigneusement éclairer vos chemins, et permettre à vos villageois de porter des flambeaux, pour assurer leur sécurité et affaiblir les adversaires.

Tous les vyrrlins, joueur y compris, seront susceptibles d'être corrompus à différents degrés : d'une silhouette primitive et agressive à la sortie de la purification, jusqu'à devenir un vyrrlin de l'aube dans toute sa gloire ; héraut de sophistication, maîtres d'armes et d'artisanat. Cette transformation donnera accès à des techniques de combat et de fabrication plus évoluées, mais fera perdre de cet instinct sauvage et féroce à vos villageois, parfois si utile en situation difficile. Cette métamorphose est également totalement réversible, et des combats trop violents, ou des ténèbres trop sombres, provoqueront des changements forts chez les vyrrlins, jusqu'à ce qu'ils redeviennent totalement incontrôlables et s'échappent dans les lisières.

Une fois recrutés, les membres de votre village sont des alliés à part entière, intelligents et autonomes. Ils assumeront toutes les tâches que vous leur demanderez, mais exigeront également un logis et des ressources pour subsister. Ils gagneront de l'expérience, éviteront les ennuis et feront de leur mieux pour vous aider. Vous pourrez développer des relations avec chacun d'entre eux, pour le meilleur et pour le pire. Votre personnage n'est pas foncièrement meilleur que la moyenne de votre communauté, ce qui signifie que vous pouvez vous concentrer sur les activités qui vous plaisent, et déléguer les autres. Vous ne voulez que combattre ? Ils s'occuperont des ressources et de l'artisanat. Votre kink, c'est de construire votre ferme et d'élever vos canards en paix ? Constituez un groupe de guerriers autonomes qui défendra l'avant-poste et ira détruire les autels corrompus pour vous.

La carte de jeu est un terrain plat, fragmenté de plusieurs biomes différents. Il est ceint d'une chape de corruption difficilement pénétrable, qui reculera au fur et à mesure de votre croisade contre les ombres. Des ressources végétales et minérales, ainsi qu'une faune, seront dispersés aux alentours, et devront être exploités pour fabriquer bâtiments, vêtements, armes et armures.

Le maître mot sera personnalisation et automatisme. Les vyrrlins, seule race jouable, auront beaucoup d'apparences possibles. Les vêtements et modèles pourront être teintés, et des éléments procéduraux viendront pimenter chaque carte pour rafraîchir l'expérience (ennemis renforcés ou au contraire sensibles à un type d'attaque, espèce animale absente, récolte des ressource altérée). 

Le tout doit, au final, être enrobée dans un thème fantasy sombre, mais magique et sauvage, une DA stylisée, où les animations et les FX seront particulièrement soignés (je suis liée par l'honneur à rendre hommage à ma profession de motion designer, navrée).

Étant donné l'importance de la nuit et de la lumière dans ce projet, son nom provisoire est Lampyre, en hommage à ce petit coléoptère qui brille dans la nuit (avec son fin postérieur, qui plus est).

"Whoa, Micheline, respire une seconde, et pose ce clavier tout de suite. Tu viens de nous décrire un synopsis de jeu plus évolué que certains softs indés populaires comme Cult of the Lamb, Sakuna Rice and Ruin ou même My Time at Portia, et ceux-là ont été produits par des équipes professionnelles. Tu serais pas en train de faire une pleine bouffée d'optimisme, qui pourrait faire pâlir de jalousie un jeune auteur espérant égaler les ventes d'Hunger Games dés son premier roman ?"

Le problème des synopsis, c'est qu'ils sont toujours approximatifs, et qu'ils sont susceptibles de donner une idée trop vagues (et donc souvent trop ambitieuse) à un concept. Même si le système global paraît intriqué ou trop débridé, je vous promet qu'il n'a pas la complexité d'un Rimworld ou d'un Oxygen Not Included. J'ai foi en ma capacité à développer des systèmes finis, meme si ils resteraient en état de prototypes éternels.

 

JE VOUS LE PROMET, C'EST PAS SI COMPLEXE §§§ LE PROTO PRENDRA DEUX SEMAINES À CODER, GRAND MAX §§

Ma priorité reste de mettre en place des systèmes simples, satisfaisants, et détaillés, pour donner un maximum d'engagement à des joueurs qui pourront tout autant optimiser leur run, que chill devant leur cultures de pommes de terre. Et cette phrase vous est garantie par quelqu'un qui attendait deux heures complètes que ses norns atteignent l'âge adulte, pour voir si des mutations de couleur apparaissaient selon leur développement sur Creatures 3. Ou qui s’ébahissait de voir un nain chasser la marmotte avec son léopard amené par caravane elfe, sur Dwarf Fortress.

Quelques exemples de mes tentatives de simplification, pourraient être:

- le type d'ennemis, limité à trois, avec leur comportement propre

- le système de combat automatique, avec des lancements de skills passifs et un contrôle d'escouade minimaliste au possible (aka les alliés évitent de marcher dans le feu SEULS)

- énormément d'attributs et de systèmes partagés entre les entités (vie, évitement, dégâts, énergie)

- un comportement de gestion de NPC qui se veut la plus ergonomique possible dans le village

Et bien d'autre, dans des systèmes cloisonnés, que je détaillerai dans les futurs articles de dev.

La bonne nouvelle, c'est qu'à l'heure où j'écris cet article tel un pangolin cocaïnomane, cela fait déjà plusieurs semaines que je travaille sur le projet. Histoire de faire une annonce sur quelque chose qui commence, techniquement, à être déjà jouable. J'ai même menés à bien tous mes tests de pathfinding, de targeting, de FX et de shaders procéduraux pour m'assurer que je ne m'attaquais pas à un mur beaucoup trop glissant pour moi.

Je travaille en full protoyping no-scope, 360 elite sniper sans aucun développement visuel. Mon but est de garder séparés la technique et l'artistique, autant que faire se peut. Je veux un jeu complet, jouable et sans bug, où des sphères et des carrés se battent sur un plan morne et gris. 


À peu près comme ça, ouep.

Nous en sommes actuellement à des créatures capables de se déplacer correctement dans l'espace, avec la bonne inertie et la bonne gestion de vitesse. Elles peuvent recevoir des dégâts, reconnaître les ennemis et choisir (ou non) de les attaquer en mêlée, à distance, ou à l'aide d'une attaque de zone (AOE). Les contrôles de la caméra ainsi que ceux du joueurs sont en place. J'ai également anticipé le cas où le vyrrlin contrôlé par le joueur changerait en cours de route (une occurrence qui sera extrêmement rare dans le jeu final, peut-être seulement envisageable en cas de décès).

Les premiers ennemis codés sont nommés des ombrelgins. Petites créatures ombreuses, elles constituent l'essentiel des forces ennemies. Faibles en solitaire, elles deviendront dangereuses en cas d'assaut en masse ou de renforcements de la part de leurs alliés.

La première échéance que je souhaite atteindre, c'est de faire combattre des ombrelgins et des vyrrlins dans une arène, avec leur comportement final. Et de pouvoir être accompagné d'alliés proches. Le tout me donnera le point de départ pour le feeling général des armes, et me permettra de mettre sur papier les arbres de compétences pour nos héros !

 
La roadmap provisoire du jeu. A t-elle été hâtivement assemblée sous Miro ? Oui. Avez-vous besoin de la mettre en plein écran pour lire quoi que ce soit ? Bien évidemment.

Je préparerai également un peu plus d'indicateurs pour présenter d'un coup d’œil, à chaque article, les avancées sur les différents aspects du jeu, et une roadmap digne de ce nom. Les articles se concentreront surtout sur les logiques de code utilisées, et non sur le script lui-même (qui est du GDScript, au risque de faire fuir tous les développeurs environnants, spécialistes des 'vrais' languages).

Et voici pour cette annonce, qui finalement, se résume beaucoup à un avant-propos qui précéde les premiers posts techniques. Je vais documenter les avancées de programmation, et également réaliser des hors-sujets sur mes stratégies de travail, et mes concepts généraux.
J'espère que ces billets prouveront être une lecture divertissante, et je vous dis à la prochaine ! Prenez soin de vous.
 
 
Note additionnelle : J'aimerais par ailleurs, glisser un mot que je n'avais pas eu la présence d'esprit d'écrire lors de mon billet sur Spellcaster University, en 2023. À tous les lecteurs qui me suivaient, et qui reviennent peut-être parcourir ce blog après 16 années (seize ans ! S-E-I-Z-E bordel). 

Merci de parcourir le blog. Merci d'avoir laissé tous ces commentaires d'encouragements, de critiques, de smileys bienveillants. Merci de vous être enjaillés sur les articles d'une personne inconnue qui vivait sa meilleure vie sur Dwarf Fortress. Même si après toutes ces années, Blogger est toujours incapable de nous laisser répondre facilement et directement à un mot laissé par un lecteur, je veillerai à vous adresser des réponses bien plus régulières.

Aucun commentaire: