Superflu, une saison 2 dont vous serez l’héroïne

Superflu, une saison 2 dont vous serez l’héroïne

Bon, après vous avoir fait la petite surprise de la bande-annonce, quelques explications sur ce nouveau projet s’imposent. L’article est assez long et détaillé, mais je vous fais un petit TL;PL (trop long ; pas lu) au début pour celles et ceux qui ont la flemme de tout lire.

En résumé

  • je bosse sur un jeu vidéo qui racontera la suite des aventures de Superflu ;
  • ce sera un point’n’click à la manière des classiques de LucasArts ;
  • je fais tout (programmation, dessins, animations, scénario, bruitages, musiques) ;
  • j’ai déjà une bonne base (voir la bande-annonce) mais il reste beaucoup de boulot ;
  • ça sera multiplateforme : ça marche sur Gnunux et Android, ça devrait marcher sur Windows et Mac sans trop de problèmes. Si j’y arrive, j’aimerais aussi faire une version web ;
  • ça sera sans doute publié par épisode (sinon ça ne sortira jamais) ;
  • ça sera libre (code sous GPL, contenu graphique/audio sous CC-By-Sa) ;
  • pour l’instant je code en solo (tout seul on va plus vite) mais à partir de la première version de test publiée, ce sera sur un repo avec possibilité de contribuer (ensemble on va plus loin).

Nom de code : Superflu PnC (point’n’click)

La genèse

Cela fait quelques temps qu’avec des potes, on participe de temps à autre à des escape games, ces petites aventures où vous êtes enfermés dans un petit ensemble de pièces et où vous devez résoudre des énigmes pour en sortir en moins d’ une heure (en général). Dans la même veine, on est assez fans des jeux de la collection Unlock. Récemment, on a tenté les escape games en livres édités chez Larousse, et on a bien aimé : simple, un peu plus posé, efficace avec l’usage d’un site web dédié (facultatif, les livres seront toujours jouables quand le site sera mort), et très bon marché comparé au reste.

Là, j’ai mon réflexe habituel quand je vois un truc simple et cool : « tiens, mais je pourrais en faire un, de livre escape game ». Un peu de graphismes, je sais faire, un bon scénar, je sais faire… et la mécanique des livres-jeux de chez Larousse ressemble à s’y méprendre aux point’n’click de mon enfance, Day of the Tentacle et autres Monkey Island

Mais attends un peu, pourquoi ne pas carrément faire un point’n’click, dans ce cas ?! J’ai passé des heures sur les jeux LucasArts et j’y rejoue assez régulièrement via ScummVM. Je connais les énigmes par cœur, mais c’est comme revoir un bon film, je les adore. Et puis ce n’est pas la première fois que l’idée de faire un petit jeu vidéo me titille, le lectorat rescapé du Geektionnerd s’en souvient peut-être.

Battle for the Geeks et PacNerd, deux vieux embryons de jeu vidéo mal fichus datant de mes débuts de dév, à l’époque du Geektionnerd (circa 2009-2010), et GKND6, énième projet abandonné (2014), un RPG qui aurait fait suite à la série GKND et dont je n’avais, je crois, jamais parlé publiquement 🙂

D’un coup, je suis lancé sur mon idée : je vais faire un point’n’click ! On ajoute à la liste des compétences nécessaires : de la programmation, je sais faire (c’est même mon gagne-pain), et pourquoi pas de la musique et du son, je sais faire aussi. Je choisis très vite Superflu comme univers de jeu : les graphismes colorés s’y prêtent bien, le personnage du superhéros sera idéal pour un jeu d’enquête/énigmes, et ça me permettra de garder un humour absurde et loufoque toujours dans la veine des classiques de LucasArts…

Problème : on est à l’automne 2019, et la saison 1 de Superflu est au point mort depuis près de 2 ans. C’est à ce moment que je poste ce message sur Mastodon/Twitter :

Je vous en informe aujourd’hui : c’est ce projet de jeu vidéo qui m’a mis un coup de pied au cul pour finir enfin la saison 1. Pour être franc, j’avais un peu fait le deuil de la série et l’avais plus ou moins enterrée, je ne pensais pas la finir… Elle avait trop traîné, et ce format de BD s’avère finalement trop prenant pour moi. Bref, la terminer a été une surprise pour moi-même, et finalement j’en suis très content. A priori, toutefois, il n’y aura donc plus de BD Superflu, désolé… C’est pour cette raison que je parle d’une « saison 2 dont vous êtes l’héroïne » (héroïne car on dirigera d’abord Sophie), parce que ce jeu vidéo sera la suite de la saison 1.

Superflu pixelisé, un petit clin d’œil à LucasArts réalisé en 2014, comme quoi l’idée n’est pas nouvelle…

Ça en est où ?

Il faut considérer deux parties distinctes : le moteur de jeu (le code) et le contenu (description des niveaux, dessins, animations, musiques, sons). Le plan, c’est d’abord de finir une version stable et complète du moteur. Ensuite, il est fort possible que je publie le contenu par épisodes, car si j’attends de faire assez de contenu pour un jeu complet, ça ne sortira jamais (voyez le temps qu’il m’a fallu pour finir la saison 1…).

Pour l’instant le contenu déjà fait est donc assez réduit et me sert surtout de test pour le moteur, vous pouvez en voir 90 % dans la bande-annonce : ce sera la première pièce du jeu, le bureau de Superflu. Une fois que le moteur sera capable de faire tourner tout le contenu que j’ai prévu pour cette pièce, j’aurai la majorité des mécaniques de jeu fonctionnelles (à part les dialogues car cette pièce n’a pas de personnage non-joueur) et je m’attaquerai à la suite du contenu. J’ai une idée assez vague du scénario, mais l’écriture sera guidée par les énigmes que ça pourra générer (en ça, ce sera assez différent d’une BD).

J’ai commencé tout doucement depuis l’automne dernier et j’ai déjà une bonne base de code, vous pouvez voir ce qui fonctionne déjà dans la bande-annonce :

  • Déplacements dans une pièce avec animation
  • Une partie des interactions avec les objets de la pièce (regarder, prendre, par exemple)
  • Inventaire
  • Monologues
  • Son/musique
  • Interface semi-responsive (ça vous ne le voyez pas, mais ça s’adapte à différents aspect ratios)

N’empêche qu’il manque encore beaucoup beaucoup de choses pour que ça soit vraiment fonctionnel (d’où les dates de sorties assez floues/larges données dans la bande-annonce car je ne suis pas encore sûr du temps que ça me prendra), en vrac :

  • Scrolling dans une pièce (pour l’instant la pièce fait pile la taille de l’interface, mais idéalement faudrait pouvoir avoir une pièce large et la faire défiler quand le personnage bouge)
  • Dialogues interactifs (pour ça il faudra d’autres personnages bien sûr)
  • Changement de pièce
  • Sauvegarde/chargement de partie
  • Menus + paramètres d’usage
  • Animations de transition
  • Certains mécanismes de jeu comme les digicodes (ça restera dans un esprit escape game)
  • Pourquoi pas un mécanisme d’aide/indices

Le moteur s’appelle SOSAGE (pour Superfluous Open Source Adventure Game Engine, je ne pouvais pas faire plus explicite). Techniquement il sera utilisable pour faire d’autres jeux du même type, je fais en sorte de ne pas hard-coder de choses spécifiques à Superflu, mais bien sûr je le code pour Superflu donc il y aura peut-être des choses trop contraignantes pour un autre jeu (c’est pas ma priorité quoi). Idéalement, je voudrais à terme documenter son utilisation pour permettre la réutilisation (je ne parle pas juste de commentaire de code mais bien d’une doc qui explique comment le moteur fonctionne).

Ce sera bien entendu sous licence libre, GPL pour le moteur et CC By Sa pour le contenu. Pour l’instant je garde le moteur privé et je code en solo parce que mine de rien, gérer des contributions, ça demande du temps, et pour l’instant je préfère aller vite. Lorsque j’aurai une version complète (ou quasi) du moteur, je publierai le code et j’ouvrirai aux contributions.

Le plan

  • Dans les prochains mois : je vais continuer à bosser tranquillement là-dessus en parallèle du reste (BD pour le blog, textes, etc.). Je posterai de temps en temps des articles pour montrer l’avancement, expliquer tel ou tel élément du moteur, pourquoi pas aussi présenter certains visuels, des musiques, etc. Bref, ce sera du développement illustré

  • Avant la fin de l’année 2020 (indéterminé, ça sera pas forcément le 31 décembre non plus 🙂 ) : publication d’une version bêta du moteur accompagnée d’un peu de contenu de démonstration (idéalement quand même quelques pièces différentes), publication conjointe du code et ouverture aux contributions

  • Ensuite : mise à jour du moteur, publication du contenu par épisodes au fur et à mesure. Publication d’une doc sur le moteur (= comment faire vos propres niveaux voire vos propres jeux, en gros).

Pour finir, je ne m’interdis pas de faire également une version livre-jeu, vu que c’était l’idée de départ. Après tout, une fois les énigmes faites, il ne restera qu’à prendre quelques screenshots et à transposer les mécanismes de jeu sur papier.

La technique

Le moteur est écrit en C++, les niveaux et ressources diverses en YAML. Les bibliothèques utilisées sont la SDL2 (avec les modules Image, TTF et Mixer pour le son) ainsi que la libyaml évidemment. J’ai envisagé d’utiliser quelque chose de plus haut niveau (le moteur point’n’click de Godot était tentant), mais le peu que j’ai testé m’a fait sentir que le saut technique nécessaire était plus important pour moi que de coder depuis zéro (enfin, depuis la SDL2, ce n’est pas vraiment zéro). Et puis ça reste plus rigolo de faire soi-même, à mon humble avis (et mon but, c’est aussi de m’amuser).

Le jeu est bien sûr développé et testé sur Gnunux mais devrait tourner sans problème sur Windows et Mac (SDL2 et libyaml étant portables). J’ai aussi bien avancé sur une version Android (et dévirés type LineageOS), c’est un peu plus chiant à faire mais j’arrive à faire un APK fonctionnel (et j’ai déjà prévu la gestion de l’interface en tactile, même si ça va demander quelques ajustements). Ça me semble assez prioritaire d’avoir une version Android bien foutue car c’est un peu la plateforme la plus incontournable pour les jeux (et pour y avoir testé ScummVM ainsi que Thimbleweed Park, le point’n’click est très agréable à jouer sur tablette/téléphone – un point’n’touch, du coup).


J’EN AI CHIÉ mais ça marche !

Enfin, idéalement j’aimerais carrément proposer une version jouable dans un navigateur avec la technologie Web Assembly : ce sera un peu plus compliqué pour moi à mettre en place, faut que je me dépatouille avec Emscripten que je ne connais pas du tout… Mais ce serait chouette, car la barrière pour y jouer deviendrait quasi-nulle.

Au niveau logiciels utilisés, en vrac :

  • Emacs pour le code et l’écriture des niveaux
  • CMake pour la configuration (gradle et cie pour la version Android)
  • g++ / clang++ pour la compilation, selon l’humeur
  • Inkscape pour les graphismes
  • Musescore pour la musique
  • Audacity pour les sons (je n’ai pas commencé à enregistrer, mais je ne pense pas avoir besoin d’un truc aussi pointu que Ardour – dont je me sers pour mes chansons)

Je savais bien que ça me servirait un jour de toucher à tout…

Voilà, je vais m’arrêter là, mais comme dis plus haut, je vous en reparlerai régulièrement. À très bientôt, donc 🙂


Ce blog est sous licence libre et est donc :

  • gratuit car financé par les dons, vous pouvez me soutenir via Tipeee ou autre ;
  • librement modifiable car à sources ouvertes proposé sur mon repo Git ;
  • librement partageable via les liens ci-dessous ;
  • ouvert aux commentaires via le formulaire ci-dessous (commentaires non-publiés ‑ je ne propose aucune tribune publique – mais reçus directement sur ma boîte mail).


    Nom (obligatoire)

    Email

    Message (obligatoire)

    Antispam