Ludum Dare 48 post-codem : Léon le python

Le nom complet de cette compétition de création de jeux vidéo est « Ludum Dare 48 », car elle se déroule durant 48 heures. Il y a donc eu le « Ludum Dare 48 numéro 1 », le numéro 2, etc.

Nous sommes arrivés au « Ludum Dare 48 numéro 48 ». Quelque chose de spécial avait été promis pour l’occasion, mais rien de précis n’avait été annoncé. Le jour J du week-end W, je n’ai rien vu de particulier. On s’en fout.

Ça date de plusieurs mois, certaines impressions et sentiments que j’ai eu sur le moment se sont évaporés. Je vais faire au mieux pour vous raconter tout ça.

Le thème était « Deeper and Deeper ». J’ai créé, en utilisant Squarity, un mélange de Snake et de Match-3, intelligemment intitulé « Snake Match ».

Comment ça s’est passé pour moi ?

Beaucoup mieux qu’au numéro 47. Dans les premières versions de Squarity, les messages d’erreurs python ne s’affichaient nul part. Une faute de syntaxe ? Une variable mal nommée ? Fallait se démerder tout seul. J’avais galéré comme un galérien et je flippais à chaque ajout d’une nouvelle ligne de code. Je suis beaucoup plus serein maintenant.

Très heureux d’avoir réussi à ne pas passer l’intégralité de mon week-end à créer le jeu. J’ai pris le temps de dormir à peu près comme il faut, de m’occuper un peu de mes enfants, de faire des trucs dans la maison, etc. Et surtout, j’ai fait tester le jeu auxdits enfants au fur et à mesure de son développement. C’est le plus important pour moi. Il faut montrer, donner et expliquer les étapes intermédiaires de création d’une œuvre (jeu vidéo ou autre). Ça incite et encourage d’autres personnes à créer leurs œuvres à elles.

Les sprites ont été dessinés à l’arrache et sont moches. J’avais prévu de les refaire en plus joli, s’il me restait du temps vers la fin. Ça n’a pas été le cas, comme la fois précédente. Pas de déception particulière sur ce point, donc.

J’ai streamé l’intégralité du développement sur Twitch. La plupart du temps sans caméra ni micro, pour ne pas déranger les gens qui habitent avec moi (j’ai pas vraiment de bureau, on vit ensemble dans une seule grande pièce, en mode « pécores du 12ème siècle »). Le samedi et le dimanche soir, après avoir couché tout le monde dans leurs lits respectifs, j’ai pu caméra-microtiser.

Un énorme merci aux ordispectateurtrices qui m’ont suivi pendant les streams et qui commentaient. J’ai vraiment besoin de ces petites attentions pour flatter mon ego et avoir le courage de continuer Squarity. Sinon j’aurais abandonné depuis longtemps. Encore merci. Et tant qu’on y est, merci à toutes les personnes qui ont joué à mon jeu et donné un avis sur le site du Ludum Dare. Merci en particulier à une copine qui l’a testé sur son smartphone et qui a lâché des comms sur mon Linkedin. Elle se reconnaitra si elle lit ceci.

Un serpent fait un câlin à des pommes

Quel résultat ça a donné ?

Vous avez certainement remarqué que l’expression « on va pas se mentir » est à la mode.

Eh bien on va pas se mentir, ce jeu n’est pas très fun.

Le serpent peut manger des fruits, ce qui permet de changer leur disposition, pour créer des alignements de 3 fruits identiques et les faire disparaître comme dans un match-3 classique.

Le serpent doit aller le plus profond possible, mais il a une longueur et une capacité stomacale limitée. Vous devez gagner des XP et monter de niveau pour augmenter ces deux limites.

On gagne beaucoup plus d’XP en matchant des fruits qu’en les mangeant. De plus, les matchs ne remplissent pas l’estomac. Je pensais que ces règles déclencherait un comportement : la personne qui joue essayerait de faire des matchs, même si ce n’est pas nécessaire pour avancer dans le niveau, car elle chercherait à gagner des XP.

De plus, comme dans tout bon match-3 qui se respecte, il y a des blocs de pierre, qui ne peuvent être détruit que par un match adjacent.

Eh bien ça marche pas. J’ai pas assez réfléchi à mes mécaniques de jeu.

Je m’en suis aperçu lors de mes tests finaux, alors qu’il ne restait plus que 2 heures. La manière la plus optimisée de jouer est d’aller tout droit, le plus profondément, comme un gros débile. De toutes façons, il y a des matchs qui se font automatiquement car les fruits sont placés totalement au hasard. Au bout d’un moment vous ne pouvez plus avancer à cause de la longueur limitée du serpent. Mais vous avez forcément gagné de l’XP. Vous redémarrez du début, en re-allant tout droit comme un gros débile. Et ainsi de suite.

Constatant cette catastrophe, j’ai ajouté à la va-vite des lignes complètes de blocs de pierre, à des profondeurs prédéfinies. La personne qui joue est donc obligé de matcher des fruits pour détruire des blocs et se créer un passage. Ça ajoute un peu d’intérêt au jeu, mais ça ajoute aussi du potentiel de rageage.

Ligne de blocs de pierre pour sauver l’intérêt du jeu

Souvent, les fruits présents dans l’aire de jeu ne permettent pas les matchs nécessaires à la destruction des blocs. Il n’y a pas d’autres choix que de redémarrer du début. Ces échecs sont uniquement dû à un manque de chance. Vous n’avez aucun moyen d’augmenter la probabilité des matchs. C’est du « pas-de-bol and retry ». C’est chiant. Moi-même je trouvais ça chiant en le testant. À 2 heures de rendre sa copie, c’était trop tard pour retravailler les mécaniques du jeu. J’ai pris un peu de temps pour doser la quantité et la disposition des lignes de blocs de pierre, et j’ai tout envoyé à la zob’.

Voici mon classement, sur un total de 1145 participations dans la catégorie « Compo » :

  • Overall: 723ème (3.042)
  • Fun: 743ème (2.792)
  • Innovation: 440ème (3.229)
  • Theme: 533ème (3.438)
  • Graphics: 824ème (2.5)
  • Humor: 516ème (2.25)
  • Mood: 819ème (2.15)

Par rapport au Ludum Dare précédent, il y a du mieux et du moins bien. Mon Overall a descendu. Mais je suis dans la moitié haute pour le thème et l’humour, ce que je n’avais pas réussi avant.

Un peu déçu par mon classement en Innovation, même si il sort du lot. La dernière fois, je m’étais facilement placé dans le premier quart, alors que là j’arrive péniblement après le premier tiers.

Je m’attendais quand même à un peu mieux, car je me suis senti beaucoup moins à l’arrache et en galère durant tout l’événement. Pas grave, l’important c’est de s’être amusé à créer un jeu !

Après le requin-marteau, le serpent-banane

Qu’est-ce qu’on va faire après ?

Concernant Squarity

Le but de ces participations aux Ludum Dares est de tester « en conditions réelles » la création de jeux avec Squarity, pour déterminer les améliorations du moteur et du site web qui seraient les plus urgentes. Le but est aussi de faire connaître Squarity, mais vous le saviez.

Ce qui m’a un peu manqué, ça a été la possibilité d’écrire du texte dans l’aire de jeu. J’aurais aimé pouvoir afficher un petit cadre d’infos, indiquant la longueur actuelle du serpent, combien de fruits il peut encore manger, ses XP et son niveau. J’étais parti pour une solution de secours : mettre des bar-graphs sur un côté de l’aire de jeu. Pas eu le temps. Les fonctions de texte, si elles avaient existées, m’auraient permis d’implémenter ça beaucoup plus rapidement. Et les infos affichées auraient rendue plus claires les mécaniques du jeu.

Autre manque, qui s’est fait sentir bien plus cruellement : des petites classes et fonctions python à importer, pour aider au développement du jeu.

  • Une classe contenant un quadrillage de trucs (lesdits trucs pouvant être n’importe quoi : string, liste, classe custom).
  • Une autre classe stockant les trucs sous forme d’une matrice creuse, c’est à dire une liste de tuple (coord_x, coord_y, un_truc).
  • Des fonctions pour passer d’une classe à l’autre, pour fusionner deux quadrillages, pour extraire un sous-quadrillage, etc. On pourrait s’inspirer de numpy.
  • Indexation des quadrillages par adjacence, par ligne et par colonne.
  • Des fonctions pour gérer les mécaniques de jeu qui reviennent souvent : distance de manhattan, gravité, détection de lignes/colonnes de Match-3, pathfinding, propagation d’un truc sur des cases adjacentes, dijkstra, …
  • Sans oublier des tutoriels et des mini-exemples pour illustrer ces classes et ces fonctions.

Tout ceci est dans la roadmap. Ha ha ha.

Version actuelle du moteur de jeu Squarity

Concernant Snake Match

J’essayerais de reprendre ce jeu et de corriger ses mécaniques pourries. Cependant, j’avais annoncé la même chose pour Loops in Pools et Soko-punk, et rien n’a avancé. Alors je préfère ne rien promettre.

En vrac, des idées de pouvoirs spéciaux :

  • Le serpent tire la langue, attrape le premier fruit devant lui, et le rapproche d’une case. Ça peut permettre de décaler des fruits horizontalement, pour les matcher.
  • Le serpent vomit devant lui le dernier fruit qu’il a mangé.
  • Des fruits randoms tombent du haut de l’écran.
  • Vision de loin : l’aire de jeu scrolle vers le haut non pas quand le serpent est tout en bas, mais un peu plus haut.
  • Pousser des blocs de pierre.
  • Le serpent entoure un bloc de pierre pour le détruire. (Comme un super-boa constrictor).

En vrac, des idées de quête et de mode de jeu (chacune pourrait débloquer un pouvoir spécifique) :

  • Manger une séquence de fruit définie, plus ou moins longue.
  • Manger une certaine quantité d’un fruit spécifique, en une seule partie.
  • Détruire une certaine quantité de blocs de pierre, en une seule partie.
  • Matcher en une seule fois une certaine quantité de fruits.
  • Matcher, avec des réactions en chaîne, une certaine quantité de fruits, ou une séquence de fruits.
  • Détruire entièrement une disposition prédéfinie de fruits et de blocs de pierre (avec ou sans certains pouvoirs spéciaux, sinon il y aura des solutions non prévues).

Idées d’achievement, si jamais on fait des achievements :

  • Terminer un niveau avec à la fois l’estomac plein et la longueur max du serpent atteinte.
  • Terminer avec la longueur max atteinte, et un estomac très très vide (on a avancé en faisant pratiquement que des matchs)

Peut-être aussi que les montées de niveau devraient se faire uniquement par rapport au score max de toutes les parties. Et donc ça ne s’appellerait plus des XP mais du score. La personne qui joue pourrait donc faire une partie pour monter son score max, puis une autre pour réussir une quête, etc. Ça donne un peu de replay value.

Certaines quêtes seraient associées à un mode de jeu spécifique et à son score max. Le niveau dépendrait de la somme des scores max de tous les modes de jeu. Moui, une idée intéressante.

Je laisse ces idées en vrac pour l’instant. On verra plus tard si j’ai le temps et le courage d’en faire quelque chose. La priorité actuelle, c’est de finir le jeu « Game of No-Life », puis de réattaquer quelques petites améliorations du moteur du jeu (il en a besoin) et aussi de formaliser pour de vrai la roadmap. Paf !

Les serpents aiment les femmes un peu rondes.

Elle, c’est Alexandra Shcherbakova.

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 :

Raffarin Pète-Gonade Memorial Day #13

Aujourd’hui c’est la traditionnelle célébration du Raffarin Pète-Gonade Memorial Day. Si vous ne savez pas ce que c’est, lisez mes articles précédents de cette même catégorie. Comme dit dans des articles précédents de pas-cette-catégorie, je suis à l’arrache sur un peu tout.

Cette alarrachitude risque de se propager de manière alarmante dans l’ensemble de « l’emploi du temps de mon temps libre ». Ça ne veut rien dire puisque par définition le temps libre est libre et ne devrait donc pas être destiné à un emploi quelconque, mais on n’est plus à ça près. Je propose donc de torcher très vite cet article par la technique de l’écriture spontanée : une scriptorrhée (diarrhée écrite) frénétique, néphrétique, éperdue et désespérée.

Scriptorrhée

Cette année à nouveau, le RPGMD ne nous a pas été offert par Chef Tabarnak. Les quelques fois où on me le gratifia généreusement auront donc été une joyeuse exception dans ma vie professionelle de le Travail. Qu’est-ce que je croyais en même temps ? Ha ha ha.

Ce blog est toujours vivant, mais je sens dans mon cerveau une auto-censure. Certaines conneries que j’écrivais avant sur mes collègues et sur mes tentations de commettre le péché de glandouille, je n’ose plus trop les écrire maintenant. La frontière avec le Monde du Tra-tra est devenue poreuse. J’ai parlé de Squarity à de nombreux collègues, et je parle abondament de Squarity ici. Des liens peuvent être fait. Squarity… C’est mon « projet infini », j’en suis maintenant persuadé. Je détaillerais ce concept de « projet infini » une autre fois. Si mes collègues découvrent tout ce bordel, ma réponse officielle sera que j’ai inventé un personnage fictif nommé « Réchèr », qui travaille dans une entreprise fictive, et à qui il arrive de nombreuses aventures. Je suis en train de dire, en tant que personnage fictif nommé « Réchèr », que j’ai inventé un personnage fictif nommé « Réchèr ». Réchèr-ception ! Je vous promets de faire tout mon possible pour conserver la qualité d’écriture chaotique de ce blog, malgré cet auto-muselage que je sens progressivement creeper dans mon cerveau.

La semaine dernière, j’ai dit à cesdits collègues que Raffarin était un connard. Collègue WouWoush a répondu : « enfin voyons, mais non, il nous a bouffé un jour férié mais c’est pas forcément pour ça que c’est un connard, ça mériterait d’être étudié ». Bizarre… Collègue WouWoush s’appelle ainsi car il a une coiffure qui lui permet de faire « WouWoush » avec ses cheveux, ce qui serait significatif d’un mec qui se la pète. Attention, lecteurtrice ! Je précise bien que ce n’est pas mon avis personnel ! Je vous explique. J’étais dans la rue en compagnie de quelqu’un d’autre, que nous appellerons sobrement « PouêttPouêtt ». Un peu plus loin sur l’autre trottoir se trouvait Collègue WouWoush. Or, voilà-t-il pas que PouêttPouêtt me souffle discrètement : « regarde ce tocard avec sa coiffure pourrie wouwoushisable, il se la pète vraiment ». Ce à quoi j’ai répondu : « Mais enfin PouêttPouêtt, cessez cette impertinence ! Cette personne est un collègue de le Travail ». J’ai salué Collègue WouWoush de la main et nous avons continué de cheminer. Tout ça pour dire que c’est pas moi qui trouve que Collègue WouWoush se la pète avec sa coiffure. Moi je trouve qu’il se la pète, mais pour tout un tas d’autres raisons qui ne sont pas liées à sa coiffure. Et je peux même pas les raconter ici car ça l’identifierait trop précisément. Saleté d’auto-muselage. Stupide personnage fictif que je me suis inventé et qui est trop pétochard pour déblatérer ce qu’il souhaiterait déblatérer sur ses collègues fictifs.

Pas de NorthSec cette année, trop à l’arrache. Désolé.

Comme vous l’avez vu récemment, j’ai fini le Ludum Dare et j’ai eu mon classement. Et j’ai aussi fini la création du challenge pour la THCON. Il est actuellement en cours de validation dans l’équipe organisatrice, et j’espère qu’il plaira. J’y ai mis du cœur et je me suis senti un peu bizarre durant sa réalisation. Comme promis, il y aura un post-codem du Ludum Dare, et peut-être en même temps un mini post-créationem-du-challenge de la THCON. J’ai envie de vous raconter pourquoi je me suis senti bizarre. Je vous tiendrai au courant, mais pour l’instant, il faut que ça reste secret. Je sais pas si je pourrais participer à la THCON, j’aimerais bien. J’ai demandé comment ça pourrait se passer. Peut-être que je pourrais me joindre en tant que « candidat libre et non classé ».

Je ne raconte plus trop d’aventures de mes événements-soirées corporates du Monde de le Travail. Parce qu’il n’y en a plus beaucoup. Ça va peut-être revenir. J’essayerais aussi de vous faire un medley d’anciens mini-événements que je n’ai pas pris le temps de raconter. Des lambeaux de souvenirs qui restent encore accrochés à ma mémoire.

Je suis en télétravail complet, comme plein d’autres gens. Depuis le premier confinement. Avec un tout petit retour sur site entre deux confinements. Est-ce que ça me convient ? J’aime bien le télétravail pour une raison assez stupide : mon PC perso est super lent et tout pourri. À chaque fois que j’achète un PC, c’est la merde. J’ai essayé plein de technique : acheter à des collègues, à des monteurs spécialisés, à un supermarché qui vend du standard, … Ça finit toujours mal. Le biniou devient super-lent et super-pourri. J’ai pas l’impression de faire des trucs ésotériques ni d’installer des logiciels diaboliques. Et donc, avec cette histoire de télétravail, j’ai mon PC du boulot à la maison. C’est pas moi qui l’ai acheté, ni qui l’ai choisi. Et c’est tant mieux, car du coup il n’est pas maudit et fonctionne très bien. Rien que pour ça le télétravail est un avantage pour moi. Les choses que je faisais avant avec mon PC perso pourri, je les fais maintenant avec mon PC du boulot. Il reste fonctionnel, rapide et peu bruyant. Ça fait plus d’un an que c’est comme ça. C’est bien la preuve que les pourrissages de mes PC ne proviennent pas de ma façon de m’en servir, mais de la malédiction sus-mentionnée.

Be cuuuursed !

Il y a également des absences d’avantages à ce télétravail : je ne fais pas d’économie de transport, car le transport ne me coûtait rien (vélo et bus gratoche). Et il y a malheureusement des désavantages. Mes dépenses ont augmentés : en chauffage, en papiers toilettes et en mouchoirs. Avant je piquais les serviettes en papier des essuis-mains dans les chiottes du boulot et je m’en servais comme mouchoir. Je lis moins de livres, puisque le seul moment où je lisais était dans le bus. J’ai acheté « Rise of the videogame Zinesters » de Anna Anthropy et je l’ai à peine commencé. Foutu virus.

Bien évidemment, les contacts humains me manquent. Pour moi, ce manque s’exprime d’une manière étrange. Je remets en scène dans ma tête les moments où j’ai eu l’occasion de faire le kakou et le roi du pétrole devant mes collègues. Certains de ces moments sont réels et ont vraiment eu lieu, d’autres sont totalement fictifs. Je suis un personnage fictif qui s’est imaginé des moments fictifs avec ses collègues et qui les revit fictivement pour tenir le coup. Ficti-ception.

Le monde entier s’accorde à dire que globalement « il n’y a plus de pognon nul part ». Les États n’ont plus d’argent et ne parviennent plus à maintenir les services publics. Les gens n’ont plus d’argent et ne parviennent plus à acheter les biens de base. Les petites entreprises n’ont plus d’argent et ne parviennent plus à embaucher. Les fournisseurs arnaquent leurs clients en leur vendant des trucs pourris. Les clients pressurisent leurs fournisseurs en retardant les paiement car les produits livrés ne conviennent pas. Les grosses entreprises sont organisées en petits départements distincts, dont chacun est considéré comme une petite entrepris qui n’a pas plus d’argent qu’une vraie petite entreprise. Où est passé tout le pognon ? Les footballeurs ? Dubaï ? Les GAFAM ? Les stars de la télé-réalité ? Las Vegas ? Les cartels de la drogue ?

Voilà une personne qui ne se la pète pas à wouwousher ses cheveux

Ce sera tout. Je vomis l’antenne. (Ça veut dire « je rends l’antenne »).

Ludum Dare 48 : Snake Match

Comme promis, voici ma participation au Ludum Dare 48.

C’est par ici pour y jouer directement.

Et par ici pour la fiche du Ludum Dare.

Vous êtes Léon le python, vous mangez les fruits et vous les alignez pour réaliser des Match-3. Parviendrez-vous à aller suffisamment profond pour retrouver votre créateur, le « Guide on Van-Random ? »

Le nom du créateur est bien évidemment un jeu de mot bancal avec « Guido Van Rossum », le vrai créateur du langage python. Littérallement, ça veut dire : « le guide sur un van (une voiture) aléatoire ». Si vous parvenez jusqu’à lui, vous verrez qu’il y ressemble effectivement.

Quelques conseils de jeu :

  • Si vous êtes bloqués (serpent trop court, blocs qui barrent le passage, …), remontez votre serpent jusqu’en haut pour repartir du début. Vous conservez vos points d’expérience.
  • Au début c’est important de gagner des XP pour monter de niveau, car votre serpent ne peut pas aller très loin. Après on s’en fiche, vous pouvez bourriner la flèche du bas pour aller le plus profondément possible. C’est mal équilibré, je sais.

Si vous n’arrivez pas à atteindre le Guide on Van-Random, vous pouvez tricher. Dans le code du jeu, (zone de texte à gauche), vers le début, se trouve la ligne suivante :

DEEP_WON = 248

Mettez un nombre plus petit (par exemple : 20), puis cliquez sur le bouton « Exécutez » au milieu de l’écran. Vous devriez parvenir à atteindre votre créateur.

J’ai twitché l’intégralité du développement du jeu. Si ça vous intéresse, regardez-le assez vite. Dans une semaine, ça va disparaître dans les limbes de twitch. Y’en a pour 14h de vidéos quand même.

Pas plus de choses à dire que ça pour l’instant. Y’aura un article post-codem, mais peut-être moins long que celui du LD47.

Et maintenant, go création du challenge pour la THCON. À plus tard tout le monde.

Pour l’image de femme ronde, j’ai hésité entre faire une référence au thème de ce Ludum Dare : « Deeper and deeper », ou faire une référence aux fruits de Snake Match.

C’est plus difficile de trouver des images de femme ronde avec des fruits qu’avec du « Deeper and deeper ». Vous constaterez donc que je passe du temps, parfois plus que nécessaire, pour rester dans la décence et la sobriété.

Rien de conséquent pour ce mois

Lecteurtrices, on va pas se mentir, je suis à l’arrache.

Je suis toujours sur mon gros projet http://squarity.fr . Je vais bientôt ajouter la possibilité de définir la taille de l’aire de jeu. Pour célébrer ça, je crée actuellement un petit jeu de démonstration sur un terrain honorablement grand.

Il s’agit d’un pseudo-jeu de stratégie en temps réel, où deux joueurtrices s’opposent. Il n’y a besoin que de deux boutons par personne. Ça s’appellera « Game of No-Life », en hommage au Game of Life de John Conway. Tout ce que je peux vous montrer pour le moment, c’est un screenshot.

Outre ce jeu, ma liste de tâches créatives comporte un certains nombres d’éléments aux deadlines proches et strictes :

  • Participer au Ludum Dare, du 23 au 26 avril. C’est un très bon moyen de faire connaître Squarity et d’éprouver son utilisabilité.
  • Créer un challenge pour la Toulouse Hacking Convention. Je profite d’avoir une connaissance dans l’équipe organisatrice pour proposer une contribution. La THCON a lieu au mois de juin, mais je dois m’y prendre suffisamment à l’avance pour réaliser le challenge.
  • Imaginer un espèce de jeu à énigme genre Escape Room, pour des connaissances personnelles, à l’occasion d’un événement spécifique (intrinsèquement deadliné).

Donc pas d’article conséquent ce mois-ci, à part ce présent article pour dire que j’ai pas le temps de faire un article.

En contrepartie, vous avez la promesse d’une multitude de goodies à venir :

  • Un jeu de stratégie, qui sera fini je-sais-pas-quand.
  • Le jeu que j’aurais créé pour le Ludum Dare.
  • Un éventuel article post-codem du Ludum Dare.
  • Un challenge de hacking. La THCON accepte qu’on publie nos contributions une fois que l’événement est passé.
  • Sans oublier le commentaire de NarK dans mon article précédent (encore merci à toi ! ), qui déclenchera un article supplémentaire concernant mon ancien projet avec les tinies.

Hey, j’me fous pas de vous, quand même.

Sur ce, voici la traditionnelle image de femme ronde. J’ai cherché quelque chose avec du rouge et du bleu, pour rappeler les petites unités-pixels du screenshot du Game of No-Life. J’ai trouvé ceci :

Notez les petites zones rouge et bleue, ce qui crée une image 3D à regarder avec les lunettes magiques idoines.

Il s’agit du top model Karola, que vous pouvez voir sur le site « Silicone Free ». Voici les images d’origine en 2D. Elle porte un mailot de bain violet, ce qui est tout à fait approprié, puisque le violet c’est du rouge et du bleu. Ha ha !

Justement, au sujet de Karola, (et de la ville de Reims)

Il y a quelques années de ça, j’avais orné un de mes articles par une image de cette belle dame.

Un type était venu me demander, dans les commentaires, si j’avais le droit de publier des photos d’elle. Je lui avais répondu courtoisement, mais il s’était assez vite énervé et je l’avais bloqué. Comme il n’était pas très malin, il avait indiqué une adresse mail non-bidon dans le champ du commentaire. Par de simples recherches, cette adresse m’avait permis de trouver son vrai nom, sa ville de résidence et quelques autres infos. Certaines laissaient à penser qu’il ne connaissait pas personnellement Karola, malgré ce qu’il prétendait. J’avais gardé les infos glanées, « au cas où ».

2 ans plus tard, suite à une publication d’une autre photo de Karola, il revenait à la charge. Nous nous sommes mutuellement insultés de manière tout à fait cordiale et conventionnelle. J’avais révélé son vrai nom dans un de mes commentaires, puis je me suis ravisé, car c’était trop méchant, voire illégal. J’ai laissé les insultes. Nous en sommes restés là.

Cette histoire toute moisie m’est revenue à l’esprit, et j’appréhendais (sans toutefois vraiment craindre) que l’image de cet article déclenche à nouveau un de ses caprices. Par curiosité et voyeurisme, je me suis dit que ce serait l’occasion de chercher à nouveau des infos sur lui. Peut-être qu’il avait dumpé quelques inepties de plus, ça et là sur internet.

Je retrouvais sa page Facebook, son profil Linkedin et d’autres petites crottes. Et là, en cinquième position des résultats de recherche : un avis de décès publié en ligne. Le type a crevé, il y a environ 3 ans.

Ça me fait un peu bizarre.

J’ai enlevé les blocages le concernant. Vous pouvez maintenant écrire des commentaires comportant les mots « karola » ou « karodiva », ainsi que des commentaires émanant de son adresse IP, bien que vous n’ayez pas besoin de ça.

Je ressens le besoin de lui rendre un tout petit dernier hommage, même si je ne le connaissais que très peu. Voici donc une dédicace posthume faite avec Paint, sur une carte postale de la ville de Reims. La ville où il est enterré, où il a vécu, et peut-être aussi où il est né.

Les fautes d’orthographe sont aussi un hommage.

Cet événement nous rappelle qu’il faut régulièrement remercier les femmes et les hommes en tout genre qui mettent des photos de leurs corps sur internet. Il nous rappelle aussi que l’internet tel que nous le connaissons actuellement, et qui permet (encore) de faire circuler ce genre d’images est quelque chose de précieux que nous devons préserver.

Encore merci, Karola, j’espère que vous allez bien.

Des scans d’un vieux projet

Cliquez sur les images pour les afficher en grand (sauf la dernière, ha ha ha).

Cet article ne concerne pas Squarity, mais il pourrait.

Il s’agit d’un super projet de jeu vidéo que j’avais imaginé il y a une quinzaine d’années. Il est fortement inspiré de la série de jeux « Skweek », en particulier Tiny Skweeks et Fury of the Furries.

Tiny Skweeks est un jeu de réflexion construit sur la même idée qu’Atomix. Vous déplacez des éléments qui ne peuvent s’arrêter tant qu’ils n’ont pas rencontré un mur ou un autre objet.

J’avais bien aimé, même si les niveaux d’introduction sont trop nombreux, et que certains objets sont un peu déroutants (une dynamite sélective qui n’explose que lorsqu’un tiny de la même couleur passe dessus, wtf ?).

Fury of the Furries est un jeu de plate-forme très mignon, mais que j’avais trouvé super chiant car les tinies que l’on dirige ont l’inertie d’une baleine dans un lac de miel. Le jeu est cependant doté d’une idée intéressante : Les tinies ont 4 couleurs différentes, avec un pouvoir spécial pour chacun.

Je me suis dit : pourquoi ne pas faire une suite au jeu de réflexion, en reprenant l’idée des pouvoirs différents ?

Les tinies, concept art

Avec :

  • Le tiny jaune. Il peut faire du feu sur une case adjacente, pour détruire certains types de murs et faire fondre les blocs de glace.
  • Le tiny vert. Il peut lancer un grappin pour attirer un bloc de glace vers lui. Son grappin lui permet aussi de passer par dessus les trous.
  • Le tiny rouge. Il peut détruire certains types de bloc de pierre en tapant dedans.
  • Le tiny bleu. Il boit de l’eau, ce qui lui permet ensuite de créer un bloc de glace.

Le principe initial reste le même : les tinies se déplacent mais ne peuvent être arrêtés en chemin.

Les blocs de glace sont des éléments de jeu importants : les tinies peuvent shooter dedans. Ça les déplace dans une direction, jusqu’à rencontrer un mur où un objet. Si un bloc de glace cogne un autre bloc de glace, le mouvement se transmet.

Élaboration de niveaux

Le level design de jeux de réflexion n’est pas un travail simple. Lorsqu’on veut créer une énigme un peu difficile, il faut prendre garde à ne pas se réfugier dans des techniques pourries : inventer des éléments au comportement trop complexe ou imprévisible, enchevêtrer une grosse quantité d’éléments simples obligeant la personne qui joue à tester 65 536 combinaisons, cacher des éléments sans aucun indice, …

Je suis parvenu à créer une demi-dizaine de niveau que je juge « difficile sans être pourris ». Je n’ai pas pris le temps de créer des niveaux faciles. Si j’avais concrétisé ce super-projet, j’en aurais bien évidemment placé au début du jeu en introduction, pour faire progressivement découvrir les éléments du jeu.

Niveau 1

Le brouillon :

Le niveau au propre (si on peut appeler ça du propre).

Remarquez le tiny vert à gauche, et le jaune un peu plus haut à droite.

J’ai expliqué le fonctionnement des différents éléments du niveau. Pour faire plus classe, c’est en anglais (me demandez pas pourquoi). Vous n’arriverez peut-être pas à me relire, alors je ferais éventuellement l’effort de transcrire ces descriptions en vrai texte. Ça dépendra de vous (voir plus loin).

Niveaux 2a et 2b

Les niveaux sont rangés dans leur ordre de création, et non par difficulté. En fait, le premier me semble être celui le plus difficile.

Pour ces deux niveaux, je me suis donné pour objectif de me concentrer sur un pouvoir d’un seul tiny.

Le niveau 2a fait beaucoup intervenir le grappin du tiny vert, tout en restant très simple, avec très peu d’éléments interactifs.

Le niveau 2b remplit moins bien l’objectif. Il fait beaucoup intervenir la flamme du tiny jaune, mais aussi le grappin du tiny vert. Il comporte des éléments complexes tel que la dalle avec une flèche rotative et le bouton « push me » (la personne qui joue l’actionne en cliquant directement dessus, pas besoin d’y amener un tiny).

Au fur et à mesure que je créais ces niveaux, je me disais qu’il faudrait revoir les pouvoirs des tinies. Le vert est trop overkill avec son grappin et sa capacité à passer par-dessus les trous. Mais le niveau 2b tel qu’il est conçu actuellement nécessite les deux pouvoirs.

D’un autre côté, le pouvoir du rouge est un peu pourri, il faudrait lui ajouter une autre particularité. Peut-être quelque chose par rapport aux fruits. Il pourrait être automatiquement attiré par un type de fruit particulier, ou avoir la possibilité d’attraper un fruit en passant à côté.

De toutes façons, il ne faut rien s’interdire. On pourrait imaginer encore d’autres couleurs de tinies, avec d’autres pouvoirs.

Niveau 3

On remarquera sur le brouillon les mots « lune » et « soleil » en bas à droite. J’avais écrit à l’arrache sur la feuille les paroles de la chanson « j’ai demandé à la Lune ». Ne me demandez pas pourquoi.

Voici le niveau au propre.

Je le trouve un peu nul. Trop alambiqué, trop de boutons qui font chacun trop de choses.

Vous avez certainement remarqué la présence d’une bouboule multicolore dans tous les niveaux. C’est la « rainbow-ball » (je n’avais pas vraiment défini ce que ce serait). Lorsque vous amenez un tiny dessus, vous gagnez le niveau.

Dans le Tiny Skweek original, le but est de placer chaque tiny sur la plate-forme lumineuse de sa couleur. J’en ai décidé autrement pour mon jeu. Un unique objet à récupérer me semble plus souple, permet de concevoir des niveaux plus variés, et aiderait au déroulement de l’histoire. L’objet final à récupérer pourrait être différent selon le niveau : une clé, les plans d’une invention secrète, un bébé tiny à délivrer, un gâteau, etc.

Les fruits sont des bonus facultatifs. Mais attention, il faut toujours finir par la rainbow-ball, car le niveau se termine dès que vous la prenez. On aurait quelque chose du genre : 1 point par fruit, 5 points pour la rainbow-ball. Bien entendu, on reste fair-play : il est toujours possible de récupérer la rainbow-ball et tous les fruits d’un niveau donné, en une seule fois.

J’avais pensé à une progression à la Mario64. Le score global est égal à la quantité de points obtenus à chaque niveau. Lorsque ce score atteint certains seuils, des niveaux suivants sont débloqués. Ainsi, la progression n’est pas complètement entravée par des niveaux trop difficiles, et ça donne envie de refaire des niveaux pour lesquels on n’a pas obtenu le score max.

Niveau 4

Avec la présence d’un tiny bleu.

Je n’ai pas pris de décision définitive concernant son pouvoir. Pour ce niveau, il peut créer une infinité de bloc de glace. Il n’a pas besoin de boire d’eau. D’ailleurs, il n’y a pas d’eau dans le niveau.

Lorsque j’ai dessiné tous ces niveaux, j’avais leur solution en tête. Je peux vous garantir qu’il en existe une pour chacun d’eux, permettant à chaque fois de récupérer tous les fruits et la rainbow-ball.

Vous voulez rire ? Je n’ai pas noté les solutions ! À l’époque, je me disais que je parviendrais bien à les retrouver.

J’ai fait l’exercice pour le niveau 1, et après avoir galéré un peu, je l’ai re-résolu. Pour les autres, je ne vous garantis rien. Faudrait que je fasse l’effort.

Niveau 5

Le brouillon.

Et le niveau presque au propre.

Il n’y a pas de couleurs, et il n’y a pas la description détaillée des éléments. Dans mes souvenirs, les petits nuages à gauche sont simplement des arbres, équivalents à des murs. Entre deux arbres se trouve une fontaine. Un tiny bleu peut y prendre autant d’eau qu’il veut. Autour du tiny bleu de droite sont placées des bassines d’eau. Chacune peut être utilisée une seule fois, pour créer un bloc de glace.

Attention, le carré à côté du tiny du bas est un bloc de glace, et non pas un mur normal. Sinon, ilne peut même pas sortir de la salle !

L’Overworld

La notion d’overworld est commune à plusieurs jeux vidéos. À l’occasion, je ferais un article dessus. Il s’agit d’un monde englobant tout le jeu, vous vous y promenez pour accéder à différentes endroits ou niveaux.

L’exemple le plus emblématique que je connaisse est Secret of Mana. Vous appelez le super-dragon Flami et vous survolez la carte en mode set, pour vous rendre où bon vous semble. Quelques autres exemples jetés au hasard : Skyblazer, Commander Keen 4 & 5, Sam et Max, Super Smash Bros, Mandragore (sur TO7-70).

Pour l’overworld de mon super projet, je me suis inspiré de la carte générale du monde de Fury of the Furries. J’avais imaginé différentes zones sur la planète, on zoome dessus et on sélectionne un des niveaux. Ceux où le score max n’a pas été atteint s’affichent différemment, pour indiquer que ça vaudrait le coup de le retenter.

Mouais, c’est pas vraiment un overworld puisque le personnage ne se promène pas dedans. C’est juste un menu de sélection avec de la déco, voili voilà.

Qu’est-ce qu’on pourrait bien faire de tout ce bazar ?

À l’époque, ce projet me semblait pharaonique (et absolument génial, bien entendu). Je ne connaissais que le Pascal, le C++, et un peu de .NET. Je me disais que ça prendrait des années de tout coder : le système de jeu, les menus, l’interface, les interactions entre éléments, etc.

Maintenant que j’ai plus d’expérience, et surtout maintenant que j’ai Squarity, ça serait assez rapide de programmer une première version, avec quelques éléments simples, des dessins moches et des niveaux qui s’enchaînent linéairement. Mais est-ce que ça va intéresser des gens ? Là est la question.

Alors voilà ce que je vous propose. Vous me faites des petits commentaires d’encouragement dans cet article, vous me manifestez votre intérêt pour ce projet, et selon le nombre, je débloque des succès.

  • Pour un seul commentaire, je fais un autre article dans lequel je réécris les descriptions des éléments de jeu de mes feuilles. Je vous ajoute d’autres brouillons de niveaux, et je crée un niveau supplémentaire au propre.
  • Pour deux commentaires, j’essaye de retrouver les solutions des niveaux existants, je les décris dans un autre-autre article, et j’ajoute encore un niveau au propre.
  • Pour quatre commentaires, je crée des petites gifs animées montrant pas à pas les solutions des niveaux, et je commence à dessiner un tileset. À vous de juger l’intérêt de ce succès, par rapport à mes talents de dessins en pixel art.
  • Si on arrive jusque là, ce sera déjà un truc de ouf-ouf’, je réfléchirais alors aux succès suivants, jusqu’à éventuellement arriver à une version jouable dans Squarity. Il faudra aussi que je pense à mettre des tinies féminines. Le femwashing est à la mode.

Lâchez vos comm’s les zouavouilloux et les zouavouillettes !

Et l’image de femme ronde alors ?

Eh bien comme ce jeu fait intervenir des blocs de glace, il me semble approprié de mettre une photo de sculpture de glace représentant des seins.

En plus, ça permet de faire le jeu de mot « sein de glace / saint de glace ». Ha ha ha !!!

Tant pis si c’est même pas la période des saints de glace.

Une petite vidéo pour finir

(Sans femme ronde, désolé).

Je n’ai pas l’habitude de mettre des vidéos dans mes articles, je trouve que ça distrait par rapport au propos original, et c’est beaucoup moins souple que du texte et des images qu’on peut reprendre, copier-coller, corriger, rechercher, etc.

Aujourd’hui, nous ferons une exception, car elle vaut son pesant de poil de tinies.

Lors de mes recherches documentaires, j’ai échoué sur cette page, contenant un lien vers la vidéo ci-dessous.

Un reportage datant de 1992 sur le studio de développement Kalisto, qui a créé la série des jeux Skweek. Moi qui suis toujours un peu nostalgique, me voilà servi.

J’adore le passage où le chef demande au geek à cheveux longs combien de temps il lui faudra pour réaliser une première démo des musiques. Le geek répond à l’arrache : « dans une semaine ». Ça c’est de la gestion de projet de déglingouf’. J’ai eu l’impression de revoir Zarma.pro, l’ancienne boîte où je bossais (à Kalisto, les sujets de travail sont plus rigolos, quand même).

Bisous, et encore une fois, lâchez vos comm’s !

Seins et poitrines inhabituels (pour ce blog)

Je vous avais promis deux articles pour le mois de février. J’ai échoué. Ce dimanche, mon ordinateur affichait la date « 28/02 ». L’article était bien avancé, je me suis dit que j’aurais largement le temps de le finir. Et d’un seul coup, on est passé au « 01/03 ». Calendrier grégorien de merde.

Comme vous le savez, j’aime les femmes rondes, les grosses fesses et particulièrement les gros seins. J’en saupoudre généreusement des images ici.

Il y a quelques années/mois, j’ai appris l’existence du Scar Project et du mouvement « no bra », qui m’ont tous les deux fait réaliser que ce serait bien d’équilibrer et de varier un peu mes bêtises.

Alors pour une fois, voici d’autres types de seins. Inhabituels, hors normes, hors formes, cassés, en panne, absents, mais toujours avec une personne derrière. Je vais essayer de faire ça dans le respect et la dignité. C’est pas gagné car ce ne sont pas des notions énormément mises en avant dans ce blog. Je fais avec.

Cliquez sur les images pour consulter les sources. Il n’y a pas spécialement d’ordre ni de logique dans les chapitres. À priori, je n’ai pas trop fait d’entorse au droit à l’image, mais si certaines photos n’ont pas leur place ici, dites-le moi, et je les enlèverais.

Réduction mammaire

Commençons par quelque chose de pas si inhabituel que ça. Une personne trouvant ses seins trop gros et qui décide de les réduire par de la chirurgie.

Deux mini-seins en plus des deux seins habituels

Ça arrive, c’est de naissance. Ils se situent sous les bras. Ça s’appelle « accesory axillary breast tissue ». Je n’ai pas trouvé la traduction en français.

Troisième (ou plus) téton

Il s’agit d’une particularité moins taboue que d’autres. Démocratisée grâce à je-ne-sais-plus-quel James Bond. En tout cas, Lily Allen en a un, qu’elle n’hésite pas à montrer.

(Je n’ai toutefois aucune idée de qui est cette « Lily Allen »)

Vous pouvez avoir plus que trois tétons, et ce n’est pas réservé aux femmes.

Oui, tant qu’à faire, cet article comporte également des poitrine d’hommes.

Des femmes rondes avec des seins de taille normale

Ben oui, toutes les femmes rondes n’ont pas des gros nichons.

Voici Danielle Bex :

Et Anna O’Brien, qui s’est dupliquée sur la même photo grâce au super-pouvoir de Photoshop/Paint.

Hypermastie / gigantomastie

Les seins vraiment très gros peuvent être considérés comme une pathologie, qui est officialisée par un article dans Wikipédia.

Ça n’affecte pas forcément les deux seins de la même manière, ce qui nous amène au chapitre suivant.

Asymétrie

Sans forcément aller dans les extrêmes, toutes les paires de seins sont plus ou moins asymétriques. Comme tout le reste du corps, qui n’est jamais parfait. Personnellement, mon testicule droit pend toujours plus que le gauche.

Les asymétries de seins trop prononcées peuvent être corrigées (ou pas) par de la chirurgie.

Le syndrome de Poland

Il s’agit d’une maladie rare, de naissance, qui affecte un côté du corps. La poitrine, mais aussi parfois la main, ne se développe pas assez.

Il est possible de se faire implanter une prothèse (ou pas). En revanche, les implants de tétons, ça n’existe pas vraiment, mais on peut se faire poser un « faux téton ».

Des gens déguisés en seins

C’est pas parce qu’il n’y a aucune raison de faire quelque chose qu’on doit s’empêcher de le faire.

Trois seins, comme dans Total Recall

Jasmine Tridevil (devinez quoi, c’est un pseudo !) s’est fait implanter un troisième sein, pour, entre autres, avoir sa propre émission de télé-réalité. Voilà voilà.

Le mouvement « no-bra »

Il a pour but de suggérer aux femmes de ne plus porter de soutien-gorge. Ce mouvement existe depuis plusieurs années, et s’est renforcé suite aux divers confinements, durant lesquels la tenue vestimentaire et les conventions sociales sont moins prédominantes.

Des études ont montré que les muscles qui tiennent les seins se développent plus quand on ne met pas de soutien-gorge, ce qui fait qu’ils ne « tombent » pas autant que ce qu’on pourrait croire.

Évidemment, sans soutien-gorge, on distingue les tétons à travers les vêtements. Ça peut choquer certaines personnes. En ce qui me concerne, ça ne me dérange pas, car j’aime bien les seins dans leur ensemble, tétons compris.

J’aimerais pouvoir vous promettre que si je croise une femme dans la rue ne portant pas de soutien-gorge, je ne me mettrais pas à la regarder bizarrement ni à m’attarder sur ses tétons. Mais je ne peux pas vous le garantir, car parfois, je ne peux pas m’empêcher de faire ce genre de choses même lorsque je croise une femme portant un soutien-gorge. Oui je sais, je suis un con.

Le mouvement « free the nipples »

On pourrait considérer que c’est le niveau suivant du mouvement « no-bra ». L’idée étant que puisque ça ne choque pas que les hommes puissent être torse nu, les femmes devraient aussi pouvoir l’être.

Je suis pour, évidemment.

J’ajoute que le fait de pouvoir se promener entièrement à poil (homme ou femme) mériterait d’être étudié.

The Scar Project

C’est une série de portraits de femmes ayant survécu à un cancer du sein. Les photos ont une intention exactement inverse des photos médicales que j’ai mises dans l’article. On voit les visages, les décors, éventuellement d’autres gens, et on peut essayer de deviner la personnalité de ces femmes.

Ces deux intentions, médicales et artistiques, m’ont semblé toutes les deux intéressantes. Voici donc quelques photos du Scar Project

Ce sera tout pour aujourd’hui. J’espère que ça vous a interpellé un minimum, et que ça vous a éventuellement plu. J’essayerais de refaire des articles du même genre à l’occasion. La ligne éditoriale blog-globale de ce blog ne changera pas pour autant, avec majoritairement des images de femmes rondes, de big asses et de gigantic boobs.

Je n’ai aucune idée du sujet du prochain article, je finirais bien par trouver un truc à l’arrache. Ce sera possiblement encore du Squarity.

Bisous sur les tétons, ou ailleurs pour les personnes qui n’ont pas de tétons.

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.

Squari-tutoriel !

À l’arrache ce mois-ci pour l’article de blog. Mais j’ai quand même du contenu à proposer. Comme on dit dans les basse sphères le la société : « chose promise, con tenu ».

Une fois de plus, c’est à propos de Squarity.

Voilà, j’ai fait un petit tutoriel, qui vous accompagne dans la création d’un sympathique petit jeu de soko-ban.

Vous n’avez pas besoin de connaissances en python pour le suivre. Il est assez long, mais super facile. Il suffit de copier-coller des bouts de code. Il y a parfois des questions, dont la réponse arrive peu de temps après, pour ne pas bloquer les gens. Ça ne vous apprendra pas le python, mais avec un peu de chances, ça vous donnera envie de programmer des jeux dans Squarity, et par ricochet, d’apprendre le python.

J’ai essayé de destiner ce tutoriel à des jeunes (collèges, lycées). Mais je ne sais pas du tout si c’est adapté et si ça marcherait avec une population de ce type. J’ai pas de collégiens/lycéens à portée de main. À une époque, je donnais des cours de python à un petit groupe, et à des stagiaires de découverte d’entreprise. Ça passait plutôt bien. Mais bon, je vais pas vous raconter ça maintenant. Peut-être dans un autre article, si je le juge digne d’intérêt.

Et vu que ce tutoriel permet de créer un soko-ban, je me suis dit, mettons ce jeu directement à disposition ! Ainsi fut fait.

Un format enfermant

Le sachiez-vous ? il existe un format de fichier pour décrire les niveaux de soko-ban. Que j’ai bien entendu respecté : un dièse pour un mur, une arobase pour le personnage, etc.

Il y a juste un truc qui m’embête : le format préconise d’entourer le niveau par des murs. Je suppose que ça part d’une bonne volonté, ça permet de bien délimiter la zone de jeu, et de ne pas obliger à spécifier ses dimensions. Mais je trouve ça dommage.

Comme vous le voyez sur l’image ci-dessus, le niveau a une ouverture en bas. Les 4 niveaux que j’ai mis dans mon jeu en ont une. Ça ne respecte pas le format, et c’est inutile. Si vous vous déplacez jusqu’au bord de l’aire de jeu, il ne se passe rien.

Mais ça modifie un tout petit peu la narration et le ressenti pour la personne qui joue. Le personnage n’est pas enfermé. Il n’est pas condamné pour toujours à pousser des caisses. Avec cette ouverture, on imagine que le personnage arrive, pousse des caisses, puis repart vers de nouvelles aventures. Ça laisse plus de place à l’imagination qu’une stupide prison hermétique.

L’une des choses que j’ai vraiment aimé dans le jeu Drod, c’est le monde ouvert. Vous avez des énigmes à résoudre, indépendantes les unes des autres. Mais elles sont toutes connectées ensemble dans une grande aire de jeu. Vous vous promenez où vous voulez et vous avez une certaine liberté dans l’ordre de résolution des énigmes. Je me serais beaucoup moins amusé si Drod avait été une simple succession de salles à réussir dans un ordre imposé.

Je suis actuellement en train de découvrir « Caves of ZZT ». On y trouve cette même idée de monde ouvert, qui me donne toujours envie d’aller dans les salles autour « juste pour voir », puis de résoudre la salle dans laquelle je suis, juste pour avoir accès à d’autres salles, et ainsi de suite.

Le level design, même pour des jeux aussi simplistes qu’un soko-ban, est super important. Il ne faut pas se contenter de placer les objets nécessaire à l’énigme. Il faut essayer de raconter une histoire, fut-elle si petite qu’elle tiendrait dans un quart de tweet.

Carte complète de Plankton, un jeu fait avec ZZT. Cliquez sur l’image pour en avoir plein d’autres

Michèle Tore !

Jeudi dernier, j’étais en train de faire l’andouille sur ma chaîne twitch et de me la péter avec mon tout nouveau tutoriel. Au cours de la discussion avec des ordispectateurtrices, on m’a demandé de faire un soko-ban « comme dans un niveau de pacman ». J’ai dit : « Ah ba ça, ça tombe bien alors ! on a déjà un pacman dans Squarity, je vais copier-coller la carte du niveau et tu l’auras dans le soko-ban ».

Après quelques modifications hasardeuses et un adaptation des caractères définissant le niveau, nous sommes arrivés à nos fins.

Et là, l’ordispectateutrice de tout à l’heure me précise que le terme « comme pacman » avait pour intention de signifier « quand le personnage va tout à gauche il se retrouve à droite et vice-versa ». Cette personne voulait un univers en tore bidimensionnel. J’avais mal compris.

Qu’à cela ne tienne, après quelques modifications supplémentaires, le soko-ban atterrissait dans un univers bidimensiotorique. Et moi qui dissertais tout à l’heure sur l’intérêt des mondes ouverts et l’importance de mettre une entrée/sortie, même fictive, eh bien là, le monde se retrouvait horriblement fermé puisque replié sur lui-même. Argh !!

En attendant, c’est plutôt rigolo, et ce serait super chouette si de gentilles personnes me créait des niveaux qui utiliserait cette particularité bidimensiotorique. J’ai partagé cette version du jeu, vous pouvez y jouer directement par ici.

Vous en avez peut-être marre de Squarity ?

Ça fait 6 articles et 5 mois que je ne parle que de Squarity dans ce blog. Peut-être que ça vous incommode, que « c’était mieux avant » quand je vous parlais de tout et n’importe quoi.

Désolé. C’est mon gros projet du moment. Il est possible que ça monopolise une grosse partie de mon temps libre des années à venir. Alors forcément, je le raconte ici.

Voici une proposition pour limiter un peu la squaritification de ce blog : pour le mois de février, je vous fait DEUX articles ! Un concernant Squarity, et un concernant tout autre chose. Ce sera sur un sujet qui me tient à cœur et que j’ai déjà mentionné une paire de fois : les nichons.

Et puisqu’il y aura deux articles, je vous propose une photo avec deux belles femmes : les jumelles Rocio et Lucia Mais. Pour le coup, c’est pas vraiment sur les nichons qu’il faut porter le regard, mais elles sont quand même magnifiques :

C’est à 9 secondes dans la vidéo d’origine.

À bientôt, puisque le mois de février, c’est dans bientôt.

Le serveur Discord de Squarity

Joyeuses fêtes. Comme d’hab’, le moment de Noël-Nouvel an est l’occasion d’avancer mes projets, because vacances, et c’est bien cool.

J’ai créé un Discord pour Squarity. C’est ici : https://discord.gg/D5SYnk8u3j .

Je m’en servirais pour publier les annonces de mise à jour. Il y a aussi divers espaces pour montrer les jeux que vous faites, poser des questions techniques, ou tout simplement parler de n’importe quoi.

C’est un début.

Si vous avez déjà un compte Discord, ce serait super sympa de venir, même si vous n’avez rien à raconter. Juste pour montrer qu’il y a des gens qui s’intéressent à ce projet.

J’ai également créé un compte sur un serveur mastodon, histoire d’avoir une bonne conscience auprès des libristes :
https://mstdn.io/@recher

J’annoncerai les mêmes choses sur le discord et sur mon compte mastodon. Vous pouvez vous raccrocher à un seul des deux, celui que vous préférez.

Hypothétiquement, il y aura un jour un vrai forum et des vrais comptes où on pourra enregistrer ses jeux, mais ça c’est pour une date indéterminée.

Un peu de couleurs pour finir l’année, avec Romekia Brown.