Encore un peu de créativité nostalgique

L’article de ce mois sera discount. Je ne veux pas y passer trop de temps, car j’élabore, pour de vrai, la roadmap de Squarity. J’aimerais pouvoir la sortir avant la date-anniversaire, le 26 septembre.

Par ailleurs, je vous prépare un récit corporate assez conséquent. Quand je le sortirai, je vous laisserai juger si sa qualité n’a d’égale que sa quantité.

En attendant, je vous réchauffe un bout de blabla que j’ai déjà pondu dans le Discord de Squarity.

Glorious train wrecks

Ce chapitre a pour sujet la SNCF et ses stupides employés, qui continuent de trouver que leur entreprise est glorieuse alors même que leurs trains ne font que des accidents.

Nan j’déconne !!! Partez pas !

Ce chapitre a pour sujet https://www.glorioustrainwrecks.com/, un site web inconnu qui organise des game jams de jeux amateurs « comme au bon vieux temps ».

Voici une traduction approximative du texte de présentation

Glorious Trainwrecks a pour intention de faire renaître l’esprit des « postcardwares » qui sévissaient vers l’année 1993, et vous encourage à créer des jeux en balançant n’importe quoi au hasard pourvu que ça mousse.

Glorious Trainwrecks vous ramène à l’époque où vous ne prêtiez que peu d’attention à la « valeur de production », où il était plus important de choper des sons de votre émission de télé préférée pour les mettre dans votre jeu, et de créer des images animées en faisant des grimaces devant votre webcam. Une époque où toutes les idées ridicules que vous aviez étaient bonnes à coder, lorsqu’avec vos amis, vous vous inventiez un « nom d’entreprise », afin de légitimer les délires et les moments de glandouilles que vous aviez devant votre ordinateur.

Le but n’est pas de créer des jeux non finis ou injouables. Si un accident ferroviaire est marquant, il doit l’être dans le sens où il est SUPER-COOL.

Avec vous, nous allons ramener le vrai esprit des jeux vidéos indépendants. Oui, vous ! Ce site n’a pas d’autres buts que de vous donner un coup de pied aux fesses pour que vous vous mettiez à créer. Wikipedia explique que des gens déclenchaient des accidents ferroviaires (avec des trains vides, bien sûr) uniquement pour l’amusement général de la population. Le monde ne se porterait-il pas mieux si nous faisons revivre cette tradition ?

Vous n’avez pas besoin d’avoir de talent, tant que vous avez les tripes. Votre jeu ne doit pas obligatoirement être cohérent, mais il doit être terminé.

Il est temps de plonger dans la gloire !

Je ne vois pas trop le rapport entre la création amatrice de jeux vidéos et les accidents de train, et je n’ai pas trouvé d’articles dans Wikipedia mentionnant des accidents volontaires pour l’amusement de la population. Mais on n’est plus à ça près.

Le site recense les jeux créés durant leurs game jams. J’en ai testé quelques uns, ils ne méritent pas forcément beaucoup d’attention, mais ils offrent un petit moment de fraîcheur dans ce monde de brutes.

Vous trouverez des jeux PuzzleScript, jouable directement dans le navigateur, et beaucoup de jeux créés avec le moteur Klik’n Play.

Ci-dessous, un exemple typique. Les personnes qui connaissent Klik’n Play retrouveront quelques-unes des images moches fournies par défaut, le tout formant un ensemble graphique assez disparate (et ça pourrait être bien pire).

La nostalgie renouvelable

Je me retrouve dans cet esprit, ayant passé une partie de mes années collèges sur ce logiciel, à tenter de créer des jeux trucs en balançant des images, des sons et des règles de collisions, le tout très aléatoirement.

C’est fort louable de créer des sites tels que Glorious Train Wrecks, pour permettre à des vieux comme moi de se blottir un instant dans le cocon temporel « de mon époque ». Une petite parenthèse au milieu des trépidations de la vie, pleine de vidéos Youtube placement-produitisées, d’influenceurs rentabilisés, de sites de e-commerce search-engine-optimisés et de posts Linkedin cher-réseautifiés.

Les « jeunes de maintenant » ne vont probablement pas s’intéresser à des outils de création aussi mal fichus que Klik’n Play. Certains expérimenteront peut-être Puzzlescript, à condition d’accepter son minimalisme et son langage fortement spécifique et exotique.

Mais ce serait très déplacé et stupidement conflit-générationnellesque de prétendre que les jeunes de maintenant ne fabriquent plus rien. Seulement ils utilisent des outils de création de jeux vidéos plus récents : Roblox, Scratch, Game Builder Garage, …

La seule chose qui manque, c’est un lien entre les sites nostalgico-créatifs comme Glorious Train Wrecks, et la nouvelle créativité des jeunes et de leurs outils plus actuels.

Squarity est une humble proposition pour rendre possible l’établissement de ce lien. Le moteur est simpliste et les jeux d’exemple relèvent d’un tel amateurisme, que l’on pourrait presque dire que je suis devenu un professionnel dans l’art de produire des œuvres amatrices. Mais c’est du python, et vous pouvez partager vos jeux (assez) facilement. Les jeunes de maintenant apprennent le python au lycée et souhaiteraient montrer leurs créations aux autres jeunes de maintenant.

Si, dans 15 ans, il existe une seule personne qui se plaira à se remémorer les supers jeux qu’elle avait créés durant son adolescence, avec Squarity, alors je serais satisfait. J’aurais transmis ma nostalgie à la génération future, qui la transmettra à la génération future-future, etc.

Faut juste que l’humanité et internet continuent d’exister encore pendant 15 ans, ce qui ne semble pas complètement gagné. On verra.

Mouth Trap, fait en 1989 avec l’outil AMOS sur Amiga, qui a remporté un concours lui permettant d’être publié par l’éditeur Mandarin Software.

Une p’tite pièce ou un p’tit jeu sivoupléééé

Tout ça pour vous demandez : si vous avez le temps, essayez de participer à l’un des game jams de Glorious Train Wreck avec un jeu que vous auriez créé dans Squarity.

J’avais d’autres trucs à raconter, mais en les écrivant, c’est devenu plus conséquent, alors je les mettrais dans un autre article. Ça suffira bien pour aujourd’hui !

Une femme ronde « comme au bon vieux temps », c’est chouette.

THCON 2021 – ZZT Post Challengem

Le week-end du 12-13 juin a eu lieu le CTF (Capture The Flag) de la Toulouse Hacking Convention. J’y étais en tant que participant à essayer de résoudre les challenges, et en tant que contributeur qui en a créé. Normalement, on n’est pas censé faire les deux. Chut, faut pas le dire.

Ma participation

Tout se passait à distance, dans nos chez-nous respectifs. Niveau ambiance et mise en situation, on est loin du NorthSec (qui met tout de même la barre assez haute, ce que je vous avais narré l’année dernière).

Les challenges de la THCON sont simplement listés sur un site, créé avec l’outil générique CTFd. Je ne me suis donc pas trop senti transporté dans un autre monde, mais je me suis quand même beaucoup amusé.

J’ai réussi trois challenges, dans trois catégories différentes : programmation, app-script, cryptographie. C’est peu, mais ça me suffit amplement. Je suis un peu déçu d’avoir passé plusieurs heures sur un challenge d’intro tout simple (one-time pad). Il fallait faire des XOR, alors que je tentais des additions/soustractions dans tous les sens. Duboulet !!

Ou-exclusif, le shérif de l’espace. J’ai déjà fait cette blague y’a 10 ans. Je m’en lasse pas.

Ma contribution

Ayant un ancien Collègue dans l’orga de la THCON, j’en ai profité pour lui proposer un challenge de mon crû. Après de longs et passionnants échanges ainsi que moults tests, nous nous sommes mis d’accord pour le splitter en deux, du fait de son volume qui s’est révélé assez conséquent.

Je vous propose ici la version non-splittée, que je préfère. Faut s’accrocher pour le vaincre, mais vous n’avez pas les contraintes de temps de la THCON.

Il s’agit d’un unique fichier à télécharger : THCON21.ZZT.

Voici la description, comportant des indices pour vous aider à trouver quoi faire avec :

TUR-ROX

A journey in Turing-approxi-complete video games.

« ZZT » ? What is that strange file extension ? It may be something old. If it’s old, there is a MUSEUM about it. Whatever it is, I suppose it has nothing to do with Catherine ZETA-Jones.

Comme je suis gentil, je vous pré-mâche le début. Il s’agit d’une map du jeu vidéo « ZZT ». Pour l’installer, vous devez suivre cette doc (L’outil « KevEdit » n’est pas indispensable).

Si vous voulez juste y jouer pour voir un peu à quoi ça ressemble, il y a une version en ligne dans le « Museum Of ZZT » : https://museumofzzt.com/file/c/THCON21.ZIP
Rien à installer ni à copier. Vous cliquez sur le lien puis vous cliquez sur « Play online » dans le menu en haut.

Le but de ce jeu est de trouver un « flag », c’est à dire un code secret, ayant le format THCon21{-------------}. Les tirets correspondent à des caractères alphanumériques.

C’est du hacking. Ça veut dire que si vous vous contentez de jouer, vous ne trouverez pas grand-chose. Il faut décortiquer le jeu, chercher comment il fonctionne, le bidouiller, ajouter des éléments de débuggage, extraire des informations, le passer à la moulinette, etc.

Bon triturage de cerveau !

Quite unrelated pic, screenshot d’un outil bien utile pour les CTFs.

Des signes d’intérêt de la part des THConistes

J’ai eu quelques bons retours sur le Discord de la THCon, aussi bien pendant la compétition que après. Apparemment, le format est assez original. Quelques personnes ont rédigé des write-ups (ça veut dire « des solutions »), et y ont inséré un avis très positif.

Mon ego est fortement flatté de voir que des gens se sont interessés à ma création, au point de rédiger des textes à ce sujet. Je suis tout gargarisé !

Voici les liens vers lesdits write-ups. ATTENTION, Ne cliquez pas dessus si vous voulez trouver le flag par vous-même. Ce sont des énormes spoilers !!!

Vous vous en doutez, le véritable but de cette contribution n’était pas le challenge en lui-même, mais la petite publicité pour Squarity embarquée dedans. Vous la trouverez facilement. A-t-elle eu un impact ? Aucun nouvel adepte n’est venu se rallier au Discord de Squarity. C’est pas grave.

Des signes de non-intérêt de la part des ZZTistes

Les personnes qui continuent d’utiliser ZZT pour créer des jeux et autres œuvres se retrouvent dans le « Museum », ainsi que sur (encore) un serveur Discord. Vous vous en doutez, le véritable but était de faire découvrir Squarity à cette communauté. Les deux moteurs de jeux diffèrent sur beaucoup de points, mais ont un but commun : favoriser la création vidéoludique amatrice.

Mais vous ne pouvez pas débarquer en gueulant : « Regardez mon projeeeeeet ! Il est gèèèniaaaâââl ! Venez vous féoder à ma cause ! Travaillez pour moi et faites-moi de la pub en échange de ma reconnaissance faciale éternelle gratuite ! ».

Lorsqu’on veut rallier à soi-même les membres d’une communauté existante, il vaut mieux commencer par se rallier soi-même à cette communauté.

Alors je préparais le terrain. Je m’étais inscrit sur le Discord de ZZT il y a de ça plusieurs mois. Je me suis présenté, j’ai lu plein de messages sans trop intervenir. Par certains aspects, ce Discord est un « safe space ». Certaines personnes font part de leur problèmes personnels et sont inconditionnellement soutenues par d’autres personnes. C’est cohérent avec le fait que les premiers créateurtrices de jeux ZZT étaient des ados pas toujours bien dans leur peau. The « children of the glow ». Mais un safe space, ça ne s’approche pas comme ça.

Cherchez vous-même d’où vient l’expression « children of the glow »

Pendant que je créais le challenge, je parlais un peu à tous ces gens, leur disais que je trouvais ZZT cool et chouettement nostalgique, et que je me sentais bien à coder mon truc. Je mettais des petits smileys. Je testais un mini-jeu et donnais un mini-avis. Lorsque je leur parlais de ma future création, un début d’intérêt semblait se manifester. La mythique Anna Anthropy m’adressa même un ou deux messages.

Mon challenge contient des easter eggs qui durent paraître étrange aux THCONistes, et qui étaient spécialement destinés aux ZZTistes :

  • Un personnage qui raconte une histoire bizarre et totalement azimutée, le genre de propos que pourrait sortir un ado réfugié dans son petit monde. Je vous laisse le lire par vous-même, il est facile à trouver, dans le premier board.
  • Ce personnage dit aussi « Everything is familiar and everything is different ». Une phrase que l’on retrouve plusieurs fois dans le livre écrit par Anna Anthropy.
  • Le board principal contient le texte « Lawless Invisible », une référence à Kudzu, un jeu connu par bien des ZZTistes. Dans ce jeu vous rencontrez (ou pas) des personnes désignées comme « Unlawful Invisible ». L’expression est restée.
  • Le challenge contient un programme Puzzlescript permettant d’extraire un mini-jeu, dans lequel vous dirigez une tête blanche sur fond bleu, comme le « Char-1 » de ZZT, et vous devez récupérer des « Venus Symbol » rose.
Coïncidence ? Je crois pas…

À part le dernier, tous ces easter egg sont très accessibles. Il suffit de jouer au jeu. Même si vous ne résolvez pas le challenge et que vous ne comprenez rien à ce qu’il faut faire, vous tomberez dessus.

Deux jours après la THCON, je viens sur le Discord de ZZT et j’apporte mon petit jeu en cadeau. Une personne m’informe qu’un type est venu durant le week-end pour demander des indices sur le challenge. J’ai vu leur conversation, elle était tout à fait courtoise mais n’a duré que quelques messages.

Et c’est tout.

Alors voilà. Je ne m’attendais pas à un débarquement massif de ZZTistes sur mon Discord de Squarity, ni à ce que toutes ces personnes s’arrachent les cheveux sur le challenge pour tenter de le résoudre à tout prix, ni à ce que mon esprit créatif soit porté aux nues et que Tim Sweeney vienne en personne me remettre la Croix Nationale du Venus Symbol d’Honneur. Mais je m’attendais à avoir au moins une petite réaction de la part d’au moins une personne qui aurait testé le jeu juste 2 minutes.

Mon cadeau n’était pas suffisant. Tant pis. Je reviendrais plus tard si j’en ai d’autres. Pour l’instant, je laisse tomber la communauté ZZT et je me concentre sur Squarity. Il y a déjà quelques personnes qui me sont féodées (même si ça veut rien dire), je dois continuer de leur apporter régulièrement des nouveautés car je ne veux pas les décevoir.

Voilà un cadeau !

C’était quand même chouette de créer ce challenge

J’ai passé un certain temps à le réaliser, à galérer avec l’éditeur de niveau de ZZT et son ergonomie discutable des années 90, à dessiner les boards, à étudier le langage ZZT-OOP, à élaborer les énigmes, à écrire les scripts de chacun des petits objets programmables, à intégrer des gros tas de texte à l’aide de bouts de scripts python, etc.

Je me suis senti bien. Une fois de plus, ma nostalgie de création adolescente est revenue. Une nuit, il était 2 heures du matin, j’écrivais pour la 5ème fois la ligne de code « :lblMulti » , la musique de Worakls passait dans mon casque audio. C’est pas ce que j’écoute d’habitude, mais là ça collait avec ce retour en adolescence. J’étais bien. Libre. Je pouvais sentir les bulles de photons telluriques glisser le long de mes neurones.

Est-ce que c’est ma crise de la quarantaine ? Est-ce que ZZT est un retour aux sources pour moi ? Ce serait d’autant plus drôle que ce n’est pas une de mes sources. Je ne connaissais pas ZZT lorsque j’étais adolescent.

Je vais me remettre tranquillement à Squarity. Mais je proposerais également ce challenge au site root-me.org. Je ne sais pas du tout si ce sera accepté. Il y a des tas de raisons que ça ne le soit pas : la présence d’une pub pour un projet personnel, le fait que ce challenge ait déjà été utilisé, que des write-ups circulent, etc. On verra bien.

Si ça passe dans root-me, il est fort possible que je me lance dans un autre challenge du même type pour la prochaine THCON. Spoiler alert, ce sera peut-être avec cet outil.

Et puisqu’on parlait de Venus Symbol, voici Venus :

Pourquoi je crée Squarity ?

Lors d’une enième conférence de coaching en création de startuffe, un quelconque corporate-bullshiste officiel a dit : «start with ‘why’, not with ‘what’ or ‘how’».

Ce n’est pas ce que j’ai fait avec Squarity. J’ai starté with « on-va-d-abord-s-assurer-de-la-faisabilité-technique-de-l-idée », car compiler du python en live dans un navigateur web, c’était pas gagné d’avance. Maintenant que je suis à peu près sûr que ça fonctionne, je peux continuer with « why ».

Vous trouverez dans mon repository de doc le texte officiel détaillant ce why et les spécificités de Squarity par rapport à d’autres moteurs de jeux.

Il y a d’autres raisons, plus intimes, provenant de l’adolescent immature que je suis. Je ne les ais pas mises dans le texte officiel, car ça pourrait dérouter des personnes qui ne connaissent ni moi, ni Squarity.

Mais si vous êtes sur ce blog et que vous ne vous êtes pas encore enfui, il est fort possible que vous me connaissiez déjà un minimum, donc que mes bêtises plus intimes ne vous choquent pas. Ce qui nous amène à :

« Pourquoi je crée Squarity ? » version adolescent immature

Les raisons sont à peu près classées de la moins bizarre à la plus bizarre.

Puzzlescript

Le déclic a été provoqué par PuzzleScript. En découvrant cet outil, je me suis dit que son potentiel était énorme, mais qu’il manquait tous les à-côtés : un espace d’échanges, une doc plus fournie avec des exemples commentés, un système de débug plus élaboré, des tests unitaires, des vraies images pour les sprites, etc.

J’étais parti pour forker/contribuer au projet et apporter progressivement ces à-côtés. Mais je me suis aussi souvenu de cet article de Sam et Max, expliquant que créer des « Domain Specific Language » est souvent une idée à la con, et qu’il vaut mieux créer une API sur un langage existant (au hasard le python). Ce que je suis en train de faire.

Un DSL pour tous les serpents (pas que les pythons)

Anna Anthropy et ZZT

Souvenir de mes années collèges.

Je joue à Jill of the Jungle. Un petit readme publicitaire y est inclus, mentionnant le jeu ZZT et son éditeur de niveaux. C’est du mode texte, ce qui est techniquement cheap, même pour l’époque. Je remise ce souvenir au fond de mon cerveau pour un éventuel rappel ultérieur. Je passe à d’autres choses, principalement : mater les seins de mes camarades de classe.

Il y a deux ans, alors que l’idée de Squarity commençait à germer dans mon esprit, je tombe sur la collection de livres « Boss Fight Books ». L’un d’eux, écrit par Anna Anthropy, a pour sujet ZZT. Je me fait offrir ce livre pour mon anniversaire, dans le but de parfaire ma culture concernant les jeux dotés d’un éditeur de niveaux.

Je découvre Anna, les histoires qu’elle a traversées, son engagement pour la diversité culturelle et la fanzinicité des jeux vidéos, la foisonnance de mondes ZZT que des adolescents déversaient sur les serveurs BBS. Je me sens bizarre en lisant l’histoire de Drako et son « Edible Vomit », je me vois dans le trou qui aurait pu être comblé « if only you had committed more », j’ai une petite larmichette à la dernière page où elle se remémore avoir échoué à récupérer 5 symboles de Venus violets.

J’aimerais avoir le soutien de Anna Anthropy pour Squarity. Je n’ose pas la contacter pour l’instant, car le projet n’en est qu’à ses débuts. Plus tard, peut-être.

J’ai récemment fini « Caves of ZZT » et je m’attaque à « Town ».

Nostalgie de ma renommée Turbo Pascalienne

Au lycée, je créais des petits jeux et des animations en Turbo Pascal. Je vous en ais parlé, et j’ai publié une partie de ces vieux trucs.

Je les mettais sur des disquettes et les distribuais à mes potes. Ils trouvaient ça génial. J’ai donné des cours à certains d’entre eux. J’étais une putain de re-sta. Auprès d’une catégorie très restreinte de lycéens, certes, mais une putain de re-sta quand même.

Il faut donner le plus de moyens possibles aux ados actuels d’expérimenter la démarche de créer des choses en informatique et de les partager. Ce ne sera pas sous forme de disquettes ni de programmes Pascal, mais si ça peut être sous forme de jeux dans Squarity, ça me rendrait très heureux.

Renommée, renommée… Qui es-tu, renommée ?

Augmenter ma capacité à finir mes projets

Comme vous le savez, j’ai un historique créatif assez fourni : jeux, dessins, textes, … Cependant, mon ratio « projets vraiment terminés / projets envisagés » est très peu glorieux. Je ne me fais plus d’illusion, je sais maintenant que j’ai du mal à m’investir dans un projet personnel sur du long terme. Mes plus hauts scores ont été le dessin animé Pru-Pra-Prok et le jeu Blarg, qui ont chacun duré une année (pour un résultat hautement discutable). Ma participation au Magazine 42 a duré plus longtemps, mais je considère ça comme un enchaînement de petits projets, et non pas un seul gros.

Face à mes difficultés à rester motivé sur du long terme, j’ai logiquement décidé de me lancer dans un gros projet de long terme, dont la finalité est de m’aider à créer des petits projets de court terme, à savoir, des jeux dans Squarity.

Comment ça, c’est pas logique ?

L’hôtel Ryugyong : un projet pas fini, mais lumineux.

L’amour, bordel ! L’amour !

Souvenir de mes années lycées.

Je suis amoureux d’une fille. Je passe plusieurs mois à penser à elle sans rien oser faire. Puis je lui écrit une lettre d’amour. Une envolée lyrique classique, mais franchement pas dégueue. Avec le mot « princesse » dedans.

Sauf que je n’ose pas venir lui en parler. Je ne lui montre aucun signe d’intéressement. À tel point qu’elle se demande si ce n’est pas une blague, si ce n’est pas un crétin random qui a écrit cette lettre pour se foutre de ma gueule et/ou de sa gueule à elle.

Il faut que j’en parle à mes potes (ceux mentionnés précédemment, qui me considèrent comme une re-sta), mais même ça, je n’ose pas le faire.

Alors je crée un jeu, sur le même principe qu’Atomix, en 3D iso et avec plusieurs étages. Je place une lettre du prénom de mon amoureuse sur chaque étage, puis je construis un niveau à partir de ça (du level design de dingo !). Je montre ce jeu à mes potes, qui découvrent la vérité.

Quelques jours plus tard, j’envoie l’un des potes révéler à cette fille que ce n’est pas une blague et que je suis vraiment amoureux d’elle. Encore quelques jours plus tard, dans un ultime boost de courage, je vais moi-même lui parler. Comme vous vous en doutez, elle me congédie poliment.

On n’est pas sorti ensemble. Puis j’ai perdu les fichiers du jeu. À moins que je ne les ais consciemment effacés. Je ne sais plus.

Un jeu vidéo n’est qu’une solution parmi d’autres pour révéler un amour, directement à la personne concernée, ou par pote interposé. La seule solution dont j’étais capable à l’époque. J’aimerais que Squarity soit un moyen pour plein de gens d’exprimer plein de choses.

Elle était magnifique comme ça.

Ma dépendance à la création de jeux

J’ai une dépendance légère au jeux vidéos, mais aussi une dépendance à la création. Je suppose que ça provient de mon indécrottable désir d’auto-flattage d’égo, et peut-être aussi d’une certaine envie de pouvoir suprême. La première fois que j’ai compris le concept de la programmation (alors que je ne savais pas programmer), j’ai réalisé que ça pouvait faire de moi un Dieu. Un Dieu d’un monde limité à un écran, mais un Dieu quand même.

Alors j’ai pris tous les outils de création de jeux qui me tombaient sous la main et j’ai fait tout et n’importe quoi avec. J’ai …

  • dessiné des décors de Saphir,
  • fait de l’Ascii Art sur un TO7-70,
  • modélisé un début de château avec 3D Construction Kit,
  • créé un cosmo-shoot et un casse-brique-Metroidvania avec Klik’n Play (les sauvegardes se corrompaient toutes seules, ce logiciel est une arnaque),
  • architecturé des niveaux de Doom (la compilation plantait avec le message « nodes will be inaccurate », DoomCad est une arnaque),
  • organisé des enchainements d’événements improbables dans Incredible Machine,
  • produit une suite complète de niveaux de Logical,
  • bidouillé des maps de Warcraft 2,
  • imaginé un gigantesque jeu dans le style Tiny Skweeks, avec des dizaines d’éléments,
  • level-designé un niveau de Jama-Jama (jeu qui a disparu de l’internet),
  • raconté un début d’aventure épique dans Drod,
  • conceptualisé un langage universel permettant de formaliser des règles de jeu de Match-3,
  • programmé des jeux en Pascal, en Delphi, en C++, en python, en PuzzleScript, en slip, en fer, en enfer,
  • j’en oublie.

Alors voilà. Squarity est l’aboutissement de tous ces trucs, en même temps que le démarrage d’un tas d’autres trucs. Venez, on va s’amuser !

Tout a commencé dans une piaule de cet acabit.

Un jeu Puzzlescript : recherche de diamant

Bloub !

Il y a quelques temps, j’avais créé un petit escape game pour des gens personnels. J’y avais mis diverses énigmes plus ou moins rigolotes et compliquées, dont un jeu PuzzleScript.

Shaïne braïght laïke daïmondze.

Petit rappel : pour commencer à jouer, il faut appuyer sur la touche « X ». C’est pas forcément évident quand on découvre « l’environnement PuzzleScript », qui est un peu rustique il faut bien le dire.

Vous êtes équipé d’un détecteur de diamant ayant un nombre limité de charges. Chaque fois que vous l’utilisez, vous obtenez (ou pas) un indice sur la position finale du diam’s. Je ne vous donne pas plus de détails que ça. À vous de comprendre comment interpréter ces indices !

C’est inspiré du mini-jeu MindSweeper, inclus dans le jeu flash débile intitulé « Anti-Idle: The Game ». Il y a quelques années, je m’étais quelque peu fait chronophager par ce agglomérat bizarre et trollesque. Mais depuis, tout va bien, je me soigne.

Il est fort possible que ce soit le dernier jeu PuzzleScript que je code. Non pas que je boycotte ce site ou que je n’ai plus envie de coder des jeux. Bien au contraire. Mais je suis en train de préparer une chouette surprise, qui a vocation à proposer mieux que PuzzleScript.

Je n’en parle pas plus pour l’instant, car je n’ai pas grand-chose de prêt. J’essaye de vous donner plus de détail très bientôt, si possible avant le prochain Ludum Dare, c’est à dire début octobre.

En attendant, qui dit diamant dit bijoux, qui dit bijoux dit jewels, qui dit jewels dit Bianca Jewelz.

Un jeu en PuzzleScript : Jesus Respawns

Un jour, j’ai eu une conversation avec un gamin (ouais, il m’arrive des trucs bizarres des fois). Il m’a dit : « je suis trop triste pour Jésus, parce qu’il est mort ».

J’aurais pu répondre que suivant sa logique, il aurait également dû être triste pour tous les autres humains officiellement considérés comme « gens bien » et qui sont morts depuis les derniers millénaires, mais j’ai décidé de faire simple. J’ai dit : « c’est pas grave, après il ressuscite. Il est un peu comme Mario Bros. Quand on perd la partie, on peut recommencer tout de suite après ».

D’oeuf-il-en-est-grille, je me suis retrouvé à créer un mini-jeu vidéo mettant en scène Jésus. On y retrouve une bonne partie de ses super-pouvoirs.

Le scénario tient en une seule phrase, mais qui vaut la peine, puisqu’elle comporte un jeu de mot : Jésus doit retrouver ses madeleines.

Ha ha ha ! Les madeleines-gâteaux et Madeleine la copine de Jésus. Jeux de mot ! Jeux de mot !

Vous pouvez y jouer ici (version française) .

Et ici (version anglaise) .

Le jeu de mot n’est pas présent dans le texte en anglais. Not my fault.

Ne vous attendez pas à des énigmes pointues et intéressantes. J’ai créé ce jeu pour proposer au gamin mentionné initialement une approche différente de la religion chrétienne. Parce que, honnêtement, le mec cloué sur sa croix en train de saigner, je trouve ça d’assez mauvais goût. Après on s’étonne que les enfants aient des pensées violentes dans la tête, et on dit : « c’est la faute aux jeux vidéos ». Eh bien non, pas forcément.

Un autre jeu avec Jésus dedans.

J’ai mis le code source sur mon github :  https://github.com/darkrecher/PuzzleSalad .

Vous y trouverez également un petit script en python, permettant de convertir des images en tiles PuzzleScript. Tout à l’arrache, pas documenté, débrouillez-vous ou foutez-vous en.

Jésus et ses potesses

Je vous ais déjà dit que j’aimais bien PuzzleScript ? Oui, je crois. Je vais essayer de m’investir plus dedans, à l’avenir.

Demake de Atomix fait avec PuzzleScript

Fans de mini-jeux de réflexion, bonjour.

atomix_water

Vous avez peut-être déjà découvert PuzzleScript (dans ce blog ou ailleurs). Voici ma première œuvre réalisée avec ce langage. Plus précisément, c’est la deuxième, mais la toute première était un cadeau pour une amie, et reste donc du domaine privé.

Concernant l’idée originale, je ne me suis pas foulé et j’ai repris le principe d’Atomix, un jeu où vous devez déplacer des atomes afin de reconstituer une molécule. La particularité, c’est que lorsqu’un atome est en mouvement, il continue jusqu’à être stoppé par un mur ou un autre atome. (Je suis sûr qu’en mécanique quantique, tout se passe exactement comme ça).

atomix-2

Concernant les niveaux du jeu, je ne me suis pas foulé non plus, et j’ai pompé ceux d’un certain draknek (http:// blog.draknek.org/post/93360531842/if-i-wanted-to-clone-atomix-this-is-where-id).

Ils sont intéressants et épurés de toute casse-couillerie inutile. Merci à lui.

Hyponitrous acid (mais vous le saviez sûrement déjà).

Hyponitrous acid (mais vous le saviez sûrement déjà).

Là où j’ai été obligé de me fouler, c’est pour implémenter le fonctionnement d’Atomix dans PuzzleScript. Le langage est assez souple et bien fichu, mais ne permet pas vraiment de décrire des comportements « globaux » prenant en considération une zone étendue de l’aire de jeu. J’ai donc eu recours à quelques bidouilles hasardeuses pour le processus vérifiant l’égalité entre la molécule-modèle et la disposition des atomes.

D’autres part, il n’y a pas de notion de variables. Pour tester « est-ce que l’atome dans le modèle est égal à l’atome dans l’aire de jeu ? », je n’ai pas trouvé de meilleure solution que de tout décrire verbeusement : « est-ce que l’atome du modèle est un hydrogène et celui de l’aire de jeu un hydrogène ? ou bien est-ce que l’atome du modèle est un carbone et celui de l’aire de jeu un carbone ? etc. ».

Il y a une petite documentation au début du script indiquant les contraintes à respecter pour créer les niveaux, ainsi que quelques commentaires ici et là. Ça mériterait d’être documenté plus en détail, ou pas.

puzlescript_code

Le sus-mentionné draknek a employé kp-atomix (https:// github.com/figlief/kp-atomix) pour publier les niveaux qu’il a créés, ce qui est une aubaine, car ils y sont décrits via un fichier json au format assez facile à comprendre.

Et quitte à me fouler pour coder, je me suis fendu d’un petit programme (en python, évidemment) convertissant les niveaux json de kp-atomix en niveaux de PuzzleScript. Ça aurait certainement pris moins de temps de les convertir à la main, mais ça aurait été tellement moins rigolo.

Ce programme a été honorablement documenté, car il est possible que certains de ses morceaux me resservent par la suite. Tout cela est évidemment dans un repository github, comme le veulent les conventions asociales à la mode en ce moment.

J’aime beaucoup PuzzleScript. Ça regroupe un grand nombre d’idées de mes rêves : des jeux de réflexion à foison, un moyen inhabituel de raconter des histoires, la création d’un langage dédié relativement souple et générique. Je vais voir si je peux faire quelque chose avec tout ça.

Comme vous le savez, les atomes sont liés ensemble par des liaisons de covalence. Voici donc une image de liaison, presque tout aussi idiosyncratique (même si je sais pas ce que ça veut dire).

double_dildo

Puzzlescript et des audits de jeux

Plotrochk à vous, chers gens et gensses.

Ce mois-ci, petit article court. Mon cerveau doit se remettre des 3 énormes articles que j’ai récemment perpétré, concernant mon changeage de crémerie.

Puzzlescript

En partant du blog de randomnine (http: //wootfu.com/) et en passant par divers endroits que j’ai oublié, je suis tombé là-dessus (http: //www.puzzlescript.net/)

C’est absolument génial. C’est un langage de script relativement simple et bien foutu, permettant de créer des jeux à énigmes en 2D carroyée.

Je suis fortement fan de ce genre de jeux : Atomix, Adventures of Lolo, Tiny Skweeks, Pushover, Drod, … Haaaaaa ! Drod ! Tiens ça me rappelle cet article dans lequel je décrivais les principes régissant ces jeux : https://recher.wordpress.com/2009/03/12/regles-a-respecter-pour-les-jeux-a-enigmes/

Je vous laisse fouiner sur internet, il y a plein d’œuvres sympas réalisées avec PuzzleScript, ainsi que des tentatives de recréer des jeux existants, appelées « demakes ». C’est comme un remake, mais au lieu de refaire un jeu, on le défait dans le sens où on décortique son fonctionnement pour ensuite le reformuler en un script de PuzzleScript.

Il existe des demakes de Démineur, de Match-3, de Drod (assez éloigné de la version initiale), de Portal, etc. Je vous laisse les trouver par vous-même.

Le langage de script comporte quelques manques : pas de « variables » ni de gestion des diagonales par exemple. Mais il est plutôt souple et permet déjà plein de choses. Le site officiel est doté d’une documentation assez complète : tutoriels, référence du langage, exemples, etc. Ceux qui veulent le découvrir commenceront par un inévitable Soko-ban.

C’est tout en HTML5. Du coup : Windows, Mac, Linux, Smartphones, MonCulSurLaCommode, ça marche (à peu près) pareil partout.

Le seul souci, c’est que c’est très moche. Tous les éléments du jeu et toutes les cases sont des images de 5 * 5 pixels maximum. Rustique.

J’ai déjà fait un jeu pour une amie (un cadeau personnel que je ne mettrais donc pas ici). Si je suis motivé, j’essaye de demaker Atomix, et peut-être même 4 Elements.

Et maintenant parlons d’autre chose.

Audit de jeux vidéo amateur

Alors voilà. Vous avez créé un petit jeu dans votre coin, et vous avez envie de savoir s’il est cool/intéressant/bankable. Pour cela, vous pouvez faire appel à mes services : j’analyse votre jeu et vous rédige un rapport d’audit décrivant les axes d’améliorations, les points problématiques, la bankabilité, etc.

Nan j’déconne. J’emploie le mot « audit » juste pour faire classe. En vrai je le testerai pendant deux heures grand maximum et je vous dirai à l’arrache ce que j’en pense. Mais ce simple petit service peut déjà vous intéresser.

J’ai peu de légitimité en tant qu’auditeur de jeux. J’en ai créé à peine un et demi et des poussières. J’ai pas de console, pas de smartphone, pas de tablette, pas de compte Steam, pas de jeux AAA et je dois m’y reprendre à 3 fois avant de parvenir à sortir une boule de feu dans Street Fighter (le 2, les suivants je les ais jamais testés).

À défaut de boule de feu...

À défaut de boule de feu…

Mais en tant qu’auditeur amateur, j’ai toute la légitimité pour analyser vos jeux vidéo amateur. Les amateurs ne devraient pas éprouver de honte à se faire aider par d’autres amateurs.

C’est bien évidemment gratuit. La seule condition à respecter est que le résultat de mon analyse soit publié d’une manière ou d’une autre sur internet, avec un lien vers ce blog. Un commentaire ou un message de forum peut tout à fait convenir.

Voici quelques exemples d’audit déjà réalisés (auprès de personnes qui ne me l’ont pas spécialement demandé, mais on va pas s’arrêter sur ces détails) :

J’ai également rédigé quelques tests de jeux (Kingdom Rush, Lugaru, …), que vous arriverez à retrouver, si vous êtes courageux et désœuvré, dans ce blog ou dans les magazines 42. Mais ces tests ne contenaient pas de recommandations personnelles, puisque je ne m’attends pas à ce que les auteurs de ces jeux non-amateurs perdent leur temps à lire mes blablas.

Pour demander un audit, il vous suffit de claquer un commentaire à cet article.

official_audit_seal