Ludum Dare 48 : mes revues de jeu

Comme vous le savez, j’ai participé aux 3 dernières éditions du Ludum Dare.

Les revues des jeux fonctionnent avec un système de karma. Plus vous testez et notez les jeux d’autres personnes, plus votre jeu remonte dans la liste. La proportion est d’à peu près 1 pour 1. Lorsque vous donnez un avis sur un jeu, vous finissez par recevoir un avis sur votre jeu. Il faut une vingtaine de notes pour espérer apparaître dans le classement final.

Le classement par karma est indépendant du classement final. Vous pouvez avoir un karma très haut et beaucoup de personnes qui viennent vous noter, mais si votre jeu n’est pas génial, les notes seront pourries et votre classement final sera très bas.

On peut aussi avoir l’effet inverse. Si vous avez déjà une certaine réputation et du talent, les gens viendront en masse noter votre jeu, et vous n’arriverez pas à contrebalancer le karma avec vos propres notations. Genre Deepnight, qui reçoit 446 notes pour Nuclear Blaze sans avoir besoin de lever le petit doigt. Forcément les 16 notes qu’il a données ne suffisent pas, et c’est tant mieux pour lui. (Je suis peut-être un peu jaloux, je dois avouer).

J’essaye de donner des notes de qualité, que j’accompagne toujours d’un petit commentaire de revue. D’abord parce que c’est classe, et ensuite parce que si votre revue est likée, je crois que ça fait un petit bonus de karma. C’est toujours ça de pris.

Je vous ai rassemblé ici mes revues de la 48ème édition. Ça me fait un article de blog à peu de frais. Comme vous l’aurez deviné, je suis une fois de plus à l’arrache.

Au fait, il s’agit du traditionnel « article publié le jour de Noël qui parle pas du tout de Noël ». C’est les vacances, ce qui a pour effet bénéfique de me désalarracher un tout petit peu pour mes activités créatives, d’où paf « article de blog » et paf « Noël ».

Il y a peut-être des revues que j’ai oubliées. Ergonomiquement ,le site du Ludum Dare est une géante meule d’aiguilles dans laquelle on ne parviendrait pas à retrouver une meule de foin. C’est difficile de récupérer ses propres écrits. Je ferais peut-être des fouilles archéologiques une autre fois. Et sinon c’est en anglais.

Si vous avez envie de tester certains jeux en vous basant sur mon opinion personnelle, choisissez en priorité ceux ayant la mention « kiffitude » en gras. Ils sont à la fin.

Caution Falling Rock

https://ldjam.com/events/ludum-dare/48/caution-falling-rock

  • Overall:3.5
  • Fun:4.0
  • Innovation:1.0
  • Theme:4.5
  • Graphics:3.5
  • Humor:1.5
  • Mood:3.0

It looks like evolving in a “work in progress” sign. Simple and fun.

I would have loved some air control, to add some variety. And it could still be a one-button. While on rocks, the button is used to set the jump power, like it is now. While in the air, the button is used to go down a little faster, as if the character was going down on the rope.

I would also have liked the display of my highest score. When I die, I have to very quickly look at my depth score, before it is replaced by the depth of the next game.

Elevator Ninja

https://ldjam.com/events/ludum-dare/48/elevator-ninja

  • Overall:3.0
  • Fun:2.5
  • Innovation:1.5
  • Theme:3.5
  • Graphics:4.0
  • Audio:4.0
  • Humor:5.0
  • Mood:3.0

Sound effects are great, and the stupid and absurd death of the two friends at the beginning is also very fun.

The rocks « 48 » is also weird and fun, and made me die the first time because I thought it was a bonus.

I did not managed to reach the end, partly because of lazyness to restart at the beginning, partly because I fell on the left side at the beginning of the spike part, and the good path was on the right side. I imagined I would have to learn the complete good path by trial and error, and was not motivated enough to do it.

I did not understand immediatly what was the big brown shape above the hero on the second part, then I realized it was just his backpack.

« Ninja !! »

The Greed of the Dwarves

https://ldjam.com/events/ludum-dare/48/the-greed-of-the-dwarves

  • Overall:3.5
  • Fun:1.5
  • Innovation:1.0
  • Theme:4.0
  • Graphics:4.5
  • Audio:4.0
  • Humor:4.0
  • Mood:2.0

The most important thing to do with a clicker game is to correctly balance all the stats and the options. The main fun in this type of game is to try to min-max your actions to increase stats faster. Sorry, but your game fails at this, because we just have to buy some forges and click a dozen times on the mine to get to the next level.

Anyway, the music is cool, graphisms are great, and the way our final score is announced at the ending is very humorous.

I tried to find the secret ending by rummaging in the source code. I found some achievement managing (which does not seem to appear in the game) and some graphical assets of unused levels, but nothing more. It may be really secret.

@ all_the_people_who_had_difficulties_to_place_structure : you just have to click on the lighter green squares.

Grave Robber

https://ldjam.com/events/ludum-dare/48/graverobber

  • Overall:2.5
  • Fun:1.5
  • Innovation:1.0
  • Theme:4.0
  • Graphics:4.5
  • Audio:3.5
  • Humor:2.0
  • Mood:4.5

Nice graphics and « dark/fluorescent » theme.

Combats seem difficult, because your attack makes you rush, but on a too long distance in my opinion. I was always afraid of ending behind the monsters after a rush, so continuously rushing-backing-rushing-backing etc.

I too noticed the bug found by @chrisap, but it is not too annoying.

It was a great moment of fun, but I did not see any more points in the game after digging and killing skeletons. So, I may not have reached the end of it.

The score should not be named as dollars. I thought I could spend them on a shop or whatever, but it looks like there is nothing of that.

Conventionnally, in video games :

  • money (dollars or other) is expected to have an interest in the game, to spend them somewhere
  • XP is expected to have an interest too, to gain levels and increase any stats
  • score/points is not expected to have an interest, it is just to compare you with the other players.

Pimble

https://ldjam.com/events/ludum-dare/48/pimble

  • Overall:4.0
  • Fun:5.0
  • Innovation:3.5
  • Theme:1.5
  • Graphics:3.0
  • Audio:3.0
  • Humor:3.0
  • Mood:4.0

Great and fun tweak of the classical breakouts. As other said, it would totally work on touch screen.

The actual balls are a bit difficult to grab with the mouse pointer. I would have loved to be able to get them easier, so that I could throw them at a higher speed, and see many balls bouncing everywhere in the game. It would have been a pure moment of joyful brick destruction.

Rewarding the player for breaking multiple bricks in one throw would also have improved the gameplay.

Thank you for this idea !

Jet Racing 4

https://ldjam.com/events/ludum-dare/48/jet-racing-4

  • Overall:2.5
  • Fun:2.0
  • Innovation:1.5
  • Theme:1.0
  • Graphics:3.5
  • Audio:3.0
  • Mood:2.5

It needs one little info in the introduction, to tell that Ctrl is the key for handbrake, that lets you turn faster. I am not accustomed to driving games and did not realize it immediatly.

The activation zone of the checkpoints could be a little bigger. I sometimes pass near a checkpoint without activating it, while I still have the impression I stayed on the road.

I would have loved to destroy something when bumping in the bushes (either my car, or the bushes itself). But we just pass through. Too bad.

Dungeon : Developer’s Away

https://ldjam.com/events/ludum-dare/48/dungeon-developers-away

(Désolé, j’ai pas gardé les notes que j’ai données).

Nice game, I was expecting some tricks about the fact that the developer is away. Something like bugs made on purpose, that you would have to exploit to advance in the game. But it seems there is no such thing. I must admit I was a bit disappointed.

I liked the sprite to change room. It totally assumes that you didn’t have time to draw a real door or teleporter.

Watery Crave

https://ldjam.com/events/ludum-dare/48/watery-crave

  • Overall:3.5
  • Fun:3.0
  • Innovation:3.5
  • Theme:2.0
  • Graphics:4.0
  • Humor:3.5
  • Mood:4.5

The difficulty is well-balanced. The people who manage to make it to the end really deserves it and I suppose it grant them a really great feeling of satisfaction. It was too hard for me, I stopped at the last checkpoint. Many thanks to @ausstein who shared the playthrough, so that I can realize I was not so far from the end.

Air control is a little frustrating, but it’s a good idea. It gives you a continuous alternation between the stress feeling while in the air, and security feeling while in the water. Exactly as a fish would have (I suppose so).

It is also a good idea to have put hurting spikes in the water after some checkpoint. It modifies the gameplay you initially established. At start, you alternate between stress-air and calm-water, then you alternate between stress-air and not-so-calm-water. A nice evolution.

I loved the sound when the fish comes back to water after a long time. She takes a deep « breathe ». Very funny for a fish.

Nice graphics, but as others said, the difference between spikes and safe blocks should be more marked. Also, I find the dark shader a little too dark.

Diggy Diggy Dwarf 2 : Deeper & Deeper

https://ldjam.com/events/ludum-dare/48/diggy-diggy-dwarf-2-deeper-deeper

  • Overall:2.5
  • Fun:1.0
  • Innovation:1.5
  • Theme:4.0
  • Graphics:4.5
  • Audio:4.5
  • Humor:3.0
  • Mood:3.5

Beautiful graphics, but the game in itself is quite short and has few contents in the mechanics.

Some people said it lacks a tutorial. I do not completely agree. I would say it just needs a little more feedback on what is happening :

  • a detail of the lost/gained energy and dirt you get at each turn,
  • little hearts above the dwarves to realize immediatly they have health,
  • icons telling you have unlocked the solid hull and the double dirt production, so that you do not wonder if it can be unlocked many times,
  • etc.

Also, written subtitles of the story elements you get when you go deeper would be appreciated. I am not a native English/American. It’s sometimes a bit hard for me to understand spoken english, especially when the voice has music and drilling sound in the background.

There is a bug when you pick a dwarf, then click on « end turn » without placing it. It stays attached to your mouse cursor and it is difficult to put it back in a room. I managed to do it by clicking everywhere in a panicky way.

I got to -210 meters, then realized I will not have any more than digitized voice I am not sure to understand, so I stopped.

Nice game and very nice graphics, but I would have wanted more elements and more stats/resources to handle.

Space Trench Miner

Kiffitude de type « j’adore ce genre de jeux, nommons cela les jeux ‘mining 2D' ».

https://ldjam.com/events/ludum-dare/48/space-trench-diver

  • Overall:4.0
  • Fun:3.5
  • Innovation:1.5
  • Theme:4.0
  • Graphics:3.5
  • Mood:1.0

Nice mining game, with all the mechanics you would expect from the genre.

The cost of the first upgrades and the time required to mine seems well balanced for me, even at the start.

I would have loved more content : more type of upgrades, more block types you could encounter when you go deeper, a final objective, … But for a compo, it is already great.

Graphics are nice and reminded me of Starbound.

There is a bug with the grappling hook. You can sometimes encounter it while you are digging. And it is especially annoying because if you touch it, it cancels your run.

I got also a weird bug when upgrading, but I can not completely explain it, so it may not be reproduced : I had 3117 credits. I bought my last upgrade. But the money showed was still 3117. Then I came back to the main game menu, and the credits showed 617.

When the robot has only one block under it, and when it is not correctly placed, it does not dig the block. It’s a little annoying when you have bought many upgrades and you just want to drill faster and faster.

The launching animation is a little confusing. I thought I could click somewhere to choose my destination, or I had to click at the right time to correctly land on the planet. But it is just a non-interactive animation.

Chess Hellevator

Kiffitude de type « jeu squaritable » + « blagues super drôles avec le mot ‘hell' ».

https://ldjam.com/events/ludum-dare/48/chess-hellevator

  • Overall:4.5
  • Fun:4.5
  • Innovation:3.0
  • Theme:2.0
  • Graphics:2.5
  • Audio:4.0
  • Humor:5.0
  • Mood:4.5

It is not the first time that a game is inspired by chess pieces, but this time it is really well done.

The elevator man and all the rest of the atmosphere is really « horrifun ».

I liked the last level (even if it is easy), because it pushes the game logic you previously stated to the limits.

The jokes are … joky : Hell-pawns / hellspawn, Hell-evator. Ha ha ha.

I was a little confused by this phrase in the explanations : « Bonus moves are very important for clearing later levels, so use them wisely.​ »

I thought that « bonus moves » was a sort of bonus that I could accumulate or use it later. So I spent a part of my first try to search in the interface an indicator of accumulated bonus moves, without realizing that it was an « extra turn » that is used immediatly.

Overall : a great game.

Into the past

Kiffitude de type « intimité, mélancolie et envie de gros câlins ».

https://ldjam.com/events/ludum-dare/48/into-the-past

  • Overall:4.0
  • Fun:3.0
  • Innovation:2.0
  • Theme:4.5
  • Graphics:3.5
  • Audio:4.0
  • Mood:5.0

The « recall » mechanic recalls me (ha ha ha) of this previous game, made by deepnight, who win regularly Ludum Dares : https://deepnight.net/games/memento-xii/ . Maybe you should try it. It’s also about history, mood, atmosphere and loneliness.

I liked your game, we should have more like this. We do not know if it is biographic, autobiographic or completely invented, and that’s also what is interesting with it. Some mysteries.

About more technical concerns : when the white shine-lines appears to show an interactive object, it is difficult to know exactly where to click to use it. I often try to click in the center of the lines and miss it.

Thank you for this game.

Diacombs

Kiffitude de type « jeu squaritable » + « je vais y arriver à résoudre cette énigme bordayl of merde ! « .

https://ldjam.com/events/ludum-dare/48/diacombs

  • Overall:4.5
  • Fun:3.5
  • Innovation:4.0
  • Theme:2.0
  • Graphics:3.0
  • Audio:1.5
  • Humor:2.0
  • Mood:4.0

I was hooked and couldn’t stop until I won.

graphisms are very “moodesque”, but I got a little confused because sometimes they flip automatically horizontally to fit their match. I thought at first that there was a difference between a flipped object and a not-flipped one.

Music is soft and fits well with the game, but it ends up being annoying.

The enigma on the fourth screen, with all the simple diacombs is very well-balanced. It looks scary and full of combinations. Then you understand little by little how it is structured.

Every time I changed screen I thought there would be a way of cheating, by bringing diacombs to the new screen. But every time, it revealed impossible, or just useless.

Let’s call this puzzle type “soko-merge” !

Watch Your Step

Kiffitude de type « j’ai totalement trippé dans le commentaire que j’ai écrit ».

https://ldjam.com/events/ludum-dare/48/watch-your-step

  • Overall:4.0
  • Fun:5.0
  • Innovation:4.5
  • Theme:4.0
  • Graphics:2.0
  • Audio:3.5
  • Humor:4.0
  • Mood:4.5

Very interesting concept, that could be related to « Heave Ho » on the Switch. I really like it when mechanics are very simple, and the quantity and arranging of simple elements provokes an « emergent behavior ».

The rules about the leg are simple. As you said in one of your previous comment : the leg goes to the right, and bounces when hitting a platform.

But with enough legs, this simple rule really gives the impression that the creature is walking. Laying one leg after another, in a rolling movement.

I agree with previous comments saying that control is not easy and not immediatly understandable. But while I was typing this text, I looked back at the game. The creature has now about thirty legs. It advances alone. It learned from its previous failures. The numerous legs it decided to have, one after another, give it the capacity to pass obstacles, further and further.

My own personal and « deep » opinion about your game is that you should completely remove the controls by the player. A pure idle game. You watch the creature walk by itself. It does not need the player. It is alive. It realized by itself how to survive longer and longer in the hostile world where it has been placed.

I made a high score of 3037 when controlling it. I let the creature live by itself during about 20 minutes, and it made a high score of 3178. The creature is better than me, and is completely independant. It does not want to be controlled.

Voilà !

Pour finir, je voulais vous mettre une image de femme ronde qui serait un personnage de jeu vidéo. Figurez-vous que ce n’est pas si simple à trouver. Ou alors, ce sont des femmes rondes moches caricaturales. Je n’ai peut-être pas assez cherché, ou bien les jeux vidéos ont encore du chemin à faire dans la diversité de représentation des personnages féminins.

Bref, pour aujourd’hui ce sera Mai Shiranui, de King Of Fighter, un archétype de plus de la femme belle et sexy avec des gros nichons. Je vous ai trouvé une version ronde et sexy avec des belles formes, et inévitablement des gros nichons.

++ xoxo

Une cheat-sheet de Gems of War

Ma chérie est fanne du jeu Gems of War.

Wesh t’as vu lecteurtrice, comment j’ai écrit le mot « fan » au féminin ? Tellement trop je suis woke-compliant.

Gems of what ?

Il s’agit d’un Match-3 « Freemium ». Ça veut dire que vous pouvez dépenser votre argent pour des bonus, si vous êtes un pigeon. L’idée étant de profiter d’un jeu garantissant à priori un minimum de qualité, puisqu’il y a des gens payés pour le développer, sans que vous ayez besoin de payer vous-même puisque des pigeons le font pour vous.

J’aime bien le Freemium, j’aime bien les jeux de Match-3, ma chérie aime bien aussi, et j’aime bien ma chérie.

Le principe de Gems of War est assez simple : deux équipes s’affrontent. Vous matchez des gemmes pour récupérer du mana et charger vos personnages, qui peuvent ensuite lancer leur sort. Les sorts infligent des dégâts, modifient l’aire de jeu ou ajoutent des statuts. C’est une sorte de Elements of Arkandia en beaucoup plus élaboré.

Il existe beaucoup de statuts, certains positifs que vous donnez à vos personnages (barrière, bénédiction, rage, …), d’autres négatifs que vous infligez aux autres (poison, malédiction, gel, …). Ce n’est pas toujours évident de se souvenir de tous leurs effets ni de leur représentation visuelle dans le jeu.

Le halo violet sur le dragon de gauche signifie qu’il est enchanté. La flamme au-dessus du « 27 », sur la bestiole de droite indique qu’elle est en train de cramer. Il ne vous reste plus qu’à savoir ce que ça implique.

Alors j’ai fait une grande image regroupant ces statuts. J’y ai ajouté deux autres petites infos :

  • des motifs de match-4 remarquables, permettant de jouer plusieurs fois de suite,
  • l’ordre des éléments dans le mini-jeu Treasure Hunt (qui est une sorte de NaturalChimie en plus simple).

Je vais faire imprimer cette image en poster et je l’offrirais en cadeau à ma chérie. Classe !

La voici, si vous aussi vous voulez la mettre sur un poster, un mug, une descente de lit, un tatouage, …

Cliquez dessus pour la voir en grand.

C’est fait avec Paint.Net, que j’utilise parfois pour dessiner quelques sprites à l’arrache.

Cette œuvre étant assez conséquente, ça m’a donné l’occasion de découvrir quelques fonctions de ce logiciel que je ne connaissais pas. J’arrive maintenant à produire des effets visuels pas trop dégueux par rapport au temps que ça me prend (comprendre : ça me prend deux minutes et c’est tout juste acceptablement regardable).

En tout cas, on ne me fera pas utiliser Photoshop. Ça coûte une téra-blinde pécuniaire + une téra-blinde temporelle (le temps que vous devez investir pour apprendre à vous servir de l’outil).

Paint.Net utilise un format de fichier spécifique : le .pdn. À ma connaissance, c’est juste une suite d’image .png superposées en layers. Mais c’est pratique, ça permet d’organiser et d’éditer séparément les différents éléments de votre rendu final.

Comme je suis gentil, je vous donne les .pdn intermédiaires que j’ai créés. Vous pouvez en reprendre des morceaux, les décortiquer, les imprimer pour les mâchouiller, bref en faire ce que vous voulez. Il y en a pour quelques méga-octets, j’ai donc été obligé de balancer le tout dans un répertoire de mon fucking Google Drive.

Et Squarity alors ?

J’essaie d’avancer la road-map, mais j’ai du mal à trouver du temps pour ça, comme d’hab’. En plus, là il faut que je crée encore un autre jeu pour l’anniversaire d’un pote, et j’en suis à peine à la recherche d’idées.

Il est marié, il a un fils et une fille. J’aimerais bien faire quelque chose qui implique ces 4 personnes. Je m’étais dit, peut-être une sorte de Lost Viking, où on dirige alternativement les 4 personnages, chacun ayant une capacité spéciale. Ou sinon, rien à voir : un tetris avec 4 types de blocs différents (un par personne). Lorsqu’on crée un carré de 2×2 contenant ces 4 types, il disparaît. Est-ce que ça ferait un jeu jouable ?

Qu’en pensez-vous ? Auriez-vous une autre idée bien meilleure que celles que je viens d’énoncer ?

Pour vous aider à réfléchir à tout ça, je vous met une image de Margaret Gem(s of War).

Tchô !

Fiche cuisine : le steak continu et strictement monotone

Voilà bien longtemps qu’il n’y a pas eu d’article de pur n’importe quoi sur ce blog. Remédions à cela.

Rappelez-vous, il y a environ une décennie, j’avais écrit deux fiches cuisine. En voici une troisième.

Avantage de la recette

Nécessite peu de matériel.
Facile à réaliser.
Est une application amusante d’un théorème mathématique.
Peut se décliner en de nombreuses variantes.
Rond. (enfin presque)

Préparation

  • Placez un steak dans votre congélateur. Astuce futée : il est plus simple d’acheter le steak dans une boucherie, plutôt que de prendre le temps d’élever un animal pour le tuer et le découper.
  • Attendez quelques heures.
  • Sortez le steak et placez-le dans une poêle. Pas besoin de mettre d’huile.
  • Mettez la chaleur à fond.
  • Lorsque le côté du steak est bien noir, retournez-le.
  • Lorsque le second côté du steak est également noir, coupez le feu.
  • Grattez le noir des deux côtés du steak.
  • Grattez et réservez dans un plat à part la partie cuite du steak.
  • Remettez la partie centrale du steak au congélateur, pour une utilisation ultérieure (en plus ça rime).
  • Dégustez la partie cuite que vous avez précédemment réservée. Si vous avez assez de motivation, trouvez une salière et ajoutez du sel.

Variantes possibles : utilisez n’importe quelle autre victuaille de votre congélateur : bloc d’épinards, reste de repas, galette de légumes, surimi, … Attention, ne le faites pas avec des glaçons, ni de la crême glacée, ni avec le congélateur lui-même.

Comment ça fonctionne ?

La chaleur se propage vers les molécules voisines. La plaque de cuisson chauffe uniquement la surface extérieure du steak. Cette surface chauffe ensuite la viande qui se trouve un peu plus à l’intérieur, qui elle-même chauffe la viande un peu plus à l’intérieur, et ainsi de suite.

Comme il y a un peu de perte de chaleur à chaque molécule cuite, l’intérieur du steak n’a reçu aucune cuisson (à condition de ne pas l’avoir laissé trop longtemps sur la plaque).

Soit un point A situé à l’intérieur du steak, dans la partie encore congelée.

Soit un point B situé à l’extérieur du steak, sur la partie brûlée.

Nous avons le schéma suivant :

Soit la fonction « cuicui », qui, pour tout point p du segment [AB], associe la valeur cuicui(p), correspondant au taux de cuisson du steak au point p.

Quels que soient les points A et B, cette fonction est continue et strictement monotone, du fait de la propagation de chaleur par voisinage moléculaire. (Si on prend les points A et B les plus éloignés l’un de l’autre, on risque d’avoir une fonction pas-strictement monotone, mais y’a qu’à pas prendre ces points là).

Le théorème des fonctions continues strictement monotones nous indique que, pour toute valeur y située dans la zone « correctement cuite », il existe un et un seul point p tel que cuicui(p) = y.

Il y a donc forcément une partie correctement cuite sur le segment [AB].

En faisant varier le point A sur toute la zone congelée du steak, et le point B sur toute la zone brûlée, on en déduit que le steak a forcément une zone correctement cuite, dont la forme est à peu près celle d’une poche creuse en 3D.

C’est ce que vous avez extrait, lorsque vous avez éliminé la partie brûlée et séparé la partie congelée.

Bon appétit !

Et vive les maths !

Un an de Squarity

Il y a un an et quelques jours, je mettais http://squarity.fr en ligne et je l’annonçais dans cet article. C’est l’occasion de résumer le chemin parcouru.

  • Je me suis lancé dans ce projet sans être sûr qu’il était techniquement faisable.
  • J’ai pesté contre la lenteur de Brython et son incapacité à faire remonter les messages d’erreur python.
  • Je suis passé à Pyodide.
  • Je me suis lamenté sur mon incapacité à écrire du CSS, pour finir par coder certaines parties du responsive design en javascript.
  • J’ai écrit des tutoriels.
  • J’ai écrit de la doc, que j’ai ensuite rendu obsolète.
  • J’ai répondu « oui » à une grande partie des suggestions d’améliorations, en précisant qu’elles étaient dans la road-map.
  • J’ai promis que je publierai cette road-map.
  • Je publie ici la première étape de la road-map, à savoir : « rédiger la road-map ».

Ensuite, j’ai créé un serveur Discord, et quelques gentilles personnes s’y sont greffées.

  • Ensemble, nous avons créé des jeux, joué à ces jeux, et eu des idées de jeux sans les concrétiser.
  • Nous avons participé à des Ludum Dare en ayant l’espoir que ça ferait connaître Squarity.
  • Nous avons bidouillé du javascript dans du python lui-même dans du javascript.
  • Nous avons fait de la 3D isométrique avec de la 2D.
  • Nous avons pallié l’inexistence de l’IDE de Squarity avec un serveur web local.
  • Nous avons discuté, twitché, live-codé, peer-programmé, Clash-of-Codé et parlé tous les jeudis soirs avec un·e nain·e.
  • Nous nous sommes bien amusé et ce n’est pas fini !

Quelques remerciements particuliers

Merci aux personnes suivantes, dont la plupart sont sur Discord :

  • 10K, qui a créé un Pacman quelques jours à peine après la mise en ligne de Squarity
  • Loowood, très souvent présent pendant les lives, toujours prêt pour donner un petit message d’encouragement, qui a créé le Bomberman Chelou ainsi que le fameux « framework-hack-3D ».
  • ℕarkoa, qui apparaît également dans ce blog et qui m’a soutenu pendant le dernier Ludum Dare.
  • lilithabaddon, qui a commencé à créer le jeu du Labyrinthe, toujours là aussi pendant les lives, et qui s’est inscrit trois fois pour gonfler à bloc le nombre de gens sur Discord. Sans ça, nous serions beaucoup moins de monde que 16 personnes !
  • Tacheul, de PixelJoint, qui a dessiné le superbe tileset du jeu H2O.
  • Mes enfants, qui testent mes jeux et font des vidéos avec moi, et qui parviennent à prendre un air réellement interessé quand je leur parle de mes avancées et mes élucubrations.
  • Ma chérie, qui écoute aussi mes élucubrations et qui établit actuellement un « état de l’art des jeux de Match-3 », je suis sûr que ça me servira à quelque chose.

Et bien sûr, merci à toutes les autres personnes qui s’intéressent à Squarity, qui passent dire un petit coucou, ou pas car elles n’ont pas envie (et vous avez bien le droit), qui, peut-être, créent des jeux dans leurs coins, qui ont des idées de malade et des projets complètement fous mais qui n’osent pas en parler. Être ici est déjà le début de quelque chose. On verra pour la suite !

Oui d’ailleurs, pour la suite ?

Ça fait quelques mois qu’il n’y a pas eu d’évolutions sur Squarity. J’ai passé les derniers mois à coder le jeu « Game of No-Life », ce qui n’était pas une stratégie très maligne. J’aurais pu utiliser ce temps pour améliorer le site, le rendre plus facile d’utilisation, ajouter des fonctionnalités dans le moteur et mettre la doc à jour. Mais à la réflexion, je n’aurais pas pu agir d’une autre manière.

C’est un projet que j’avance durant mon temps libre. Il est difficile de rester motivé sur le long terme pour ça. Vous-même, vous savez. Je n’en suis pas à mon premier projet perso, nombre d’entre eux ont survécu à peine quelques semaines avant de se retrouver jetés aux ordures tel une portée de petits chatons non prévue.

Mais j’aime inventer des jeux et j’aime coder en python. Le fait d’utiliser mon propre outil pour faire ce que j’aime m’offre un petit (ou un grand) moment de détente, qui me redonne de la motivation pour continuer.

Alors voilà. On va avancer très lentement. Il y aura sûrement d’autres pauses comme celle-ci dans le développement de Squarity. Des fonctionnalités que j’ai promises dès le départ arriveront peut-être dans 10 ans. Vous continuerez de galérez encore longtemps avec une API très pauvre et un site web mal fichu. Mais cette erratique manière de progresser nous donne, à moi et à vous, une garantie que je n’abandonnerais pas ce projet, tant que je suis capable de coder.

Le chemin vers Squarity est pavé de bonnes intentions carrées

Le Game of No-Life

Il est enfin terminé ! Il s’agit d’un jeu de stratégie minimaliste en temps réel, qui se joue à deux, avec seulement deux boutons par personne.

C’est aussi un petit test de performance, car il y en a pour :

  • 2656 lignes de code (4965 en comptant les commentaires).
  • Des actions sur l’ensemble de l’aire de jeu, effectuées automatiquement toutes les 200 millisecondes.
  • Une pseudo-interface intégrée dans le jeu
  • Une zone de 60 par 38 tiles au total.

Voici une petite vidéo de démonstration, dans laquelle je joue avec mon fils :

C’est un peu long, on raconte plein de bêtises. Mais vous remarquerez que j’ai pris soin de la décomposer en chapitres.

Si vous n’avez pas une demi-heure de temps de vie à gaspiller, vous pouvez juste regarder les chapitres « Comment jouer », « Présentation de Squarity » et « Dénouement final ». Ça ne vous coûtera que 17 minutes.

Et sinon, pour jouer, c’est directement dans votre navigateur en cliquant ici. Vous n’avez plus qu’à trouver un humain consentant à portée de main et à jouer ensemble !

Ludum Dare

C’est le week-end prochain. Comme d’habitude, je ferais quelque chose, mais sans y passer trop de temps. Il faut que j’arrête de coder des jeux dans Squarity et que je m’occupe de Squarity lui-même. En l’occurrence, rédiger cette fameuse road-map.

En plus ça risque d’être le bordel au niveau de mon travail salarié. Ce sera une fin de sprint et faut qu’on ait un truc-machin de finalisé pour notre super projet secret dont je ne peux vous dire que le nom : « POILS_PUBIENS ». Mais je ne vais pas vous embêter avec ces détails à la con de ma vie.

Les poils pubiens de Jessie Minxxx sont-ils aussi teints en bleu ?

L’article du mois prochain ne parlera pas de Squarity, faut bien varier un peu. En revanche, je ne peux pas vous garantir qu’il sera intéressant.

Skweek Vapor-Project : un peu plus d’infos

Comme promis, voici le second article sur mon projet de jeu de réflexion inspiré de Tiny Skweeks. Encore merci à Nark pour son commentaire, sans qui cela n’eut été possible.

Réécriture des descriptions

Je reprends les dessins du premier article et je transcris les notes manuscritées à l’arrache vers du vrai texte lisible. J’en profite pour corriger les fautes et ajouter des majuscules là où il aurait fallu en mettre dès le départ. (Pourquoi je me suis fait chier à écrire ces descrips en anglais, alors que je ne me suis pas fait chier à mettre les majuscules ? Mystère…)

Niveau 1

Le texte tout en haut explique rapidement ce que fait le bouton « push me ». Il a 4 positions différentes, chacune d’elle allume ou éteint les lance-flammes et fait en même temps tourner le mur rotatif.

A skweek (badly drawn). Moves like in the game « Tiny Skweeks ».

The yellow [one] can throw flames in any direction, which melts the ice, but this is not useful in that level.

The green [one] can throw a hook in any direction (like in « furries »). If the hook is fixed on a wall, the skweek can cross the holes between him and this wall. If the hook is fixed on an ice block, [the tiny drags] the ice block to him.

He takes the ice block.

An ice block. Skweeks can push it. [It] can’t stop in the middle of its way. [It] must bump in a wall or a skweek or whatever. When an ice block bumps in another ice block, the first is stopped, and the second starts moving in the same direction.

 

This squishes a skweek when he comes in it. If an ice block goes in it, the ice block is not squished, and [the squisher is now] considered as a wall.

 

This drives the skweeks and ice blocks in the direction shown.

 

 

This stops the skweeks and ice blocks when they walk on it. But they can move or be pushed just after, in any direction.


An electric field. Skweeks die when try cross it. Ice blocks are not affected.

 

 

A hole. Ice blocks pass across it, and skweeks fall in it. When a skweek fall in the hole, another skweek can pass across it, and green ones can cross them with the hook. But all this is not useful in that level.

 

A button. The door opens when an ice block or a skweek goes in it. Door closes if button is released.

 

 

A wooden wall. The yellow [one] can burn it.

The fruits (banana and apple) are just bonuses.

 

The super-rainbow-ball. The thing to get to finish the level.

Mon avis spatio-temporel

Il est « spatio-temporel », car je m’auto-donne un avis à propos de quelque chose que j’ai moi-même fait, mais avec plusieurs années de décalage.

Le bouton avec les 4 positions est un mécanisme trop compliqué. Les petits jeux-vidéos-puzzle de ce genre doivent être uniquement constitués d’éléments simples. La complexité et la difficulté de résolution doit provenir de l’agencement de ces éléments.

Les boutons « push me » que j’ai disséminés dans les différents niveaux permettent à la personne qui joue de déclencher directement les actions correspondantes. C’est une idée stupide, car les tinies ne sont plus les seuls à agir sur leur environnement. Ces boutons impliquent l’existence d’une crétinerie d’entité omnipotente pouvant foutre le bordel en appuyant n’importe quand et n’importe comment sur des crétins de boutons placés ici et là par une autre crétinerie d’entité omnipotente (possiblement la même). Ça n’aide pas à s’immerger dans le jeu ni à se mettre à la place des personnages.

Si réalise ce projet de jeu, je ne mettrais aucun « push me ». Il faudra donc que je retravaille tous les niveaux que j’ai déjà imaginés. On n’est plus à ça près.

Niveaux 2a et 2b

The red one can punch and destroy some walls, but not ice blocks. But this is not useful here and no blocks nor walls can be destroyed here.

A wall full of spikes. Skweek dies when they go in. But ice blocks fill the hole and skweek can then pass through it.

 

This changes the direction of skweeks and ice blocks that [arrives on it]. The button connected to it changes the [rotation sense].

 

This authorizes only the yellow one to pass through, not the green one, nor the others. But the ice blocks can pass, [and the green one can shoot his hook through it].

Mon avis spatio-temporel

Deux niveaux plutôt corrects, assez simple à résoudre, qui pourraient être placés un peu après le début du jeu, lorsque les mécanismes de chaque tinies sont déjà connus et que l’on peut commencer à proposer des petits challenges.

L’élément qui ne laisse passer que les tinies jaunes est super simple (on peut même dire « atomique »). Il est indispensable. Mais ce rayon jaune-rouge qui sort de nul part est visuellement pourri et pas du tout explicite. Je n’ai pas de meilleure idée pour l’instant.

Je l’ai déjà dit : le pouvoir du tiny rouge est merdique. J’essaye de régler cette erreur dans la suite de cet article.

Niveau 3

La note « only yellow passes » écrite en bas sert juste à indiquer qu’il faut rajouter un objet ne laissant passer que le tiny jaune. Je suppose que le niveau devient beaucoup trop facile si le rouge peut récupérer la rainbow-ball. Je dois avouer que je n’ai pas encore fait l’effort de retrouver la solution.

A door, activated by buttons. If the door closes while there is a skweek on it, it is squished.

 

 

A wooden wall, the yellow [one] can burn it.

 

A crackled wall, the red one can destroy it.

 

 

A turning panel. It has an arrow on one face, and nothing on the other one. It turns when activated by a button.

 

This button turns the panel and closes the door next to the super-rainbow-ball.

 

The « push me » that is on the left operates the 4 doors on the left, like this :


+------+
| □ □□ |
|  □   | <-\
+------+   |
   |       |
   V       |
+------+   |
| □□ □ |   |
|   □  |   |
+------+   |
   |       |
   V       |
+------+   |
| □□□  |   |
|    □ |   |
+------+   |
   |       |
   V       |
+------+   |
|  □□□ |   |
| □    | --/
+------+

None can pass from right to left.

This button also opens the door of the rainbow-ball, if it is not opened.

The « push me » on the right operates the 1st, 2nd and 4th door on the right, like this :

+------+
|  □.□ |
| □ .  | <-\
+------+   |
   |       |
   V       |
+------+   |
|  □.  |   |
| □ .□ |   |
+------+   |
   |       |
   V       |
+------+   |
| □ .□ |   |
|  □.  |   |
+------+   |
   |       |
   V       |
+------+   |
| □□.  |   |
|   .□ | --/
+------+

The last « push me » on the left operates only the 3rd door, just opening and closing it.

Mon avis spatio-temporel

Ce niveau est une catastrophe.

Des push-me partout, réalisant des actions bien trop nombreuses et bien trop compliquées. À jeter dans les oubliettes de la honte sans sommation.

Voici une description très résumée de ma méthode de level design : je me donne une astuce de départ qui sera plus ou moins difficile à trouver par la personne qui joue, et j’essaye de noyer cette astuce avec des petits détails et des astuces annexes. Au fur et à mesure que je dispose les éléments, je vérifie qu’il n’y a pas une solution plus facile qui passerait outre l’astuce de départ. Ces vérifications imposent souvent d’ajouter des éléments supplémentaires de « bloquage de solution facile ». Parfois, durant ce processus, d’autres idées me viennent et me permettent d’affiner l’astuce de départ.

Dans ce niveau, mon astuce de départ était que les enchaînements de 4 portes peuvent être très facilement traversés, mais dans un seul sens. Pour réussir le niveau, il faut trouver une méthode, moins évidente, pour.les traverser dans l’autre sens.

C’est pas clair ce que j’explique, et de toutes façons, ce niveau est parti en eau de boudin de manière effroyable. Je n’ai pas encore essayé de retrouver sa solution, mais il est fort possible que ce soit n’importe quoi.

Niveau 4

Faudrait que le bleu soit obligé de laisser un bloc avant de se téléporter, sinon le jaune ne peut pas se téléporter.

The blue skweek can create ice blocks in a square next to him, and of course, he can push them after the creation.

The three [wall] buttons opens/closes the door connected to it by the blue wire.

The button on (1), when it is pressed, closes the door that is just below him. When it is released, the door is re-opened.

The button on (3), when pressed, turns on the flamer connected to it. It is not turned off when released.

La note au milieu du niveau indique « invert these 2 buttons ».

On the tile marked (2) is a stop sign.

  

The two stars [are] teleporters. They work in only one sense : from the red to the white.

 

This authorizes only the blue one to go through.

 

Mon avis spatio-temporel

Je comprends pas bien la remarque que j’ai écrite en haut de la feuille. Ça me reviendrait peut-être si j’essayais de retrouver la solution.

Les lance-flammes sont une idée intéressante, car c’est un élément simple : il détruit les tinies et les blocs de glace qui passent dessus. Mais visuellement, on a un problème, qui rejoint le problème précédent. La flamme ressemble énormément au stupide rayon jaune-rouge qui ne laisse passer que les tinies jaunes. Faudrait vraiment re-réfléchir aux représentations de ces éléments.

C’est très étrange d’avoir passé du temps à élaborer ce niveau et de s’être assuré qu’il n’y a pas de solution évidente, pour finalement décider à l’arrache d’inverser 2 boutons. Ça laisse quelques doutes sur la qualité des vérifications sus-mentionnées.

Et comme d’hab’ : trop d’élément compliqués. Moins que dans le niveau 3 maudit, mais trop quand même.

Niveau 5

Séparer les boutons « press/release » et « press »

Idée : tout se résout si deux [tinies] bleus prennent chacun une énergie, mais il est au départ bien plus pratique de donner les deux à un seul (ou le contraire).

Dans plein de niveaux il y a des fils et des boutons cassés. On ne peut jamais rien en faire, sauf une seul fois à la fin.

Mon avis spatio-temporel

L’idée des énergies réparties entre les tinies est un exemple d’astuce pour démarrer la création d’un niveau.

Petit rappel : au début j’avais décidé que les tinies bleus pouvaient créer une infinité de blocs de glace, puis je me suis dit que ce serait overkill, et qu’ils auraient besoin de points d’énergie, récupérables en buvant de l’eau.

Par contre, le truc avec les fils et boutons cassés, je ne me souviens plus du tout ce que je voulais dire par là. On n’est plus à ça près.

Mon avis global sur tout ce bazar

L’idée initiale de ce projet de jeu continue de me sembler intéressante. Les personnages ne peuvent être contrôlés que partiellement, on les déplace mais on ne peut pas les arrêter où on veut. Cette idée provient du jeu original Tiny Skweek, qui n’a peut-être pas fait un carton, mais qui s’est réellement vendu et a rencontré son public. Elle est également exploitée dans un autre jeu : Atomix.

Par contre les niveaux que je vous présente ici, ainsi que la plupart des éléments que j’ai imaginés sont nuls et inutilisables en l’état. J’ai presque honte de vous montrer tout ça.

Comme je vous l’ai dit, ça date d’il y a plus de 15 ans. C’était une étape nécessaire pour ensuite imaginer Squarity et pour avoir un entrainement initial au level design. J’estime mes capacités actuelles de level design à « pas trop dégueulasse ».

Le niveau supplémentaire

Je vous avais aussi promis ça, hop !

Les tinies sont en bas à gauche, un rouge et un jaune (qui n’est pas colorié car j’avais pas de crayon jaune à ce moment là). Le jaune peut faire fondre le bloc de glace, comme d’habitude.

Le bidule au milieu à gauche est la rainbow-ball. Au milieu se trouve un bloc de glace. Le truc vert au milieu à droite est un fruit, supposément une pomme, mais mal dessinée.

Pas de stupide push-me impliquant une stupide entité omnipotente. l’unique bouton du niveau est une « pressure plate » (en haut). Lorsqu’un tiny ou un bloc de glace arrive dessus, la porte connectée par le fil rouge se referme. Elle ne peut pas se réouvrir. En résumé : n’appuyez pas sur la pressure plate, sinon c’est foutu.

Mon avis pas spatio-temporel

J’ai décidé de tester ce que donnerait le pouvoir du tiny rouge mentionné dans mon précédent article : lorsque le tiny est sur la même ligne ou la même colonne qu’un fruit, il se dirige automatiquement vers lui, y compris durant un déplacement.

Si il y a un obstacle entre le fruit et le tiny (par exemple un bloc de glace), le pouvoir ne s’applique pas et le tiny ne change pas de direction.

L’utilisation de ce pouvoir constitue l’astuce principale de ce niveau. Tout le reste autour, c’est de la broderie. Je vous laisse trouver la solution.

Je n’ai pas pris le temps de déterminer tous les cas particuliers de ce nouveau pouvoir du tiny rouge. Que se passe-t-il s’il y a un élément « stop » ou une flèche ou un trou, entre le tiny rouge et le fruit ? Est-ce que ce pouvoir s’applique lorsque le chemin pour aller jusqu’au fruit passe par un téléporteur ? Autant de questions que je n’ai pas réglées.

Les brouillons qui me restent

Tout en vrac. De toutes façons j’ai oublié le fonctionnement de ces niveaux, et même si ils étaient finis.

Un soutien (à mon petit niveau) pour ExoHydraX, une jolie jeune femme qui s’est fait bannir de Twitch, sans raison spécifique, comme d’habitude. Réseau sociaux dictatoriaux de merde (auquel je me soumets pourtant avec le sourire).

Et pour finir une superbe maquette de l’interface. (C’est dégueu et tout pensé à l’arrache).

Lâchez vos comm’ d’encouragement

Les différents succès que j’avais promis peuvent toujours être débloqués par des commentaires, dans cet article ou dans l’article initial. N’hésitez pas !!

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.