Ce projet, ou plutôt cette aventure, vient de se terminer. Je savais en le démarrant que je devais terminer avant fin août, pour rester dans l’idée d’un projet de vacances, et celui-ci dépasse mes attentes 😊 J’ai réussi, sans connaître au départ l’API de la Playdate et le language Lua, à réaliser ce que je voulais. À savoir une combinaison d’écriture, de code, de dessin et de 3D, tout ça dans des allers-retour entre médiums qui font la spécificité de la création que j’aime faire. Ce dernier article fait un récap des étapes, surtout finales, car plusieurs choses ont évolués jusqu’à l’aboutisement de ce projet. Attention, l’article est long, mais c’est le dernier 😉

J’ai rempli un carnet durant l’élaboration du projet : notes, croquis, listes… Les doubles pages que vous allez voir plus bas sont donc tirées de ce même carnet.

J’ai rempli un carnet durant l’élaboration du projet : notes, croquis, listes… Les doubles pages que vous allez voir plus bas sont donc tirées de ce même carnet.

Coder la lecture verticale

Je souhaite revenir sur ce principe de lecture verticale avec la manivelle une dernière fois, mais du côté du code cette fois-ci. Même si j’ai pas mal cherché à le réaliser et l’optimiser seul, je me suis inspiré au final d’un code de Rachel Wil Sha Singh qui fonctionnait bien mieux que le mien. J’ai eu de la chance de tomber sur son travail en naviguant dans le dev forum de la Playdate. Il était précisé que l’utilisation du code était totalement libre, et plutôt que de le cacher, je préfère l’évoquer ici et renvoyer vers ses liens dans cet article. Un grand merci à iel pour avoir réalisé et partagé ce code ainsi que plusieurs autres vraiment pratiques pour débuter. Vous pouvez les retrouver ici → https://gitlab.com/RachelWilShaSingh/playdate-tests/-/tree/main/

4539279A-136E-4760-96EC-7D157B794AF2.jpeg

Une narration clair et sombre

Mi août j’avais déjà le prototype qui fonctionnait, à savoir le fait de dérouler verticalement avec la manivelle la longue narration graphique. À partir de là, j’ai voulu améliorer et pouser encore un peu plus l’expérience finale. La première idée que j’ai voulu tester c’est le fait de pouvoir changer l’aspect graphique de la narration, en pressant les touches A et B.

Ainsi, les dessins alternent entre négatif et positif, entre clair et sombre. Je pense que ce mode de lecture est un avantage dans l’expérience car il rajoute une dualité dans l’ambiance, permettant de trouver une écriture alternée dans la narration et le design (aussi un côté pratique pour adapter sa lecture à l’écran en fonction des conditions lumineuses).

A et B, 1 et 0, noir et blanc, jour et nuit.

02.png

03.png

Au niveau du code, j’ai un peu cherché comment faire 😂, Lua n’étant pas ma spécialité (mais comme je code déjà dans d’autres languages pour le Web, c’était jouable. Conclusion, il faut apprendre à coder, et dans plusieurs languages !). J’ai utilisé les principes if then end et playdate.buttonJustPressed() pour arriver à ce code :

local activebackground = imgB --l'image de départ est imgB à savoir l'image claire

-- appuyer sur le bouton B
if playdate.buttonJustPressed("B") then
   activebackground = imgB --on change l'image pour la version claire
  end
  
-- appuyer sur le bouton A
 if playdate.buttonJustPressed("A") then
    activebackground = imgC --on change l'image pour la version sombre
  end

activebackground est la variable qui gère l’image de départ, à savoir la version claire, et imgB et imgC permettent de changer d’image (sombre ou claire) en pressant la touche A ou B.

Organiser la lecture avec plusieurs écrans

Une fois cette fonctionnalité clair/sombre réalisée je me suis dis que j’avais terminé, que j’avais été au bout du projet. Puis un matin ensoleillé, je prend ma Playdate pour tester le projet dessus (et non plus dans le simulateur avec mon ordinateur) et je me rend compte d’une chose : l’expérience est trop “abrupte”, la lecture démarre directement dès le lancement du jeu. Comme un livre (numérique ou papier), il y a toujours une couverture qui garde la lecture du texte et qui en donne un apperçu (photo, illustration, typographie…). Je me suis dis que ce n’était pas possible de proposer aux joueurs une lecture directe de l’histoire.

Welcome to the game world: how video game title screens tell their own stories

Les jeux vidéo évoluent, et avec eux les écrans titre également !

https://youtu.be/pi47bBT4G9Q

La solution était très simple et très proche de moi aussi : un jeu vidéo à un écran titre, un écran qui donne le ton et l’ambiance et qui permet aussi de choisir des menus : jouer, réglages, crédits… Je devais donc m’en inspirer et proposer un écran titre pour Rooms. Mais si l’idée était simple, la réalisation m’a demandé pas mal de travail. À vrai dire, c’était pour moi un des aspects les plus complexe du jeu !

La solution est venue du dev forum dans lequel j’ai posé une question sur la meilleure façon de programmer des écrans pour séparer les différentes parties du jeu. J’ai reçu une réponse qui a complétement solutionnée mon problème, et dans laquelle on me conseille d’utiliser la librairie roomy (avec un tel nom, je me devais d’utiliser une telle librairie pour Rooms !). La communauté de développeurs sur le forum est vraiment géniale, c’est exactement ce que je cherchais. Par contre cela ma demandé de récrire en partie mon code, car celui-ci n’était pas prévu pour fonctionner avec cette librairie. J’ai dû séparer en 3 mon code : la page crédits, l’écran titre et la narration graphique, qui elle était déjà faite.