Développer son propre jeu vidéo est un rêve qui semble intouchable pour de nombreuses personnes, tant la tâche paraît gargantuesque et complexe. En effet, si on s’y intéresse, on se rend compte qu’un tel projet peut impliquer de grande connaissances/capacités dans de nombreux domaines. Savoir écrire du code, être capable de réaliser le design des niveaux, et des personnages, créer des animations, parvenir à développer le « moteur » du jeu, créer et y intégrer des sons, des musiques sont autant de cordes à son arc qu’un bon développeur indépendant devrait avoir.
Alors on ne va pas se mentir, si vous espérez pouvoir créer seul le jeu de vos rêves, en 3D, exploitant au maximum votre carte graphique NVIDIA de dernière génération, il vous faudra attendre encore quelques années, histoire que l’intelligence artificielle fasse le gros du travaille pour vous, ou alors travailler vraiment très fort sur vos compétences en développement et en design.
En revanche, si vous acceptez une règle essentielle pour débuter dans le développement indépendant, vous pourriez être à même de créer un petit jeu vidéo de A à Z en quelques jours.
Cette règle dit simplement qu’il faut commencer petit, en limitant volontairement l’ampleur du projet. En d’autres termes, n’installer pas Unity ou Unreal Engine. Commencez par utiliser un moteur (ou un framework) qui n’est pas une usine à gaz et qui peut s’apprivoiser rapidement.
Une "Fantasy console"
Dans cet article, nous allons utiliser la « Fantasy console » Pico-8. Ce terme de « Fantasy console » désigne un moteur de jeu simulant une console aux capacités volontairement limitées (résolution basse, musique 8 bits, nombre de couleurs très réduit, etc), souvent inspiré des console 8 bits (NES, etc). À noter qu’il en existe d’autres comme TIC-80 qui permet également, si vous êtes courageux, depuis votre smartphone.
Les limitations volontaires de Pico-8 lui permette d’offrir une compatibilité maximum pour vos jeux. En effet, ces derniers pourront fonctionner sur Windows, Mac, Linux, Raspberry Pi, ou directement dans votre navigateur web via « l’explorateur de cartouche » officiel (100% gratuit) de Pico-8.
Notez que si vous pouvez jouer gratuitement aux jeux de {l’explorateur de cartouche}, il vous faudra débourser la somme très correcte d’une quinzaine de dollars afin de pouvoir installer le logiciel sur votre ordinateur et commencer à développer. Une somme plus que raisonnable puisque le logiciel contient 100% des outils dont vous aurez besoin pour développer votre jeu, à savoir :
- Un éditeur de code
- Un éditeur de niveau
- Un éditeur de « sprites » (design des différents éléments du jeu)
- Un éditeur de son et de musique 8 bits
- Un terminal permettant notamment d’exporter ses créations
Pico-8, comment ça marche ?
Une fois le logiciel ouvert, vous n’aurez plus besoin d’en sortir pour créer votre jeu. Et comme le logiciel gère toutes les ressources du jeu, vous n’aurez rien besoin d’importer. Par exemple, pour jouer le son numéro 1 que vous avez créé dans l’éditeur intégré en 2 clics, il vous suffira d’ajouter dans votre code :
sfx(1)
Si vous avez déjà codé, je pense que vous comprenez à quel point cela va vous faire gagner du temps.
Le code, puisqu’on en parle, s’écrit en Lua. Si vous ne connaissez pas, c’est un langage de programmation connu pour avoir une courbe d’apprentissage très rapide. Si vous avez déjà pratiqué un autre langage, vous aurez compris comment utiliser celui-ci en moins d’une journée.
Le code principal s’écrit dans 3 fonctions de base :
function _init()
-- ce code s’exécute 1x au lancement du jeu, pratique pour initialiser le niveau, différentes variables, etc
end
function _update()
-- ce code s’exécute en boucle (1x par frame) et sert à gérer les différentes opérations, comme par exemple le fait d'ajouter
-- 10 points au score lorsqu'on ramasse une pièce
end
function _draw()
-- ce code s’exécute en boucle (1x par frame) et sert à afficher le texte et le design à l’écran
end
Vous pouvez (et devriez) ajouter d’autre pages de script au projet afin de l’organiser au mieux et ne pas juste mettre tout votre code dans ces 3 fonctions, même si techniquement, c'est faisable.
"Mon ami, tu es bien gentil, mais j’ai rien à afficher à l’écran pour l’instant". Et bien nous allons remédier à cela en quelques minutes en allant dans l’éditeur de Sprite. On clique sur la petite icône de l’éditeur en haut à droite, on choisi la taille du Sprite (ici 16x16px), et on dessine avec les 15 couleurs disponibles (+ le noir qui est la couleur de transparence par défaut)).
On retient le numéro de notre sprite (001) et on retourne ensuite dans l’éditeur de code et l’on écrit ceci dans la fonction _draw()
et on sauvegarde notre jeu avec ctrl+S (Windows/linux):
function _draw()
spr(1, 100, 100, 2, 2)
end
Pour lancer le jeu, on utilise le raccourci ctrl+R (Windows/linux). Et voilà, notre personnage s’affiche à l’écran.
Nous venons d’utiliser la fonction permettant d’afficher un Sprite. Elle prend dans l’ordre les paramètres suivants :
spr(
numéro du sprite,
position sur l'axe X,
position sur l'axe Y,
nombre « cases » occupées par le Sprite en largeur,
nombre de « cases » occupées par le Sprite en hauteur
)
Une « case » représente 8x8px. Comme nous avons fait du 16x16px pour notre sprite, nous allons préciser qu’il utilise 2 cases en largeur et 2 cases en hauteur.
De la même manière, il faudra se rendre dans l’éditeur de sprite pour dessiner les tuiles qui seront utilisées pour notre décors.
Il suffira alors d’utiliser ces tuiles dans l’éditeur de niveau (3ème icône en haut à droite) pour créer le décors de notre jeu juste avec la souris de l’ordinateur et commencer à avoir un visuel qui ressemble déjà à un jeu.
Un jeu complet
Bien sûr, notre personnage est figé pour le moment. Il va falloir lui donner de la gravité, l'associer à des touches de clavier/gamepad, gérer les collisions avec le décors (utilisez les tags dans l’éditeur de sprite pour signaler quel tuile doit provoquer une collision au contact du personnage principal), gérer un éventuel score et des collectibles, ajouter un menu principal, etc.
Mais vous voyez qu’en quelques minutes/heures, on peut obtenir quelque chose de motivant avec une Fantasy console comme Pico-8. Si j’avais choisi de partir sur Unity ou même Godot, à ce stade je serait encore en train d’essayer de dompter un logiciel de création de sprite ou d’essayer de comprendre comment fonctionne le concept de « Nodes ».
Pour progresser rapidement avec Pico-8, je ne peux que vous recommander de suivre la série de tutoriels de Nerdy Teachers.
Pour tester mon premier jeu Pico-8 (2 joueurs) achevé en quelques jours, c’est par ici.