Je pars donc de rien, à part un logiciel, un tutoriel, et quelques notions.
Commençons par le commencement, plusieurs heures d’explications d’Unity : ses fonctions, son interfaces, ses règles, ses limites… Et ses possibilités ! Space shooter en 2d, un jeu de plate forme avec ta mère dedans, ou un fps 3d VR pour tuer des personnes photographiées (pas tout à fait) au hasard ? C’est possible ! Pas très légale (comme Yandere Simulator, qui consiste à incarner une fille obsédée par un homme au point de tuer toutes ses rivales potentielles) , mais possible… Unity met à disposition toute une série de cours et de tutoriels. Et toutes les leçons dites » de base » sont disponibles sur leur site (in English of course). Alors je dis de base car encore une fois, le code s’inscrit très tôt dans les notions fondamentales à connaître… Copier et coller des lignes de textes marche un temps, mais je me suis très vite retrouvé devant des « compilation error », ou les String ne peuvent pas être converties en boolean ou Double… Et autres joies.
En parallèle de ça, je travaille les graphismes de mon jeu. Ceux ci ne sont pas vraiment choisi au hasard, ils vont répondre à mon gameplay. J’y reviendrai plus tard dans un article de Game Design. Space Pioupiou sera le héros de mon shoot them up, et devra être reconnu facilement. Les méchants seront des chats, ennemis naturels des oiseaux, ils seront dans des vaisseaux vu que je veux que ça ce passe dans l’espace (voix de cathédrale)!
Visuels non représentatifs de la version finale
Un peu plus tard, je me lance. Après quelques scripts écris, un fond, des décors, et quelques autres éléments, je mets en place les premières briques élémentales de mon jeu. J’ai alors un pioupiou fixe au milieu d’un décors sobre… Et c’est tout. Il ne bouge pas, le décors non plus, pas d’ennemis… Un peu chiche hein ? Et bien je dois tout créer, avec l’aide de tutoriels certes, mais quand même… Avoir un logiciel dédié ne veut pas dire que la solution tombe par miracle.
Paye ton fun !
En fait, la création d’un jeu est en réalité un problème de logique mathématique pur. Plus de fun, plus d’effets, une grosse partie du jeu ne sera que création de physique, d’attribution de variables, de calculs, d’appels et de gravité. En face de moi les graphismes en mouvement n’illustrent que le fait que le code marche, ils ne répondent pas encore au besoin du jeu (divertir, amuser, émouvoir). La création des contrôles du personnage consiste à attribuer une valeur à une variable X ou Y, de la calculer en temps réel en fonction de la touche maintenue, la diagonale n’étant qu’un somme d’autres variables auxquels se rajoute la gravité attribuée, les forces de frottement simulées. Chaque chose ayant un nom précis, une fonction définie dans un cadre tristement fixé, pour éviter des erreurs.
Mon personnage bouge mais trop vite, il traverse les obstacles, les forces résultantes le dévient lui et les ennemis ! Mais pourquoi ça marche pas comme je veux ? Mais parce que c’est juste cruellement logique… Mon personnage traverse certaines cibles car elles sont au premier plan ou dans l’arrière plan (donc pas sur le même axe). Ou bien car d’autres n’ont pas de corps (de box de collision) et ils ne se détruisent pas car je n’ai pas créé de système de vie, avec des conditions de destruction, d’attribution de dégâts, de conditions de mort…
Pourtant, après plusieurs heures, je vois les premiers résultats de mon acharnement : j’ai un Prototype très sommaire qui marche ! Je bouge, je rentre en collision, Pioupiou se déplace ! Ça reste rien par rapport au jeu complet, mais c’ est déjà énorme pour le joueur que je suis et le créateur que je souhaite être. En tant que gros joueur, la création est perçue différemment, on voit les ficelles. Un peu comme un médecin voit le corps humain : une succession de fonctions, un rouage chimique savamment dosé; ou l’astronome qui voit dans l’univers une harmonie cosmique. C’est beau non ?
Bientôt un jeu, un vrai !