Dev & retro-gaming avec TIC-80

December 16, 2018
devfest retro gaming dev code tic80 console

Cette année, MonkeyPatch a souhaité soutenir le DevFest Toulouse. À cette occasion, nous nous sommes réunis pour savoir ce qu’on allait préparer pour notre stand.

On s’est très vite entendu pour faire des kakés de l’équipe et mettre en avant notre passion du dév.

Nous avons également décidé de mettre en place un petit quiz et un jeu rétro (le thème du DevFest de cette année). C’était décidé, on allait mettre une borne arcade rétro !

Mais avoir une borne rétro du commerce ne nous emballait pas vraiment. On a donc préféré s’en faire un do-it-yourself.

Passionné depuis ma jeunesse par les jeux vidéo, et ayant quelques petits projets de jeux à mon actif, c’etait l’occasion rêvée de créer une expérience fun de retro-gaming, et de s’éclater en codant !

Aidé par le reste de l’équipe pour faire la structure et brancher les commandes, j’ai pu essentiellement me concentrer sur le code.

Après un bon jus de neurones et quelques jus de coco on a imaginé Super Monkey Ball, un jeu mêlant casse-brique et pong, dans un univers déjanté de monkeys 8-bits.

Reste alors le choix d’une techno pour mettre cela en place rapidement … Il existe de très bons choix, tels que LibGDX qui est une excellent framework pour développer des jeux multi-plateformes avec les langages de la JVM.

Mais c’est en tombant sur le TIC-80, une machine virtuelle dédiée à la création de jeux rétro, que l’on a eu un vrai coup de coeur !

Le TIC-80 fait partie de la famille des consoles “imaginaires”, en anglais “fantasy console” et va nous permettre de créer, jouer et partager des jeux rétro 8-bit.

Les spécifications de la machine font rêver (ou pas) :

  • DISPLAY 240x136 pixels, 16 colors palette
  • INPUT 2 gamepads with 8 buttons / mouse
  • SPRITES 256 8x8 foreground sprites and 256 8x8 background tiles
  • MAP 240x136 cells, 1920x1088 pixels
  • SOUND 4 channels with configureable waveforms
  • CODE 64KB of Lua or Moonscript or JavaScript or Wren or Fennel

Alors pourquoi s’embêter avec les limitations d’une autre époque ?

Tout d’abord, TIC-80 va nous fournir tous les outils de développements intégrés dans la machine elle même : éditeur de code, de sprites, de map, d’effets sonores et de musique.

L’éditeur de sprite du TIC-80, pour l’artiste 8-bit qui est en vous.

Pour ceux qui, comme moi, ont commencé l’informatique avec un Amstrad, Commodore, VIC ou BBC Micro, … On retrouve, avec nostalgie, ce côté magique de rentrer quelques lignes de BASIC et de voir apparaître une animation, un texte interactif ou un petit jeu.

Ici point de BASIC et de GOTO, mais du Lua qui va nous permettre d’écrire rapidement notre jeu. Car la grande force de TIC-80 est de pouvoir très rapidement prototyper son jeu 8-bit grâce aux fonctions intégrées qui permettent très facilement de dessiner des sprites, des formes simples, tracer la map, jouer des sons, etc …

La référence complète des fonctions est disponible ici et on dispose d’une grande partie de la librairie standard Lua.

Il n’y a donc pas à se soucier d’interopérabilité entre les plateformes, ou à comprendre une API avancée, on va directement à l’essentiel en se concentrant sur le gameplay de notre jeu.

L’éditeur de code du TIC-80 va développer votre créativité (ou votre myopie)

Pour faire un jeu simple, on implémente la fonction TIC qui est appelée toutes les 16ms avec notre logique de jeu et code de dessin.

D’autre part, ces limitations vont nous pousser à utiliser les ressources de la machine de manière créative et nous inciter à garder notre gameplay simple. TIC-80 est notamment inspiré de Pico-8, son précurseur, qui impose des limites encore plus drastiques !

Ainsi après quelques heures de codage et du dessin en pixel-art un peu douteux fut née la première mouture de Super Monkey Ball !

Après une phase de jeux tests acharnés par les monkeys, nous étions enfin prêts!

En matière de jeu, tester n’est pas douter !

J’espère que cet article vous aura donné envie d’essayer le TIC-80. Il y a de nombreux jeux sympa à essayer sur leur site, ou en utilisant la fonction surf intégrée, n’hésitez pas à partager vos créations …

Pour ceux qui ont envie d’y jouer en ligne, vous retrouverez la “cassette” de Super Monkey Ball sur le site officiel

Code 💻, Love ❤️ & Bananas 🍌 !