L’article de ce mois sera discount. Je ne veux pas y passer trop de temps, car j’élabore, pour de vrai, la roadmap de Squarity. J’aimerais pouvoir la sortir avant la date-anniversaire, le 26 septembre.
Par ailleurs, je vous prépare un récit corporate assez conséquent. Quand je le sortirai, je vous laisserai juger si sa qualité n’a d’égale que sa quantité.
En attendant, je vous réchauffe un bout de blabla que j’ai déjà pondu dans le Discord de Squarity.
Glorious train wrecks
Ce chapitre a pour sujet la SNCF et ses stupides employés, qui continuent de trouver que leur entreprise est glorieuse alors même que leurs trains ne font que des accidents.
Nan j’déconne !!! Partez pas !
Ce chapitre a pour sujet https://www.glorioustrainwrecks.com/, un site web inconnu qui organise des game jams de jeux amateurs « comme au bon vieux temps ».
Voici une traduction approximative du texte de présentation
Glorious Trainwrecks a pour intention de faire renaître l’esprit des « postcardwares » qui sévissaient vers l’année 1993, et vous encourage à créer des jeux en balançant n’importe quoi au hasard pourvu que ça mousse.
Glorious Trainwrecks vous ramène à l’époque où vous ne prêtiez que peu d’attention à la « valeur de production », où il était plus important de choper des sons de votre émission de télé préférée pour les mettre dans votre jeu, et de créer des images animées en faisant des grimaces devant votre webcam. Une époque où toutes les idées ridicules que vous aviez étaient bonnes à coder, lorsqu’avec vos amis, vous vous inventiez un « nom d’entreprise », afin de légitimer les délires et les moments de glandouilles que vous aviez devant votre ordinateur.
Le but n’est pas de créer des jeux non finis ou injouables. Si un accident ferroviaire est marquant, il doit l’être dans le sens où il est SUPER-COOL.
Avec vous, nous allons ramener le vrai esprit des jeux vidéos indépendants. Oui, vous ! Ce site n’a pas d’autres buts que de vous donner un coup de pied aux fesses pour que vous vous mettiez à créer. Wikipedia explique que des gens déclenchaient des accidents ferroviaires (avec des trains vides, bien sûr) uniquement pour l’amusement général de la population. Le monde ne se porterait-il pas mieux si nous faisons revivre cette tradition ?
Vous n’avez pas besoin d’avoir de talent, tant que vous avez les tripes. Votre jeu ne doit pas obligatoirement être cohérent, mais il doit être terminé.
Il est temps de plonger dans la gloire !
Je ne vois pas trop le rapport entre la création amatrice de jeux vidéos et les accidents de train, et je n’ai pas trouvé d’articles dans Wikipedia mentionnant des accidents volontaires pour l’amusement de la population. Mais on n’est plus à ça près.
Le site recense les jeux créés durant leurs game jams. J’en ai testé quelques uns, ils ne méritent pas forcément beaucoup d’attention, mais ils offrent un petit moment de fraîcheur dans ce monde de brutes.
Vous trouverez des jeux PuzzleScript, jouable directement dans le navigateur, et beaucoup de jeux créés avec le moteur Klik’n Play.
Ci-dessous, un exemple typique. Les personnes qui connaissent Klik’n Play retrouveront quelques-unes des images moches fournies par défaut, le tout formant un ensemble graphique assez disparate (et ça pourrait être bien pire).
La nostalgie renouvelable
Je me retrouve dans cet esprit, ayant passé une partie de mes années collèges sur ce logiciel, à tenter de créer des jeux trucs en balançant des images, des sons et des règles de collisions, le tout très aléatoirement.
C’est fort louable de créer des sites tels que Glorious Train Wrecks, pour permettre à des vieux comme moi de se blottir un instant dans le cocon temporel « de mon époque ». Une petite parenthèse au milieu des trépidations de la vie, pleine de vidéos Youtube placement-produitisées, d’influenceurs rentabilisés, de sites de e-commerce search-engine-optimisés et de posts Linkedin cher-réseautifiés.
Les « jeunes de maintenant » ne vont probablement pas s’intéresser à des outils de création aussi mal fichus que Klik’n Play. Certains expérimenteront peut-être Puzzlescript, à condition d’accepter son minimalisme et son langage fortement spécifique et exotique.
Mais ce serait très déplacé et stupidement conflit-générationnellesque de prétendre que les jeunes de maintenant ne fabriquent plus rien. Seulement ils utilisent des outils de création de jeux vidéos plus récents : Roblox, Scratch, Game Builder Garage, …
La seule chose qui manque, c’est un lien entre les sites nostalgico-créatifs comme Glorious Train Wrecks, et la nouvelle créativité des jeunes et de leurs outils plus actuels.
Squarity est une humble proposition pour rendre possible l’établissement de ce lien. Le moteur est simpliste et les jeux d’exemple relèvent d’un tel amateurisme, que l’on pourrait presque dire que je suis devenu un professionnel dans l’art de produire des œuvres amatrices. Mais c’est du python, et vous pouvez partager vos jeux (assez) facilement. Les jeunes de maintenant apprennent le python au lycée et souhaiteraient montrer leurs créations aux autres jeunes de maintenant.
Si, dans 15 ans, il existe une seule personne qui se plaira à se remémorer les supers jeux qu’elle avait créés durant son adolescence, avec Squarity, alors je serais satisfait. J’aurais transmis ma nostalgie à la génération future, qui la transmettra à la génération future-future, etc.
Faut juste que l’humanité et internet continuent d’exister encore pendant 15 ans, ce qui ne semble pas complètement gagné. On verra.
Mouth Trap, fait en 1989 avec l’outil AMOS sur Amiga, qui a remporté un concours lui permettant d’être publié par l’éditeur Mandarin Software.
Une p’tite pièce ou un p’tit jeu sivoupléééé
Tout ça pour vous demandez : si vous avez le temps, essayez de participer à l’un des game jams de Glorious Train Wreck avec un jeu que vous auriez créé dans Squarity.
J’avais d’autres trucs à raconter, mais en les écrivant, c’est devenu plus conséquent, alors je les mettrais dans un autre article. Ça suffira bien pour aujourd’hui !
Une femme ronde « comme au bon vieux temps », c’est chouette.
Zou. Petit article cheapos qui recycle des trucs déjà produits : les commentaires de mes revues de jeux du Ludum Dare pré-précédent. Je me permets parce que le mois dernier vous avez eu deux articles, alors ça va bien. J’oserais dire que ces commentaires comportent des descriptifs de qualité et des suggestions détaillées. Ça vaut ce que ça vaut (le vaut est un animal à poil ras).
Oh, et ça fait le deuxième article de suite qui est en anglais. Vous y survivrez, n’est-ce pas ?
Les jeux sont à peu près classés par ordre croissant de ma kiffitude personnelle. Si vous avez un peu de temps pour en tester quelques-uns, prenez en priorité ceux de la fin, qui sont justement estampillés « kiffitude ».
I encountered some bugs as other people said. But it was not too much annoying.
It is very frustrating to have McLudum giving you so many newspapers at start, and seeing nearly half of them immediatly lost, because the carriage can not hold them all.
I did not managed to get past level 2, but I’m not good at this sort of games.
There seems to be a story with your father, that’s always good to add this in a game.
Technically and visually, it is really beautiful. Voxels are cool, and I like the fact that you can see the previous level below. It makes the tower more realistic.
About the time management
However, the turn-based/real-time logic is hard to understand at first, and cancels the interest of many monsters.
I did not immediatly realize the voxel-thing on the top right is a sort of hourglass that indicates the time before the next automatic turn.
The green monsters do not move when you move in real-time (by using the space bar), so you can dodge all of them easily. But at the opposite, the arrows move at the same time of the hero, and also with the automatic turn. This combination is rather illogical. And you often have to wait automatic turns for long seconds, to dodge some arrows that passes by.
Either you use a complete turn-based logic, like the game D.R.O.D., or you use a complete real-time logic, where every elements move at its own rythm. But mixing both is weird and unpractical.
About the hammer
I thought I could break scenery objects with the hammer, in the hope of hidden bonuses, but scenery are unbreakable.
If you push « Z » without any direction, you smash the ground under you, making you fall and die.
I tried to smash the ground under skeletons with the hammer, but each time I got shot at blank point, because of the weird turn-based/real-time logic, and the fact that there is no visual information indicating that a skeleton is about to shoot.
So IMO the hammer is useless.
About the rest.
You can’t go back to the main menu when you click « how to play », and I had to reload the whole web page.
Arrows stays in place when you restart after dying.
3D is cool, but if you can not turn the camera, it is sometimes hard to see where objects are, or what is behind other objects. In an early level, I stupidly died because I did not realized a bomb has no floor under it.
Sorry for this “hard” review, but all these tiny buggy details makes your game quite painful to play, and gave me really little fun.
Nice game. You added some perspective feeling with the top half of the hero that can traverse walls, but it introduces a bug. The bullets starts inside the wall, and are instantly cancelled. You can not fire when you stand near a wall.
I liked the guards that spawns after you picked up the bionite. It adds a real importance to the fact that you get instakilled when you hold the bionite.
It needs an ending. Spoiler alert : nothing happens when you finish all the levels.
At the last level, there is a heart floating in space. Is it possible to take it, or is it just a decorative troll ?
It is sometimes hard to guess from the description which object must be brought to Uns. (I tested all the consumable objects for the « savourly ingredient »). And it’s sometime a bit long to get the object you want.
Does the object you are holding change the fights ? A sword increases the chance of not being hit, an armor absorbs some damage, … That would be cool. Also, we do not know how the level of the character affects the fights.
However, your game has a little default common to many games : there is no collision between monsters. As you turn around them, they all pack together in the same spot. Having lots of monsters is not much dangerous as having only a few. And when you hit the pack spot, it’s an XP jackpot.
I would have implemented collision handling and lowered the monster generation rate. It would have increased the feeling of being overwhelmed by your enemies. Here, they just feel “immaterial” and not so harmful.
Some clear delimitations of the game area would have been appreciated. It’s a little annoying to plan fleeing to the left and realizing you can’t because you bumped into the invisible border of the world.
And maybe add more randomness to the target movement. They straightly move in the 4 directions or the diagonals. That would be funnier and “more instable” if they moved in any direction, while changing it progressively.
Anyway, I liked this moment of monster genocide and reached level 8 !
The sprite choices are a little WTF. On one side, the teeth, syringe, pills and microbs suggest a medical world, which is consistent with the game title. (Maybe I am inside a body I have to heal ?)
But on the other side, there are fuel cans, moving fires, levers, blocks, and stars as background. It may be hard, but you should try to find “medical” equivalent to all these unrelated objects.
Level design looks sometimes strange. Some levels seems to be really big, but you only have to explore a little to find the exit. I do not know if it is made on purpose. It may be a good idea, because it suggests that you’re in a world bigger than what you are able to realize, like a body if you are a micro-organism.
It needs a scenario, or at least some explanations. What is this strange grey-ball-character I have to get ? Why is the world “unstable” ? What am I supposed to do here ?
Even with these little drawbacks, I was hooked and could not stop until I won the game.
(Spoiler alert) : I really liked the mechanic of coming back accross all the previous level.
Great game. A nice tribute to Asteroids, Lunar Lander and all of the kind.
Controls are hard, but that’s totally assumed in this sort of game.
The GUI is quite messy. Writing « status » next to a bar graph does not help. The status of what ?
I took some time to realize the status is the health of the Earth. I suppose it decreases when a satellite escape from the screen and crashes on the Earth, and it regenerates with the time. But I’m not even sure it works like that. It seems to randomly increase and decrease.
Also, if it works like this, what about burning satellites which you can’t destroy ? Do they make the status decrease ? If yes, it’s rather unfair.
The spaceship health bar is shown on several little ship. It looks like you have several « discrete » lives. But in fact it is a continuous health bar splitted in 5 « mini-health bar ». That’s quite uncommon. And the visual difference between an empty mini-health bar and a full one is not strong enough. It’s hard to quickly take account of your whole current health, whereas it’s the most important thing in the GUI !
As some other people did, I played the whole game with the mouse button pressed, so this feature is useless. Do an automatic metal collect, or add the necessity to aim a satellite with your mouse.
I like the initial radio communication, to set a plot and to explain how to play. Just one thing : you choosed silver as the metal collected from satellites, to express it is valuable and to justify the fact that the player is paid for that. But then the player beams all this precious silver to the earth to have it destroyed in the atmosphere. What a spoil ! It would have been more consistent to tell that the player collects scraps, destroys them, and then the human on earth are so happy with it they instantly pay the player.
Apart from these little drawbacks, the graphics are really cool, the sound is good enough and it’s really fun to play. It gives this incentive of « just one last play to see if I can get more upgrades ».
Congrats !
ecosystem except there is no equilibrium and everyone dies probably
kiffitude de type : c’est un jeu où on code + la personne ayant créé le jeu assume totalement que tout a été fait à l’arrache.
I love the concept, and I also love all the clues revealing that you may have realized the game in a sort of urge :
the main title
the url of the game : « i-cant-think-of-a-name »
the ludum description : « …actually that tagline doesn’t really make sense anymore. »
the in-game description : « I didn’t have time to write a good tutorial, but I do have examples »
This game is totally experimental and raw, which I love too.
In case you do not know it, you should visit the site codingame.com, where you will find plenty of bot-coding games, to compete against other people. And maybe you should also test the old text-mode video game ZZT, which has its own level editor and its own programming language.
Thank you, and keep up experimenting !
Volatile Defender
kiffitude de type : jeu squaritable + graphisme + « allez juste une dernière partie ».
I did not want to look at the tutorial at first, and did not realize you could look back whith the « space » key. It may be a good idea to tell this action in your game description.
I like the fact that robots destroy bonuses when they walk on it, it adds some strategy, with choices like : « I should keep this bonus on the ground for later, but I take the risk to have it eaten by a robot ».
IMO, the hero is a little too slow to move from one tile to another, and the bonus lasts a little too short. It generates a little frustration because a big part of the bonus advantages are lost, as you fire in the void while moving in front of your next target.
Really great graphisms and music. The best I have seen for this Ludum Dare, so far.
Parcel Panic
kiffitude de type : j’adore le mini-univers du jeu + j’ai totalement trippé dans mon commentaire.
The difficulty of the game, that many people felt, would not be a problem if it was brought gradually. It may be a good idea to use all the suggestions in previous comments to make the game easier, and removing them as the player progresses.
lower global speed (player movement and energy loss).
parcels and energy bar stays longer on the ground, then you make them stay shorter.
the parcel destination is directly marked on the map and does not go away.
then the parcel destination is indicated on the bottom, as it is now, but it does not go away.
then the parcel destination goes away.
then some parcels may be heavier and slows you down when you carry too much of them (instead of decreasing your energy faster, which you don’t really realize while you play).
then, why not making it more difficult than it is now ? Remove the letters on the buildings ! After all, you know this place by heart now.
The possibility to cycle between the parcels you own may also be a good thing. So that you can optimize your deliveries. To keep track, in your own memories, of the parcels destination, they could look different. Like in the reality.
I really liked the small world where you are. The road to the left is here to show this world is inside a greater one, but you know nothing of it. It increases the microcosm effect. While playing, I felt like the local hero of the quarter, the person who everybody knows, and who is useful for everybody.
I really like the fact that you put different building types. A, B, C, I, J and K are clearly house of rich people, with fences to be protected from the others. D, E and F looks like middle-class houses. G and H are big buildings where all the poors pack themselves. Even in a small world like that you can make appear social differences, which is an interesting idea.
The post office may not be a good idea. It suggests that this small world has contacts with the outer world. I would have put a more local building : « the janitor desk » or something like that.
An idea comes to me while I’m writing this comment. You should have different types of parcels, and use them as collectibles in the game. You could have a menu where you see the list of all the collectibles you gained, and read their descriptions.
You could have parcel types that clearly shows that the expeditor and destinator hate each other, and other that shows they love each other, or many other feelings.
Here are some ideas :
a letter with a heart drawn on it,
a present that looks really expensive,
a postcard that you can read,
a letter whose address is written like : « old dork Jack »,
a parcel with white powder on it,
a beer pack,
a parcel that smells shit,
a dead animal,
a bullet,
…
As you play a game, you could imagine and guess the life of all the people in the microcosm, as you learn which type of things they send to each other. How would you feel, as the local delivery hero, when you end up knowing everything of all you neighbors ?
When a game starts, you could randomly choose some specific situations, that the player would discover progressively : a rich house that sends parcels with white powder to all the middle-class and poor buildings, two middle-class neighbors that sends normal parcels at the beginning and then hate parcels (bullets, dead animals, …), expensive presents sent from a poor buildings to a rich house without any returns, love between a rich and a poor, …
Whoa, I realized I totally tripped on this game. That was cool. Thank you for your game. Do what you want with all these weird ideas.
Voili voilà
Et voici Chun Li en version un peu plus ronde que d’habitude.
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.
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.
2 : Terminer en packageant mes très vieux programmes Pascal que j’écrivais au lycée et à l’UTBM, et les mettre à disposition ici.
3 : Écrire un article de blog émouvant dans lequel j’explique que je me sens prêt à démarrer un gros projet créatif. Expliquer que ça fait un peu peur, que jusqu’à maintenant, le peu de projets que j’ai réussi à mener jusqu’au bout étaient soit de taille moyenne, soit une succession de mini-projets (par exemple, tous les articles pour le magazine 42). Ajouter qu’il est fort possible que j’abandonne au bout de deux mois pour cause de découragement honteux, ou pour cause de découverte d’une toute nouvelle idée que je croirais encore meilleure. Terminer l’article en demandant à mes lecteurtrices, avec des trémolos dans la voix, quelques commentaires de soutien pour ce nouveau projet, même si je ne l’ai pas du tout décrit pour le moment. Insister sur le fait qu’un soutien inconditionnel de leur part serait une magnifique démonstration de fidélité, rappeler (toujours avec des trémolos) que ce blog existe depuis plus de 10 ans et que certains d’entre vous me suivent depuis plusieurs années.
4 : Espérer deux ou trois commentaires de soutien, pas plus, pour ne pas être déçu.
5 : Travailler pendant un mois ou deux sur ce projet secret.
6 : Écrire un nouvel article, montrer la première version du projet même si elle est bancale. Expliquer que c’est une plate-forme de création de mini-jeux web en 2D sur une grille. Annoncer qu’il suffit de savoir coder un peu en python pour créer des premières choses toutes simples. Ajouter qu’il n’y a pas besoin d’installer de logiciel ou de s’inscrire (mais il faut quand même un compte github pour partager ses jeux). Arguer du fait que, même si la plate-forme est simple, sa souplesse permettrait de créer des jeux très variés tels que des Match 3, un Laser Tank, voire des jeux de stratégie comme Advance Wars. Préciser tout de même qu’il ne sera jamais possible de placer des objets à cheval entre deux cases de la grille, que c’est un choix conscient destiné à assurer la simplicité. Donner l’exemple de Zelda sur la NES, qui ne serait pas recréable sur cette plate-forme puisque le personnage peut se trouver entre deux cases. Terminer sur un ton faussement humble en disant que je me suis inspiré de PuzzleScript, Drod et même ZZT.
7 : Écrire une doc, pas forcément complète ni bien peaufinée, mais qui expliquerait au minimum comment créer et partager des jeux. Espérer que quelques personnes commencent à s’y mettre, même si c’est rustique et pas du tout ergonomique dans un premier temps.
8 : Améliorer encore le projet pendant quelques mois.
9 : Participer au Ludum Dare (une compétition de création de jeu en un week-end). Ne pas s’attendre à un glorieux classement, mais utiliser cette participation pour montrer la plate-forme au plus de gens possible.
10 : Éventuellement, créer une vidéo ou un stream sur twitch montrant la genèse du jeu créé pour le Ludum Dare. Utiliser cette vidéo comme tutoriel et comme démo de ce qu’il est possible de faire.
12 : Donner rendez-vous aux prochains Ludum Dare, tous les 6 mois. Indiquer que l’on profitera de ces compétitions pour s’imposer des dead lines fixes, qui devraient apporter la motivation nécessaire pour produire régulièrement de nouvelles versions de la plate-forme.
13 : Continuer comme ça sur plusieurs années, et voir jusqu’où ça nous mène.
Pour l’instant, ça mène ici.
Ce qu’il s’est réellement passé
1 : Réaliser qu’il n’y a plus que quelques mois avant les grandes vacances, et qu’on aimerait avoir une première version du projet à ce moment là.
2 : Laisser en plan le packaging des vieux jeux Pascal.
3 : Réaliser une première version ultra à l’arrache de la plate-forme, afin de pouvoir la montrer aux potes qu’on retrouvera pendant les vacances.
4 : Ne pas oser parler de ce projet aux potes en question, parce que l’occasion ne s’est pas présentée et que j’ai toujours l’impression de passer pour un mendiant quand je quémande de l’attention aux gens, même quand c’est mes potes.
5 : Continuer de bosser sur le projet, pester intérieurement que, comme toujours, ça avance trèèès lentement.
6 : Au passage, créer une chaîne twitch et s’amuser à streamer des Clash of Code, même si ça n’a absolument rien à voir avec la choucroute.
7 : Réaliser que le prochain Ludum Dare est dans à peine quinze jours, que la plate-forme est à peu près utilisable mais pas du tout documentée, qu’on n’aura pas forcément le temps de la documenter d’ici là, et qu’on n’a rien annoncé pour l’instant.
8 : Jeter à la gueule de ses lecteurtrices le lien vers la plate-forme : http://squarity.fr.
10 : Espérer que l’on arrivera à faire quelque chose de pas trop pourri pour le Ludum Dare.
11 : Continuer comme ça sur plusieurs années, et voir jusqu’où ça nous mène.
Pour conclure, inévitablement
12 : Expliquer que le mot « squarity » signifierait « la carrétitude », puisque les jeux sont créés sur un quadrillage en 2D. Ajouter que le fait d’aimer les carrés n’empêche pas d’aimer aussi les courbes. Pour illustrer ce propos, insérer une image de Myesha Boulton :
13 : S’endormir sur son clavier parce qu’il est tard.
Au cours de mes diverses tâches dans le monde de Le Travail, j’ai dû utiliser à l’arrache la librairie graphique D3.js.
C’est plutôt rigolo, même si je n’ai pas tout compris. À un moment, je trashe puis reconstruis de zéro toute la structure de données définissant ce qui doit être représenté à l’écran. Sans sourciller, le D3 me fait une gentille petite animation de transition entre l’ancienne et la nouvelle structure. Très pratique, mais très étrange.
Notons cependant que ça reste du putain de javascript, c’est à dire un langage comportant 6 façons différentes de parcourir un tableau, pas forcément équivalentes entre elles.
(ici on pourrait mettre une image faisant un jeu de mot entre « D3 » et « Detroit », mais ne sommes-nous pas au-dessus de tout ça ?)
J’ai profité de ces connaissances joyeusement glanées pour créer un tout petit jeu.
Il s’agit d’un hommage à Eye Of The Beholder. Vous devez associer les armes, armures et objets aux différentes classes de personnages qui savent les utiliser. Attention, malgré le fait que j’ai regroupé certaines de ces classes, il y a des objets qui doivent être associés plusieurs fois. De plus, je ne peux totalement garantir que mes souvenirs soient restés exacts, s’il y a des oublis ou des erreurs, n’hésitez pas à me le hurler dessus.
Le jeu peut fonctionner en local, et il est configurable assez facilement. Les associations à trouver pourraient être entre des gens que vous connaissez et leurs hobbies, entre des fruits et leurs couleurs, entre des recettes de cuisine et leurs ingrédients, etc. Toutes les explications et les ressources sont dans le repository github prévu à cet effet.
Réflections à 2 centimes sur le cis-genrisme dans les jeux vidéos.
« Cis-genrisme » est un mot que j’ai plus ou moins inventé, sans trop savoir exactement ce qu’il pourrait signifier. Débrouillez-vous avec ça.
Et tant qu’à tout mélanger, j’ai aussi balargué de l’écriture inclusive dans le jeu. Il y a des gens qui n’en ont rien à foutre de l’écriture inclusive, donc ils ne l’utilisent pas. Mon but est de montrer que je n’en ai encore plus rien à foutre, à tel point que ça ne me dérange pas de l’utiliser.
Ouais bon bref.
Il ne vous aura pas échappé qu’il existe différents types de jeux vidéos :
Ceux qui sont tellement azimutés et vaporeux qu’ils ne peuvent être ni pour ni contre le cis-genrisme. Par exemple : Osmos, un jeu dans lequel vous êtes une bulle (https:// www. osmos-game.com/).
Ceux qui montrent explicitement qu’il existe d’autres manières de penser que le cis-genrisme. Par exemple Dys4ia, de Anna Anthropy (https ://fr. wikipedia.org/wiki/Dys4ia).
Ceux qui s’en foutent complètement.
Ceux qui sont explicitement cis-genre, voire explicitement sexiste, sans forcément l’assumer.
Eye of the Beholder irait plutôt dans la catégorie « qui s’en foutent ». Mais, sans le faire exprès, il a peut-être un tout petit peu contribué à faire évoluer les esprits.
Comme dans tout bon jeu de rôle qui se respecte, vous devez initialement créer vos personnages, définir leur métier, leurs attributs, leur genre et leur trombine. Le panel de choix est le suivant :
Certes, il y a moins de femmes que d’hommes, une partie d’entre elles montrent leurs nichons, et je vous laisse débattre sans moi concernant la présence d’un voile.
Pour autant, ces femmes que nous voyons ne sont pas toutes à sourire bêtement et ne sont pas toutes féminisées à outrance, certains visages sont mêmes suffisamment marqués pour laisser imaginer des personnalités spécifiques (une borgne, une toute verte, etc.). À l’heure des polémiques sur les princesses Disney qui ont toutes la même gueule, un jeu vidéo vieux de plus de 10 ans a essayé de diversifier les personnalités des femmes dans un espace délimité par un rectangle de 257×100 pixels (https ://every-flavored-bean.tumblr.com/post/112569173199/every-woman-in-every-disneypixar-movie-in-the).
C’est toujours ça de gagné.
Les têtes, les genres et les noms que vous choisissez pour vos personnages n’ont aucune incidence dans la suite du jeu, mais ça en a peut-être sur vous-même.
Si vous n’êtes pas trop débile, vous placerez systématiquement votre guerrière en première ligne et votre prêtre à l’arrière, vous confierez le livre de sorts à votre magicienne et les outils de crochetage à votre voleur. Ces choix sont contraints par le fonctionnement du jeu.
Mais qui attaque en premier ? Qui est placé derrière qui ? Comment organisez-vous les objets dans les inventaires ? Qui(s) stocke(nt) la nourriture ? et les potions ? et les bijoux ?
Comme ces choix sont mineurs et sans grandes conséquences, peut-être que vous les prendrez en vous laissant inconsciemment influencer par d’autres détails mineurs. Les noms et les visages de vos personnages ne changent pas le jeu, ils changent la manière dont vous allez vivre le jeu. Et puisque notre comportement global d’humain est déterminé par nos expériences passées (réelles ou virtuelles), ils changeront aussi votre vie, même infinitésimalement.
Mais ce n’est pas exactement de ça dont je voulais vous parler.
Re-regardez bien tous ces portraits, aussi bien les hommes que les femmes. Deux d’entre eux apparaissent dans les deux genres :
Dans Eye of the Beholder, vos personnages peuvent avoir un aspect physique ne permettant pas de déduire si c’est un homme ou une femme. Appelez-ça comme vous voudrez : hermaphrodite, neutre, asexué(e), non-cis-genrifié-e, inclusi(fve), inclusifive, inclusisix, inclusiseven, …
Il est probable que l’intention initiale n’était rien de plus qu’augmenter artificiellement le panel de choix, sans nécessiter plus de travail pour les graphistes. Mais c’est là. On peut s’amuser à penser que ça ait hypothétiquement aidé quelques personnes à entrevoir plusieurs possibilités d’être.
En ce qui me concerne, ça m’a rappelé que je n’ai jamais vraiment joué aux jeux Eye of the Beholder 2 et 3. Faudrait que je trouve le temps de m’y mettre, même s’il paraît que le 3 est pourri.
Youhou !
Je vous laisse avec MechaLilith, en une not-so-related-pic.
En tant que jeux-vidéologue de renom, il est de mon devoir d’en nommer les éléments récurrents. Ceux-ci créent des codes techniques et narratifs, et démontrent que le jeu vidéo est un art au même titre que les autres.
C’est un peu comme les figures de style en littérature ou les différents types de prises de vue au cinéma (ralenti, traveling, plan subjectif, …).
Voici donc la définition du jour :
Le backwalk est un type spécifique de passage secret, placé en général au début d’un niveau, dans lequel le joueur doit faire demi-tour et découvrir une zone située à l’opposé du déroulement normal du niveau.
Désolé pour l’anglicisme du terme, ça fait tellement plus mieux.
La plupart des backwalks se trouvent dans les jeux de plate-forme 2D, pour lesquels le déroulement normal est intuitivement fixé de la gauche vers la droite. Le fait de penser à aller voir ce qu’il y a à gauche n’étant alors pas forcément évident.
Donkey Kong Country, sur la Super NES, en contient un exemple des plus typiques (https ://www .youtube.com/watch?v=whp2Y_MjTXs).
Il est assez amusant car la zone secrète correspond à l’endroit d’où sort le personnage. C’est à dire que celui-ci aurait pu de lui-même y prendre les bonus, mais il est manifestement trop stupide pour le faire. Le demi-tour du backwalk implique d’aller là où on n’est pas censé aller ; ce n’est pas forcément l’endroit où se trouvait précédemment le personnage, mais dans cet exemple, si.
Des jeux moins connus s’en sont également dotés, comme Targhan (https ://www .youtube.com/watch?v=EDqCQScMvj8).
Ce n’est pas réservé qu’aux jeux en 2D, puisqu’on en trouve un dans l’épisode « Lunar Apocalypse » de Duke Nukem 3D (https ://www .youtube.com/watch?v=6HKjYgd3Z4k).
Comme pour Donkey Kong, la zone secrète se situe à l’endroit d’où vient le personnage. Duke serait donc aussi peu malin qu’un singe pas bien malin. Heureusement que le joueur est là pour fournir sa propre intelligence.
Terminons ces exemples sur un cas un peu particulier : l’épisode 4 de Commander Keen (https:// classicreload.com/commander-keen-4-secret-of-the-oracle.html).
Le backwalk est dans la carte globale du jeu au lieu d’être dans un niveau.
Il n’est pas vraiment sous la forme d’un demi-tour. Il faut penser à explorer son propre vaisseau alors qu’on est censé aller dans des spots situés plus loin.
Il ne permet pas de récupérer des bonus, mais seulement d’accéder à un élément de narration environnementale : une image détaillée du vaisseau de Keen.
Et donc, dans Dead Cells…
le Cimetière du Val (le niveau juste avant le deuxième boss) semble comporter un backwalk. On démarre en sortant d’une maison-crypte. On à l’impression qu’il serait possible de monter sur le toit pour ensuite continuer à gauche et récupérer quelque menu fretin. Malheureusement, le personnage ne saute pas assez haut. Plus à droite se trouvent parfois des plate-formes en hauteur, mais trop éloignées pour être utilisées comme point de départ d’un grand saut horizontal vers la gauche.
Étant très fort et plein d’astuces, je me suis doté de deux objets spécifiques :
Une amulette ajoutant un saut supplémentaire : ça ne permet pas d’aller plus haut, mais de rester en l’air plus longtemps, ce qui est déjà ça.
Le fouet électrique : une arme avec une cadence de tir rapide, conférant une lévitation momentanée à chaque coup. (Je ne sais pas si c’est encore le cas dans les versions plus récentes du jeu).
Je suis alors parvenu à réaliser quelque chose de ce genre :
Et j’ai atterri in extremis sur le toit, tout heureux.
Puis j’ai continué à gauche, et là, déception, on est bloqué par un mur.
Attention spoilers : il y a quand même des backwalks dans Dead Cells, placés ailleurs. Je vous laisse les trouver.
Et sinon, toujours à propos de Dead Cells
J’aime beaucoup. Voici en vrac les éléments qui me plaisent.
1) Du pixel art et une ambiance glauque, constituant la marque de fabrique de deepnight, l’un des membres de la Motion Twin. Prenez le temps d’admirer le décor de fond, vous y verrez des instruments de torture d’un mauvais goût tout à fait assumé : dame de fer, pilori, chaise de Judas, …
2) Une capacité à créer un monde riche et cohérent, en employant très peu d’éléments narratifs et une parcimonie de dialogues (de toutes façons, le héros n’a pas de tête, il ne communique que par signes). Je vous invite à vous rendre dans le Sépulcre Oublié, pour une discussion courte, mais assez énigmatique.
3) Le fait que le jeu soit annoncé comme « non terminé » (même s’il reste totalement jouable et très intéressant), et que chaque mise à jour apporte, non seulement son lot de nouvelles armes et niveaux, mais également des ajustements d’équilibrage, de gameplay, etc.
Ça prouve qu’ils travaillent intensément à peaufiner les moindres détails et à offrir des dizaines de styles de jeux possibles et viables, qui vont bien au-delà du choix « arme à courte portée / arme à longue portée ». Ce n’est pas les premiers créateurs à avoir ce genre de démarche, mais je le signale quand même.
4) Les « suspensions d’incrédulité » spécifiques au média du jeu vidéo ont été intégrées dans le scénario :
les niveaux sont générés plus ou moins aléatoirement -> un personnage explique au début que « cette île change constamment de forme ».
le héros meurt à chaque fin de partie -> on ne dirige pas exactement ce héros, mais une espèce de masse verdâtre qui prend le contrôle d’un corps, que l’on suppose ne pas être le même à chaque fois.
Ça m’a un tout petit peu fait penser à la manière dont Planescape Torment a pris en compte le thème de la mort, même si on en est très loin, car ce n’est pas le même jeu, pas le même budget et pas les mêmes prétentions.
Voilà
Et comme toujours, on finit sur quelque chose de sympathique. J’ai bien vu que les petites onomatopées du schéma de saut vous avaient plu. Voici donc à nouveau une image qui fait « dzoïng ».
Je viens donc officiellement de terminer une quête principale qui me tenait à cœur, depuis un an. À savoir : [Créer un espèce de jeu vidéo]. En mode solo !
Qu’a apporté cette quête à ma fiche de personnage ?
La compétence [programmation python & pygame] niveau 1.
L’achievement [auto-satisfaction pour avoir mené un gros projet de création artistique jusqu’au bout]. Je l’avais déjà gagné deux fois : ici et ici.
L’achievement [gagner du poignon autrement que par un boulot-alimentaire, sans vendre d’armes ni de drogues]. En effet, j’ai reçu 55 euros de dons de la part de connaissances plus ou moins proches : 50 euros via Ulule et 5 en liquide sous le manteau. Un grand merci à ces généreux donateurs. J’ai écrit, pour chacun de vous, des compliments plus ou moins personnalisés (http:// fr.ulule.com/blarg/comments/).
Le haut fait [réaliser tous les bruitages d’un jeu vidéo avec la voix]. Je compte le re-obtenir lors de quêtes ultérieures.
Quelques pourcentages dans le skill [dessin avec des logiciels super-pros tels que Paint ou Pixia]. Mais je ne compte pas le développer plus que ça. Je sous-traiterais les crafts qui y sont liés, en les proposant sous forme de quêtes annexes.
Quelques foirages de Pygame
Lors de ma quête, j’ai eu l’occasion d’harvester quelques bugs présents dans cette librairie pythonienne. Il y eut d’abord cette sombre histoire de dirty sprite, dont j’ai déjà parlé ici.
Bel exemple de dirty rect
J’ai également relevé un couillage géant lors de la mise en plein-écran de résolutions exotiques, par exemple 400×300. Ce couillage peut varier diversement : affichage tourné à 90 degrés, curseur de souris décalé, …
Et pour finir, il y a des « schmürtzes » dans la variable event.unicode, censée contenir le caractère correspondant à la touche appuyée, pour laquelle l’événement « event » a été généré. (J’aime bien cette phrase, elle est alambiquée à rallonge. Par contre, désolé pour le mot « schmürtz ». C’est ringard, c’est le tic de langage d’un collègue,et j’avais envie de lui piquer, gratuitement).
Ouais donc, cet event.unicode est censé gérer toutes les subtilités du clavier : diacritique, dispositions qwerty/azerty/autres, majuscules-minuscules, touches muettes pour activer les accents bizarres, etc.
Sauf que ça va pas toujours bien.
Le tout premier texte en unicode
Sur Mac, certaines touches censées ne rien écrire (flèches de direction, F1, F2, …) ont un caractère dans leur event.unicode. Caractère non-imprimable, certes, mais présent.
A l’inverse, sur PC, le slash du pavé numérique donne un event.unicode vide, alors qu’il devrait valoir « / ».
Le changement qwerty/azerty ne fonctionne pas forcément bien. (Je ne sais plus trop les détails).
Tout ce bordel fera peut-être l’objet d’articles plus poussés, ou de rapport de bugs sur le site pygame.org. Mais c’est pas garanti, car :
j’ai la flemme
ces problèmes ne sont pas critiques
j’aime bien râler dans mon coin sans rien régler.
Bref, à part ces quelques schmürtzes, tout a globe-allemand bien fonctionné, et je réitérerais le même mode de fabrication, de demande de dons et de distribution, pour des œuvres futures (jeux vidéos ou autres). Faut juste que je me bouge le cul et que je m’y mette.
Oui tiens au fait, que va-t-il se passer ensuite ?
Pour commencer, je vais reprendre ce blog en main afin de le sortir de sa jachérisation. Je vous propose d’ailleurs de commencer tout de suite, avec des nichons dans un maillot de bain poilu.
Voilà. Ne me remerciez pas, c’est naturel.
Je vais également rattraper mon retard concernant les articles récapitulatifs d’articles de 42. J’ai 2 numéros à annoncer, hop hop, au boulot, feignasse de cerveau.
Je suis d’ailleurs toujours dans la fringante équipe de rédaction de ce webzine polysomique. Faut que je m’y replonge. Je voudrais pas m’éloigner de cette excroissance multirécidiviste du web.
Et comme vous vous en doutiez, j’ai un autre projet de jeu vidéo en cours d’élaboration. Ça s’intitulera « Kawax », et se sous-intitulera « Le stagiaire et la machine à café ». Pour l’instant je n’en dis pas plus, c’est ultra-secret.
Et maintenant, en route vers de nouvelles aventures !!
Du nouveau concernant des trucs pas intéressants ?
Oui ! Plein ! Au niveau de le mon super Travail d’ouvrier-codeur, j’ai appris, du jour au lendemain, que ma mission à Merluchon Corp se terminait.
Nan j’exagère, c’était pas du jour au lendemain, c’était de la semaine à la semaine suivante. J’ai juste eu le temps de faire mon pot de départ au Riesling.
Donc là présentement, il y a quelques chances que me sois offert un peu d’inter-contrat de glanderie, à coder des macros Visual Basic pour des besoins internes. (« Besoins internes » ne signifiant absolument pas : « je sens dans mon corps qu’il faut que j’aille faire caca »). Après, je risque de me re-taper de la grosse merde niveau transport. Exactement comme ce que je racontais ici-même, y’a deux ans.
Dans tous les cas, j’espère que mes prochains environnements de le Travail m’offriront la possibilité de vous éjaculer plein d’articles corporate.
(Et maintenant, en route vers de nouvelles aventures)-bis !!
À part ça, j’ai écrit diverses turpitudes dans le dernier magazine 42. Je les listerais ici, plus tard. Vous pouvez aussi les trouver par vous-même, et lire les articles des autres gens, qui sont des humains assez fonctionnels.
Cependant, « jachérisation » ne doit pas signifier « absence de plaisir des yeux ». Voici donc quelques photos de la mignonne Rachel Aldana, avec et sans sa copine Denise Milani. Des femmes pas hyper-rondes, mais avec des formes comme j’aime bien. Et puis, l’un de mes amis ingénieur philosophe joueur d’échec le disait si bien : « tout cul tendu mérite son dû ».
J’ai fait une époustouflante BD. Elle était originellement destinée au dernier numéro de 42. M’y étant pris quelque peu à l’arrache, elle n’a pu y être incluse.
Ça parle de Famille de France, association bien connue, qui lutte contre les vilaines choses choquantes des jeux vidéos, alors qu’ils n’y connaissent rien. De mon côté, je ne connais rien à Famille de France et ne suis donc pas en mesure de contrer leurs arguments de manière structurée. Mais comme je suis un jean-foutre du monde réel, j’ai le droit.
L’héroïne de la BD représente le stéréotype d’une membrette de cette association. Je me suis inspiré des dessins humoristiques qu’en avait fait Joystick, à l’époque où ce journal se fritait avec eux. Cette dame a une étrange ressemblance avec Olive Oil, la copine de Popeye. Je sais pas pourquoi. Et de toutes façons je n’ai plus ces vieux Joystick, je les empruntais à la bibliothèque.
Le message sous-jacent a la forme d’un serpent qui se mord la queue. Mais vous trouverez ça tout seul.
Il y a de la violence, des jeux de mots particulièrement honteux (saurez-vous les déceler tous?) et des onomatopées bien débiles. J’adore les onomatopées débiles. Y’en avait plein dans mes BD de gamins. Et j’avais vraiment envie de les retrouver dans le monde réel. Ça m’aurait tellement rassuré. Alors je les disais tout haut, je faisais des (je suppose que je ne devrais pas vous raconter ça) bruitages tout le temps: « Zioup! Boing! Peng! Ow! Er…Er… » Les gens me disaient d’arrêter mes enfantillages et se foutaient de ma gueule. J’étais supposé me sentir coupable de faire ces sons, alors que moi je savais bien qu’ils existaient quelque part.
Aujourd’hui, ici, je hurle toutes les onomatopées que je veux et j’en suis heureux et fier. Plus personne ne peut rien contre moi. C’est ma vengeance inutile et puérile, mais qu’est-ce que je me sens bien. Tous ces gens dont je viens de parler, ils sont peut-être tous morts.
Ah c’est embêtant, je viens de vous raconter beaucoup trop de choses. Du coup, ça ne donne plus du tout l’impression de « oh, j’ai créé une petite BD sur un coin de table, je vous la jette en pâture, tel un pourboire de grand-bourgeois, car voyez-vous, je suis tellement rapide et doué pour faire ce genre de petites choses que je les balargue par boîtes de 14. » En réalité, ça m’a pris du temps pour la faire, même si y’a que trois pages. Je suis très lent à dessiner. Alors ces dessins, ils ont de la valeur, un point c’est tout.
N’est pas blogueur BD qui veut. Et ça tombe bien, je veux pas. Pour moi, c’est plus facile de faire du texte et d’y ajouter des images désolantes, piquées un peu partout, que de faire des dessins from scratch. Mais pour cette fois, en voilà toujours un peu.
Click on the images to enlargir your penis, puis, clique a second fois with le curseur en loupe pour megalargir your peanuts.
Et pour finir sur une note sexy, voici des vrais dessins, réalisés d’une main de maître par un certain Giovanni. Oui ce sont des caricatures. On a bien le droit de dessiner ses fantasmes.
Voir le premier commentaire de cet article pour un lien vers d’autres dessins de Giogio.