Créer un jeu rétro complet

Créer un jeu rétro complet

Description

Pico-8 est une console imaginaire qui permet de créer, partager, et jouer à des jeux miniatures qui évoquent avec nostalgie les débuts du jeu vidéo grand public.

La console possède un environnement de développement complet, de l’éditeur de code aux graphismes, en passant par la musique. Ses spécifications (écran carré de 128 pixels, 16 couleurs, 4 canaux sonores) vont vous contraindre à la créativité - comme des milliers de créateurs et créatrices avant vous, qui utilisent souvent Pico-8 pour prototyper des jeux, dont certains sont devenus de grands succès.

Nous vous invitons à voir ce projet comme un grand bac à sable où vous allez pouvoir déverser votre imaginaire en équipe afin de proposer une expérience ludique à d’autres joueurs, tout en découvrant un nouveau langage et de nouveaux paradigmes de programmation. Les notions acquises ici sont réutilisables sur des moteurs de jeu avancés, en infographie et dans des projets visuels plus complexes.

Contraintes

  • Durée : 2 semaines
  • Moteur : Pico-8
  • Langage : Lua

Notions abordées

  • Moteur de jeu
  • Infographie 2D
  • Gestion d’équipe

jelpi_demo

Se préparer

  • La documentation fournie avec la console est très complète et un point de départ utile.
  • Commencez par installer les démos et visitez splore sur la console pour découvrir tout son potentiel.
  • Comme souvent, nous vous recommandons de commencer avec des tutoriels pour gagner rapidement en confiance.

Plénières

  • Install party et exploration du moteur ;
  • Découverte d’un nouveau langage : ici, le lua.

Orientation du projet

Jeux possibles

Nous n’imposons pas de contraintes sur le game design, mais vous pouvez partir des styles de jeu les plus populaires en 2D :

  • les jeux de plateforme ;
  • les RPG « top-down » (jeux de rôles vus du dessus) ;
  • les jeux avec défilement vertical (courses de voiture, vaisseaux spatiaux…) ;
  • … ou complètement innover, il n’y a pas de limite !

Ces propositions ont quand même en commun de vous faire déplacer des entités (personnages, véhicules) dans un environnement à deux dimensions, avec des événements et des interactions possibles.

Dans l’esprit d’Ada, nous vous invitons à rendre vos jeux accessibles, respectueux de la diversité, et positifs !

A la fin du projet, vous découvrirez comment partager vos jeux : sachez que chacune de vos productions entrera dans l’histoire de l’école et sera jouable par les promotions suivantes. Comment ? On ne vous en dit pas plus pour l’instant :wink:

1. Je débute

Dans un premier temps, nous vous invitons à :

  • enrichir les fonctions principales du moteur : _init(), _update() et _draw() ;
  • dessiner un tileset puis une carte et l’afficher dans le jeu ;
  • dessiner un sprite et le faire apparaître dans le jeu aux coordonnées voulues ;
  • déplacer votre sprite avec les touches du clavier ;
  • faire en sorte que le sprite ne puisse pas sortir des bordures de la carte.

Ressources

Objectifs pédagogiques

  • Manipulation d’un moteur de jeu,
  • Gestion de la boucle de jeu,
  • Affichage de sprites,
  • Gestion des inputs clavier.

2. Je suis à l’aise

Dans un second temps, vous pouvez :

  • Faire en sorte que la camera suive votre personnage ;
  • Faire en sorte que votre personnage ne puisse pas aller partout, en gérant les collisions grâce aux flags ;
  • Implémenter des déplacements avancés : sauts, boosts, changements de vitesse ;
  • Créer des objets qui peuvent être collectés, dont le nombre peut être affiché sur l’interface utilisateur (HUD), et qui ajoutent du gameplay (ex. : des clés qui ouvrent des portes) ;
  • Créer et jouer des bruitages et des musiques.

Ressources

Objectifs pédagogiques :

  • Camera 2D,
  • Collisions 2D,
  • Physique 2D,
  • User interface et HUD,
  • Gestion des ressources graphiques et sonores.

3. Je veux aller plus loin

Une fois que vous vous sentez à l’aise avec les étapes précédentes, vous pouvez :

  • Animer votre personnage ;
  • Animer des éléments de la carte et, pour les platformers, ajouter de la parallaxe
  • Déclencher des événements à certains moments du jeu : changement de musique, déplacements de personnages non-joueurs…
  • Créer et afficher joliment des dialogues ;
  • Ajouter un écran-titre ;
  • Intégrer du multijoueur : Pico-8 peut en effet gérer 2 joueurs en local !
  • Créer des sonorités immersives avec plusieurs canaux.

Objectifs pédagogiques

  • Animation 2D,
  • Gestion des événements,
  • Affichage et mise en forme de textes,
  • Gestion avancée des inputs,
  • Effets sonores avancés.

Et quand vous aurez l’impression d’avoir pris suffisamment de bouteille sur le moteur, profitez-en pour déployer votre créativité et créer un univers entier afin de prolonger la durée de votre jeu ! Niveaux supplémentaires, nouveaux personnages, intrigues… Ayez vos joueurs à l’esprit et faites-vous et faites-leur plaisir !

∞ Je veux repousser les limites

Au cours de vos explorations, vous avez pu vous rendre compte que des développeurs et développeuses vont très loin dans leur utilisation de Pico-8 : 3D, multi-joueur en ligne, gestion de la souris…

Voici quelques idées pour celles qui seraient tentées, après avoir fait le tour de la question, de repousser les limites de Pico-8 :

  • Créer un moteur de jeu 3D simple en rasterization ou en ray casting ;
  • Créer un moteur 3D avancé en ray tracing ;
  • Utiliser les features non ou peu documentées : gestion de la souris (et du tactile sur mobile), de l’heure, déblocage des 16 couleurs secrètes ;
  • Il a existé des tentatives de jeux en ligne : où cela en est-il et comment feriez-vous ?
  • Enfin, le logiciel fonctionne sur Raspberry Pi… Ça vous donne des idées ? Nous, oui !

Objectifs pédagogiques

  • Découverte des fonctions avancées du moteur,
  • Infographie 3D : rasterization, ray casting, ray tracing,
  • Géométrie dans l’espace : matrices,
  • Réseau,
  • Raspberry Pi.

Publier votre jeu !

Pico-8 a quelques fonctions magiques d’export des jeux…
On vous laisse chercher, mais sachez que vous pouvez en une commande :

  • exporter en HTML / JS (partagez ensuite vos créations en un git push avec Github Pages ou Netlify !) ;
  • exporter en .png (oui oui, une image représentant votre cartouche de jeu et qui en contient l’intégralité) ;
  • exporter vos différents assets graphiques et sonores.

Pour partager votre jeu sur splore, il faut passer par le forum.

Nous aimerions que chaque groupe publie son jeu à la fois sur le web et sur splore. N’hésitez pas à nommer l’école dans la description !

Ressources générales

Quelques jeux inspirants à trouver sur splore :

  • Dykie Street, un jeu féministe développé par deux françaises,
  • Les incroyables jeux en 3D de freds72 (GRally, Freds72_Snow, Ramps),
  • PicoTennis2, un jeu de tennis très réussi avec du multijoueur,
  • Pico-Ray, un… ray tracer, complet, sans carte graphique RTX,
  • Picopolis (un vrai sim city par Jeb, le lead dev de Minecraft),
  • Fuz, qui reproduit merveilleusement l’ambiance et les mécaniques du grand classique indé Fez,
  • The Story of Zeldo, pour les fans de la saga,
  • Two hiking cats have an in depth conversation about life the universe and everything.

Des chaînes Youtube terriblement cool sur le game design :

Sur le web