Showing posts with label nostalgy. Show all posts
Showing posts with label nostalgy. Show all posts

Tuesday, December 28, 2021

Prince of Persia

J'avoue que quand j'ai vu "le making of de Prince of Persia" chez Third Editions juste avant Noël (dernier), je me suis dit que je n'avais pas besoin de chercher plus loin un cadeau pour mon frangin. Il m'avait avoué avoir aussi commandé quelque-chose pour moi chez eux, donc j'étais convaincu qu'on allait s'échanger le même bouquin au pied du sapin. Tellement convaincu que j'ai laissé le sien bien au chaud dans son emballage, histoire de ne pas gâcher le plaisir de la lecture *du mien*.

Sauf que non. J'ai eu quelque-chose d'autre. Et la lecture du making of aura attendu encore et encore, le livre continuant d'être sur la table de chevet de mon frère. Jusqu'à ce Noël ou j'ai réussi à le convaincre (nouvelles  BD à l'appui), qu'il parviendrait bien à s'en passer une semaine ou deux.

I know: I could have read Jordan Mechner's notebook years ago ... and I did read some snippets. But having it published in french meant that I could offer it to my brother: he's the collecting one in the family. I thought he would offer me a copy but it turned out he offered something else. So I had to wait until I could borrow him his gift ^^".

Deux ans après avoir numérisé les premières séquences vidéo où son frère court et saute, Jordan Merchner prend conscience qu'il manque quelque chose de fondamental dans son prototype de Prince of Persia: des objectifs.

La princesse à la fin du jeu n'est qu'un trophée. Il faut des récompenses dans le jeu comme battre un garde dans Karateka, attrapper une pac-gomme dans Pac Man ou compléter un niveau dans Lode Runner.

A ce moment-là, son jeu autorise l'exploration libre de grands niveaux (plus d'une 20aine d'écrans). Il n'y a pas encore de combats. Il n'y a pas moyen d'anticiper à quelle distance on est encore de la sortie du prochain niveau. Si on tombe dessus, on se dit "ah ok ? c'est la sortie, alors". Pour qu'il puisse y avoir sentiment de récompense, il faut que le joueur ait pu anticiper qu'il avait quelque-chose à réussir.

On peut se retenir pour la tâche suivante, attendre le bon moment avant de se dire "Ok. Maintenant!" et se plonger dans une période de tension plus forte, avec une grande chance d'avoir un contretemps ou un succès. Prince of Persia n'a rien de tout celà pour le moment (12/11/1988). Si le sous-objectif est de finir le niveau, il faut un indicateur visuel de où on en est.

Il faudra que je sois attentif à ce genre de chose dans Bilou. La bonne nouvelle, c'est que les bonus-à-ramasser donnent facilement des petits objectifs intermédiaires. Il se pourrait que ce qui ne m'a pas plus dans les collect-a-thons, c'est justement cet absence d'objectif (ou alors un objectif caché, du style "bon, il reste 8 Lums dans ce niveau. génial. Où est-ce qu'on achète une boussole à Lums ?)

#collect: at some point in 1988, Jordan Merchner realises that it is important in an action game that the player knows what are the next goals they're after. What is the next reward I can get (a power pellet ? completing a level ?), and how far am I to reach it? That was obvious in games like Lode Runner or Pac-man, and by that time, there was no such feedback in the Prince of Persia prototype (before he adds swords fight to the game). There cannot be satisfaction of reaching a goal if there is no way to anticipate the goal.

I'll have to be careful about that in Bilou, especially regarding the use of collectibles as a progress indication. It could be what made collect-a-thon uninspiring to me: okay, you got a feedback that you haven't found everything, but that's an incomplete feedback because it doesn't show you what the next objective is. It's like if pellets in pac-man were actually invisible. Same for the 'remaining Lums' in Rayman 2: I have no Lums compass to find them!

edit: okay. Bouquin fini. Bonne histoire, bonne lecture, mais il faut reconnaître un truc: Jordan ne s'est pas particulièrement étendu sur les aspects techniques du développement. Pas beaucoup plus sur les niveaux eux-même. Ce n'est pas si étonnant. Quand il bosse, il bosse. Il ne prend pas des notes sur "pourquoi on met une potion l et pas ici". Il prend des notes quand il rumine. Et pour tout ce qui est 'bon comment on va faire ça sur 8-bit', voyez plutôt le portage C64. (par contre, le code source est publiée sur github)

On y retrouve les schémas expliquant comment les graphismes sont découpés dans le bouquin, et deux ou trois autres trucs du genre, mais on ne s'y attarde pas. Pas de regrets, donc: c'est un bouquin taillé pour CJ et PYH plus que pour moi.

Bon, Jordan, si tu me lis un jour, je n'ai jamais vu PoP en magasin. J'y ai un peu joué en version MS-DOS, mais je n'ai jamais réussi à passer le 3eme ou le 4eme niveau. Mais t'as fait un super travail quand-même. Ton jeu reste un mètre étalon de la discipline. Et merci d'avoir publié tes carnets.

Tuesday, February 10, 2015

2015, L'année Badman ?

Il y a 20 ans, en Mai 1995, naissait Badman. Un antihéros bien rondouillard masqué parti sauver la coupe du monde contre une intrigue louche. Il y a 5 ans, j'envisageais une version-anniversaire reprenant les 4 niveaux-clés du premier jeu (il y aura en tout deux jeux et une démo de 2 mondes du 3eme opus): les toits de Gettham City, Le manoir hanté, la prison et les cascades japonaises.

20 Years ago, in May '95 was born Badman, a masked, plumpy anti-hero who's the last line of defence to avoid soccer world cup to turn into a mass destruction weapon, although the actual nature of the threat was never very clear. 5 years ago, I was exploring tracks for an anniversary version reusing 4 key levels of the first game (Badman will eventually appear in 2 and a half games): Gettham city rooftops, a haunted mansion, a nazi (?) jail and Japanese waterfalls.

It's clear the former PPP Team would love to play the character again -- and he's likely one of the most popular character PPP Team ever animated -- but what should the game look like ? Ennemies in the first game are fairly limited, partly because we were still discovering the features of RSD Game-Maker. At best, they'll move a few step forward, and then some step backward. Badman's moves are fairly chaotic, and button mashing will often be required to clear some jumps. You can somehow climb along edges, although the engine is unable to let you "grab" them. Trying to produce a gameplay that could let you move along in original maps would be totally incoherent, I'm afraid.

My best offer would be something along the lines of "The Blues Brothers" by Titus. I could also get inspiration of some 2008 sketches where Badman gets more muscular by picking up batteries for his sauna belt. It could be used to create a sort of arcade shooter, somewhere between Bomb Jack and Super Crate Box.


Ça ferait sans doute plaisir à pas mal d'anciens de PPP Team de retrouver le personnage, mais pour quel jeu ? Les personnages du premier opus sont limités par les connaissances limitées du Game Maker de l'époque. 3 pas en avant, 3 pas en arrière ... et c'est tout. Les déplacements sont parfois un peu désordonnés, et il faut souvent bourriner les boutons de saut pour atteindre les plate-formes. On parvient plus ou moins à s'accrocher aux mur, à zig-zagguer dans l'air. Franchement, tenter de reprendre les maps d'origine pour refaire un jeu et tenter de reproduire quelque-chose qui ressemble au gameplay de base, ce serait galère.

Sans faire d'étude approfondie sur des gameplay intéressants avec les ennemis de d'origine, on pourrait imaginer quelque-chose ressemblant à un vieux Titus -- genre Blues Brothers.

Autre possibilité, qui s'inspire d'une petite série de croquis de 2008 où on voit Badman devenir plus dynamique après avoir ramassé une "super batterie mégaflash à placer dans sa ceinture (sauna)" et faire un simple "survival shooter" un peu entre bombjack et Super Crate Box.

edit: plus que quatre points à régler sur "Bilou: Rush to completion" ... peut-être bien que je pourrai faire un peu de Badman cette année, après tout ...

Friday, August 10, 2012

H.E.R.B.Y

La mémoire est quelque-chose de curieux, tout de même ... Je cherchais le nom d'un jeu C64 qui m'avait fortement marqué (à défaut d'être bon) parce qu'en dépit de son apparente simplicité je ne parvenais pas à y jouer correctement. Le candidat idéal pour servir de base au nettoyage de labyrinthes que mon frère voulait incorporer dans Space Mission.

Seulement voilà: impossible de retomber sur son nom. Je tape "SHAMUS" dans Google, sachant pertinemment bien que SHAMUS CASE était un autre jeu (je confondais d'ailleurs régulièrement les deux au moment de faire un LOAD ...,8,1) et en voyant les premières images j'ai un flash "ça s'appelait ERBY ou HERBIE ou qqch comme ça ... j'avais voulu réutiliser le nom pour l'extra-terrestre qui devait donner leurs vaisseaux spatiaux aux Jeunes Mécanos". Et effectivement :P

Meet the first video game I wanted to re-make. Because I loved the idea of exploring a maze, finding keys, opening doors and stuff, but the game was just ridiculously difficult with pixel-precise collisions against deathly walls. (yes, that's one of these games where the line between the Legend of Zelda and Bubble and Ghost hadn't been drawn yet).

 Unfortunately, my brother was rather a fan of shamus and the map he drew focused much more of dispatching loads of space spiders and blasting mined walls.

Sunday, July 08, 2012

Best-of Pix'n'Love : Nutz

IMG_0337
C'est sans aucun doute un des articles que j'ai préféré dans l'ensemble des pix'n'love. Plusieurs testeurs de Bilou: green zone demo ont noté une similitude avec le Mr Nutz "de Ocean" dans les années nonantes. En fait, il s'agit de l'oeuvre de deux personnes, un graphiste (Philippe Dessoly) et un programmeur (Pierre Adane), avec pour objectif principal de se faire plaisir... une sorte "d'Indie Game" avant l'heure, mais à une époque où ce genre de délire d'artiste pouvait finir en couverture de magazine et en version cartouche devant un grand présentoir en carton... Vous imaginez ça pour Spelunky ?

The interview of the team behind Mr Nutz is one of my favourite Pix'n'Love entries. The game started as the masterpiece of 2 people, one graphist and one coder who wanted to make the game they'd love. An indie title before indie was a thing at an era where it was everything and you could pitch a publisher with your demo and eventually have the game burnt into a cartridge, shown on the front page of the monthly magazines. It was an unprecendented era where some talented artist could get involved into game making without having to learn odds of graphical processor programming first. Mostly thanks to the drawing software of the Amiga.

C'est aussi une époque-charnière, où un graphiste/animateur formé pour le dessin animé pouvait enfin se mettre à faire du jeu vidéo sans nécessairement devoir d'abord apprendre en détail le fonctionnement du circuit graphique qui allait faire le rendu. Entre-autres sans doute parce que l'Amiga pouvait assez facilement réexploiter au niveau software les graphismes qui avaient été réalisés avec ses outils de dessins.

The interview has everything you could dream of: direct talk with the developers, screenshots and original design documents, focusing on "what we had in mind while we worked on the game", spiced up with trivias about what it was to work remotely when long-distance calls where neither cheap nor reliable and that you'd rather put floppies in a postal package after you checked the weather.

IMG_0334

Au-delà du charisme de ce jeu (auquel je n'ai pourtant presque jamais joué), l'article reprend tous les éléments qui me tiennent à coeur: une vraie interview, appuyées par des documents d'époque de design du jeu, qui va à la rencontre de "ce qu'on avait en tête pendant qu'on a travaillé sur le jeu".

L'histoire des diskettes de graphismes relayées par chronopost m'a fait sourire: nous autres, à "PPP Team", c'était diskettes en poche jusqu'à l'Athénée et on essayait de se les échanger avant de devoir s'asseoir à côté d'un radiateur, sinon c'était le "bad sector" assuré. Puis plus tard, ç'a été "démonte le disque dur de 120Mo, emballe-le dans un essuie de vaisselle, et je le mets dans ma boîte à tartine. Grouille: on va louper le bus pour aller chez Tog et TBob!"

Je serais curieux de tomber sur les sources du jeu d'origine, tiens :)

edit: Oh. On nous fait une soirée-interview, tiens.

Sunday, October 30, 2011

PoP C64 2011

Prenez un succès incontournable du jeu vidéo des années '90 (allez, 1989): Prince of Persia. Prenez un briscard de la programmation sur une machine mythique et merveilleuse: MrSid et son C64. Arriva ce qui devait arriver: après la SNES, le PC, l'Amiga, les téléphones Java et l'iPod et la calculatrice HP48, le titre à succès de l'Apple II arrive sur Commodore 64.

Au départ, je pense à une ancienne version qui aurait refait surface, mais non: MrSid refait bel et bien le jeu entre 2008 et 2011 -- chacun son hobby. L'Apple II et le C64 tournent avec le même processeur, le MOS 6502. C'est énorme. Ca signifie qu'en prenant simplement le "binaire" de PoP sur Apple II, une partie du jeu "tournerait" directement sur C64 ... toute la "logique" du jeu, en fait. Les mécanismes graphiques et sonores des deux machines sont totalement différentes, en revanche. Et à relire pour la 3eme fois le peu d'information que je trouve sur le graphisme de l'Apple II, j'aime autant dire que cette différence est importante. La machine de Steve Wozniak travaille essentiellement avec un gros 'framebuffer' (une image bitmap unique, remise à jour à chaque étape du jeu) alors que le C64 a un hardware inspiré des consoles et machine d'arcade de l'époque: caractères reprogrammables et sprites hardware. Le moteur de rendu devra donc être intégralement refait.

Well, if you read English, you can simply head to MrSid's post "Why would anyone want to port Prince of Persia on the C64". I guess he'll explain his reasons and give you crunchy details and videos much better than I could ever do ;)

La tâche à laquelle MrSid s'attelle donc, c'est de reprendre le binaire de la version Apple II, le désassembler et le cartographier. Il s'est évidemment mis en chasse du code source d'origine, qui a été perdu corps et bien ... eh oui, on travaillait sur floppy à l'époque >_<. Ce qui a survécu, en revanche, et que MrSid exploite au maximum, c'est la "documentation" du jeu. Quelques schémas qui expliquent les grandes lignes du moteur graphique, la liste des animations, l'organisation en mémoire des objets, leur position, les animations, et tout ça. Ca fait toute la différence! Au milieu de l'inconnu, il y a maintenant des points de repère qui permettent de comprendre le code parfois curieux de Jordan Mechner. Code-trampoline, liste d'instructions ... Si tout ça vous parle, ne vous en tenez pas à ce que je vous raconte: allez lire le blog dans lequel MrSid raconte en détail sa réalisation étape par étape... vidéos à l'appui.

Au fait, MrSid, c'était aussi le portage de Giana Sister (version C64) et International Karate sur DS. ^_^

(pour le blog Commodore Users Charleroi

Friday, October 21, 2011

wooden pixels

Vous avez remarqué qu'il y avait du bois sur chaque image présentée dans mon post précédent ? Pas un hasard, bien sûr: je cherchais des références pour les étagères du niveau "bibliothèque" ... parce que les "briquettes" du dernier mockup ... bof. Mais où trouver du bois dans un jeu vidéo ? Pas dans la cité des images de Rayman, en tout cas! Tout est en gomme, et tant pis pour ta pomme!

Haven't you noticed it in the previous post? There is wood in almost each of those snapshots I picked to mention the original influences for Bilou's School Zone. This is of course no coincidence: I'm looking for pixel art references in order to build the 'library' level of the School Zone: the one used in the last mockup doesn't really work. There isn't much to be found in Rayman's Picture city, is it? It's all made of erasers!

Première pioche: les bâteaux volants de SMB3. Un dégradé assez riche, mais qui reste principalement sur la même teinte (hue=35), sauf pour les extrèmes. Les rondins sont essentiellement un dégradé auquel on rajoute une "texture" en traçant des traîts horizontal de la couleur un cran plus claire dans chaque bande de couleur. Assez réaliste et réussi, mais on est pas du tout à l'échelle qui m'intéresse. Et puis, une étagère n'est pas en rondin, donc les irrégularités ne seront pas identiques.

"Where in video games could I find large wooden structures?" The first answer that comes to my mind is the flying ships of Super Mario Bros 3. It features a fairly rich gradient, but all the browns are actually using a unique hue except for extreme highlight & shadow. It isn't the scale I'm after, unfortunately so the style used to depict a wooden texture won't help me.

Etonamment peu de teintes pour le niveau "off da wall" the Coolspot. On pourrait presque transposer directement ces graphismes-là sur NES. Les différents portages de Coolspot (SNES, PC, Amiga) sont très inégaux sur le plan graphique, et je n'ai pas la certitude d'avoir trouvé un screenshot de la version MegaDrive originale (afaik). Saturation surprenament élevée, et des patterns qui font allègrement usage du tramage, ce qui colle plutôt bien avec l'aspect "vieux grenier" souhaité. Une plaie à reproduire, par contre. Sous Master System (la version utilisée sur vgmaps pour en tirer les cartes du jeu), la "planche" d'un étage fait 32 pixels de haut avec un pattern de 32 pixels de large.

Second location I could think of is Cool Spot's attic. Curiously enough, there is very little unique colors on that structure. (two for the top, and another pair for the front side. You could almost get it rendered on the NES. It's quite highly aturated too, and very grainy (though CRTs might have toned that down). The plank tile appears to use a 32x32 grid. Much closer to my needs.

Couleurs super-saturées pour Zool -- mais ce n'est pas une surprise: le monde de zool est dans des tonalités systématiquement saturées. Même le fond est parsemé d'objets hétéroclytes qu'on a même pas tenté de rendre visuellement distants en les passant en tons pastels. On est ici à une taille un peu plus petite que celle de Cool Spot avec des "veines" d'un pixel de large, travaillant beaucoup sur l'anti-aliasing (surtout pour le bois plus clair). Un point-clé, c'est la grande régularité de l'espace entre deux veines, de 3 pixels. Sans ça, on a juste des traîts barbouillés dans tous les sens, comme ce que j'ai fait sur la droite :P
Pattern de 32x32, de nouveau.

I wouldn't have thought about Zool for woods. Possibly because I have rarely went up to the toolbox level. All the colors used here are almost fully-saturated, but it isn't that surprising: most of the Nth dimension is using super-saturated tones. The background objects do not even try to tone down into blueish or pastle tones. That's contributing to make the Zool experience quite messy, if you ask me.
The scale is much smaller than in Coolspot and the grain lines in the wood are barely one pixel wide. They kept a regular spacing of 3 pixels between lines so we don't get the ugly stuff I scribbled on the right of the picture.


Petit retour à SMB3 ? Il faut dire que les "briques de bois" ont un comportement tellement particulier dans ce jeu (cachant parfois des plumes-tanooki mais nécessitant de les cogner *sur le côté*) que j'ai tendance à croire qu'il y a du bois partout ... en fait, il est plutôt rare ^^" Ici, pas de "veines" dessinées dans le bois, mais l'impression qu'on voit un morceau de tronc débité dans la longueur, avec les anneaux caractéristiques.

Oh, wait: there's another part of SMB3 that is made of woods: the wooden "bricks". You know those you can hit from the side to reveal a racoon leaf power-up. We don't quite see the typical "wood lines" here, but instead a part of the concentric lines you'd see if you looked a part of the trunk from top-down. The raster they used to pimp it in the SNES remake isn't the best part of the game art, but noone would suggest that these are floating chocolate things. And in the rare case where they decided not to repeat the same 1-block of wood again and again, they are repeating one "wave" every 8 pixels. That's less convincing and suppose very large trunks, but it still works (somehow). I'm unsure that would fit with Bilou's scale, though. Dismissed.

L'effet de dégradé obtenu n'est pas ce qu'on a vu de plus esthétique dans le jeu, mais personne n'ira suggérer que ce sont des tablettes de caramel. Pour faire des plates-formes dans les niveaux aquatiques, eh bien, les p'tits gars de chez Nintendo ont simplement répété une "vague" tous les 8 pixels, jusqu'à arriver au bloc "bord droit". Nettement moins crédible (bin oui, c'est supposé être concentrique), mais ça marche quand-même. Par contre, tout ça est (de nouveau) à une échelle qui ne colle pas à celle de Bilou. Rideau.

How about the Rescue Rangers then ? Well, they use a technique similar to the one seen in Zool, but with much shorter grain lines and only 3 colors (black, brown and yup-that's-actually-red). Not really attracting as a reference as far as pixel art is concerned.

Et les Rangers du Risque ? eh bien, même technique que pour Zool, mais avec des veines nettement plus courtes et une limite de 3 couleurs par palette (noir, brun clair, et sisi-c'est-pas-du-rouge-c'est-du-brun-foncé). Bien réussi pour l'époque, mais je n'irai pas en faire une référence, ni au niveau des couleurs, ni au niveau des pixels eux-même.

Thursday, October 20, 2011

Influences for Bilou ...

Facile de voir que la school zone de Bilou ressemble à la cité des images de Rayman. Et pourtant, c'est une pure coïncidence: quand mon frère m'a ramené les nouveaux monstres de Pierrick, personne n'avait jamais entendu parlé du curieux bonhomme sans bras à moins d'être dans l'entourage rapproché de Michel Ancel... Ce dont je ne peux malheureusement pas me vanter.

Mais ce n'est pas pour autant dire qu'il n'y avait rien avant, même si à 15 ans, on avait passé le cap de "refaire un Sonic avec Calimero", il y avait forcément des jeux qui nous avaient marqués et qui nous ont donné envie donner vie à des objets genre "Alice au Pays des Merveilles"dans des environnement "zoomés". Coolspot ('93) fait ça un peu tout le temps. L'animation gag et fluide du jeu de David Perry a largement contribué dans mes influences pour les jeux vidéos, c'est clair.

I long for the "school zone" to get more monsters so that people stop saying that I should have mentioned Rayman (PSX) as an influence. No, rayman was still a top secret project (on SNES?) when we started sketching Sqrt and the pendats. But the video game album was already featuring a few dudes that shown us the way of micro-characters-in-macro-areas (just in case our daily dose of Wonderland weren't enough ;). Coolspot's attic is frequently appearing in my mind when I try to get references for the library level of the school zone, for instance. And of course, Zool had an even greater influence, with its objects-brought-to-life monsters.

L'année avant, l'ovni farfelu, c'était sur Amiga, c'était Zool, le ninja trans-dimensionel. Château des Délices -- euh, zone Chuppa Chups, je veux dire -- puis monde de la musique (tiens, tiens!), Jardin Géant, Boîte à Outils et magasin de Jouets.

Oui, ce "tueur de Sonic" à très certainement marqué le terrain d'une manière plutôt décisive, et je me demande même dans quel mesure il ne figure pas également dans les influences de Michel ;)

Zool's Nth dimension feels quite similar to Rayman's world (or at least those levels based on an surrealistic version of our daily life). With its candy and music themes, I wonder to what extent it might have secretly inspired Michel Ancel and his team...

Ou alors serait-ce les Rangers du Risque (sur NES, dès 1990) ? Avec leurs niveaux à kangourous smasheurs dans une bibliothèque ? Si ce jeu figure parmi mes référence en terme de gameplay coopératif, en revanche, je ne crois pas être allé jusque là, ni même avoir jamais vu quelqu'un y jouer. Il faudra chercher ailleurs.

Oh, and just FYI, yes, I enjoyed Rescue Rangers a lot, especially due to its innovative and fun co-op play, but I'm afraid I never managed to beat the game up to the library level. So, no, this wasn't a reference for me. That's funny to note that Zool's first two levels just match Rayman's Cake and Music levels, by the way ^_^

Wednesday, September 07, 2011

Pourquoi l'éditeur d'animations ? ...

Souvenez-vous: on est en janvier, je viens de faire une release des sources de Apple Assault, je me suis un peu pris la tête avec les responsables de devkitpro et plutôt que d'attaquer un nouveau mini-jeu, je commence le développement d'un éditeur d'"animations à la rayman". Développement qui aura donc duré 9 mois (mais alors, pas intensif pour un sou, hein ;) avant qu'une version un peu utilisable ne voie le jour. "Ma Perché?" me direz-vous.

Eh bien, c'est qu'en janvier, mon frère s'est rendu compte qu'un p'tit bonhomme, ça grandit vite. "Ce serait chouette de refaire mimi pour eux, Pype", dit-il, "et si on veut qu'ils y jouent tant qu'ils trouvent ça rigolo, il va falloir s'y mettre.

Mimi ... "mimi la fourmi", alias "mimi à la campagne" ... un jeu C64 réalisé par 2 québecquois et distribué par Logidisque qui avait fini dans le rayon du GB, puis dans le caddie de mon paternel. Un petit écran bucolique habité par une petite fourmi. A chaque touche enfoncée, une petite musique et une animation ... de quoi apprendre aux charmantes têtes blondes à reconnaître les lettres du clavier en s'amusant. Ma soeur (4-5 ans à l'époque) y a passé un temps certain. Mon frère et moi, on chipait alors le clavier pour enregistrer des "macros" ... une sorte de mini-histoire en enchaînant (N)uit, (R)eve, (J)our, (P)apillon.

"Mimi la fourmi" was a C64 game that defined a part of our family's childhood. Press a key (e.g. 'N' for 'N'ight) and the little ant will do something on screen such as cutting some flowers or bring a cake to a friend, together with some classical theme played through the SID. Between calimero and the discovery of RSD game-maker, there have been projects to port this little jewel to the PC world during my teenage years. Nothing ever got coded, though.

Since my bros' and I are now parents, the idea popped up to revive the game on the DS. Almost everything is in place, except that there are quite many animations for that game ... too much for classical techniques, but not for modular animations. That's why I've spent the last 9 month on a tool that seems so far away from creating one more Bilou game.



Chouettes souvenirs, donc. A peine avais-je maîtrisé les commandes "draw" et "play" du QBasic que j'envisageais déjà un portage sur PC, qui n'a jamais été vraiment commencé. Mimi la fourmi, une coccinelle qui passe sur l'air de "la cuccaracha", une abeille qui apporte du miel, un -- non, deux -- petits vers ... tout ça pourrait en effet être bien sympathique.

Mais il y a beaucoup d'animations différentes dans le jeu C64. A l'époque 8 bit, ce n'était pas un vrai problème. Une image à l'arrêt, une image assise, une debout ... deux pour la marche dans chaque sens. En monochrome 24x24, les graphismes sont vite règlés. Mais en 256 couleurs sur la DS, à 60 images secondes, je me vois mal faire toutes les images à la base. Or, c'est le genre de petits bonshommes qui passent encore bien en animation modulaire -- qui était prévue pour Bilou depuis le départ, mais pas encore disponible. Alors oui, je me suis mis à créer l'outil nécessaire pour faire tout ça.

Et toi, Piet, t'es prêt avec tes MODs ? T'as téléchargé AnimEDS pour te mettre à l'animation ?

Wednesday, March 23, 2011

Pix'N'Love

Pix'n'Love Editions ...Autre moment sympa au salon "Made In Asia 2011": le stand Pix'n'love. En tant que concepteur de jeu amateur doublé d'un nostalgique des jeux de l'ère 8/16-bit, je dévore assez régulièrement les exemplaires de mon frère (c'est d'ailleurs presqu'impossible d'en acquérir moi-même: il me les rachète avant que je n'ait eu le temps de les ouvrir :P)

French-speaking retro-gamers are lucky: we've got a high-level edition team that produces one pix'n'love magazine a month. More durable paper and more convenient format than former PC/console magazines, well-written and full of interviews, crunchy trivias and neat pixels. (Un)fortunately, my brother wants them all, so it's virtually impossible for me to own any of them: he immediately offers to buy the one I find/order ... Hopefully enough, he let me borrow them.

That being said, rejoice, English friends: http://pixnlovepublishing.com/ will take care of translating the pix'n'love magazine in Shakespears' language. Ready ? Set ? Order ! ...


Si le dossier "Another world" avait vaguement un goût de réchauffé (j'en avais déjà tant lu sur son développement sur le site d'Eric Chahi), lacher le "Spécial Rayman" aura relevé du défi psychologique. Je suis du coup plongé dans la biographie de Michel Ancel (quand ma fée me chipe la suite des aventures d'Emouchet, en tout cas) ... Puis je me re-ferai l'article sur Moktar avec l'interview d'Eric Zmiro ^_^. Réchauffé ? hmm ... peut-être pas, finalement. Je reste sur ma faim, mais c'est sans doute plutôt parce que je ne suis jamais parvenu à atteindre l'autre côté de la cascade et que j'enrage de frustration quand on mentionne des éléments du scénarios que je n'ai jamais rencontré dans le jeu.

PS: M. Sébastien Mirc, un numéro "best of spécial petit frère" avec une sélection des articles à la demande, c'est possible ?

-- "favourite articles" list will follow below --

Tuesday, February 01, 2011

The revenge of ZooL

Pour tous ceux qui n'ont pas eu Windows sur leur premier ordinateur (et qui n'ont pas eu de console SEGA non plus), ZooL est sans doute l'expérience la plus proche d'un Sonic que l'on puisse imaginer... enfin, presque. Et comme mon frère le faisait remarquer, c'est Zool qui a servi de cas d'étude pour un livre qui introduit des concepts tels que les plate-formes tombantes ou mobiles, l'attaque en vrille, en glissade, les monstres smarts ou l'escalade de murs. La plupart de tout celà est présenté dans le chapitre 6 : "Empower strikes back".

Ever thought about fighting in the middle of candies, music instruments or drills ? that's precisely the setup of Zool : Ninja from the Nth dimension. Zool was a stunning, hard and exciting game that kept me busy for weeks when I was a teenager. The closest PC and Amiga guys could get to a Sonic experience. It's coming back to the front of the scene with that Game maker companion book by Jacob et al. I especially dug chapter 6 about attack moves and interaction with moving and crumbling platforms.

Si les éléments présentés m'intéresse, je dois dire que j'ai été un peu déçu par l'approche. Il faudra que je retrouve une copie de Zool pour Amiga pour vérifier ce qui faisait partie des limitations du jeu d'origine et ce qui a été simplifié pour ce livre.

Personnellement, quand je lis que Zool va pouvoir assommer les monstres qui le touchent pendant qu'il tombe, peu importe qu'il les touche du pied ou de la tête ... ou que "celà signifie qu'un ennemi peut être tué lors d'une glissade même s'il touche Zool dans le dos. Mettons ça sur les super-pouvoir d'un ninja trans-dimensionnel", je dois dire que je ne suis pas convaincu.

Of course, unlike the typical target reader for that book, I'm not that interested (sic) in which buttons or dialog boxes I should use in order to activate response to monster collisions, but rather by the backstory, the logic, and some nitty-gritty details that can make things "professionnally right". To that extent, i must admit that I have been disappointed.

The revival of Zool presented in the book apparently solely relies on a pixel-perfect collision detection and trivial boolean flags (attack?=true) to do all the decisions. It is not possible, for instance, to insist on the fact that zool's foot should be in contact with a monster so that the monster can be stomped. If a bee enters Zool's face while he's falling, the bee will be "stomped" as well. Similarly, the author says that the fact that a monster could die on contact of Zool's back while he's sliding could be considered as a "cool ability of a inter-dimensional ninja". That's just a bug, as far as I'm concerned.

Dans mon propre "game engine", ce genre de comportement (la présence de "points faibles" et de "zones qui donnent un coup") était clairement un objectif majeur par rapport à tout ce que j'ai fait ou utilisé précédemment. Ca marche, ça ne coute pas bien lourd (même s'il faudra que je mette à jour l'éditeur de sprite pour que ce soit plus convivial) Après avoir tenté de reconstruire mentalement les interactions en place dans la réalisation des plate-forme à partir des manipulations recommandées, j'ai été aussi un peu déçu.

Et les auteurs ne s'en cachent pas: "il y aura un léger décalage entre le déplacement de Zool et celui des plate-formes. C'est ça ou prendre le risque que les plate-forme mobiles puissent envoyer Zool dans un mur. Donc oui, ils reconstruisent Zool, mais d'une manière qui est entachée par un bon nombre de "limitations d'amateurs" que je croyais avoir disparu depuis une 15aine d'années.

I unfortunately stumbled upon similar "amateurism" when checking the moving / crumbling platforms. Yes, they have something that approaches the desired effect, but either with a _lag_ between Zool and the platform's move, or with a risk that platforms could throw Zool within a wall. Looks like I'll have to hunt for more reference if I want to find an appropriate solution to those platforms problems.

I note, however, that one key technical aspect that supports the examples is that the game maker engine is object-based rather than tile-based. By making a movable platform a subclass of the "obj_ledge", Zool can naturally walk on it, wherever it moves, fall or stay still. That's something that won't be so easy to achieve with my approach.

Tuesday, August 03, 2010

Blues Brothers -- Trivia

Le saviez-vous ? Bien avant la SNES, les Blues Brothers de Titus Interactive avaient été adaptés sur NES. Mais j'ai bien l'impression que les exigences de "politiquement correct" de Nintendo ont eu un effet néfaste sur le concept du jeu. Point de caisse à jeter à l'horizon. Exit les personnages loufoques tels que Mamie-Caddie ou la serveuse-championne-olympique ... Pas même de disques à collectionner. Bien pauvre. Ca n'a pas dû aider le succès du jeu.

Blue Brothers was one of the game I was most hyped about when neighbours started to get VGA screens and AdLib soundcards. Little did I know that the game had a NES release, but it seems like the fun of the game has been completely lost in the process. Its spirit did, at least, imho. Is that Nintendo 'politically correct' policy ? is it self-censor to reach more than the peculiar French video game market ? Is it just lack of space on a cheapest-possible cartridge ? I cannot tell

Dans ce speedrun, le jeu est terminé en 4 minutes chrono. Pas de gamin armé de lance-acide dans l'usine ... pas de Docteur-Maboule armé d'un lance-seringue dans la prison ... Que diable s'est-il passé? Il ne reste qu'à traverser des maps vides. Le monde impitoyable du jeu grand public ne cessera de m'attrister.
Le rétro-gameur averti boudera donc la cartouche pour se concentrer sur la version amiga qui ne souffre pas des habituels problèmes de scrolling rencontrés dans les portages PC des jeux Titus -- même si les bande-son Adlib me manqueront.

So if you want to retro-play the game, your best option is likely to hunt for an Amiga copy of it. You won't get the sweet adlib sound but your head won't explode with 8086-compatible push-on-demand scrolling. And you'll experience the full chemical kids, caddie-nanies and furious damsels high on heels fun of the original.


(Bilou progress report: une 3eme map scribouillée pour Apple Assault, polish des 2 premières maps ... tout ça malgré un Level Editor qui aurait encore bien besoin d'être débuggué...)

Wednesday, February 17, 2010

Do you sass' ZX Willy ?

"Connaissez-vous Manic Miner et le ZX Spectrum ?" me demandait assez logiquement caractère de 8x8 et n'avait pas de sprites. Si bien que quelque soit le jeu, ça ressemblait assez invariablement à un livre d'image colorié par un gamin qui ne sait pas éviter de déborder des contours. Maintenant, j'imagine que pour celui qui en a possédé un gamin, c'est une merveille de nostalgie au même titre que le c64 l'est pour moi et l'amstrad CPC pour Pierrick H.

All I could have told about the ZX spectrum before starting this post was that it had soft keys and tend to spread colors all over the place on polychromatic screens. I couldn't have said anything about Manic Miner unless you would have asked about the Jet Set Willy sequel which my brother had tried a bit on C64.



Willy, revisited by Arne

Pour ce qui est de Willy (Jet Set Willy, Manic Miner), je ne connais que depuis la sortie des "Lost Levels" sous DS. D'ailleurs, c'est bien simple, quand en juin 2007 Arne nous poste ce joli mock'up sur Pixelation, je me dis juste "que c'est bien fait pour du 16 couleurs. Mais où va-t-il chercher tout ça ?". Le parallèle était pourtant frappant.

It needed a Lost Levels homebrew, released on DS in June 2007, to make me realise that the mock up screen titled "Macaroni Ted" is a reinterpretation of an old game, not just some awesome flip-screen for a yet-to-code game. And I have to admit that I'm baffled by the creativity it took to fill so many screens of challenges involving so many weird characters, even on the 8-colors original game.

Mais indépendamment des qualités du jeu, de l'"ingéniosité" des niveaux et tout ça, je n'accroche pas. Ni aux "lost levels" flambant neufs, ni à l'idée de me le refaire sur un émulateur.



Lost Levels par Headsoft

La maniabilité de Willy redore le blazon de l'explorateur de Pharaoh's Curse et de Thing on a Spring. Et pourtant, j'ai passé plus de 900 vies à finir "vvvvvv" ... Alors quoi ?

Premier hic, la lenteur. Eeeh oui. Si Willy nous change de l'animation en deux temps de Rick Dangerous, en revanche, il est trop lent à se déplacer, bien plus lent que votre "projection mentale dans le jeu", ce qui pour un jeu de "timing" est particulièrement désagréable.
Autre hic -- de taille -- la lisibilité. Se faire tuer par quelques pixels qui trainaient par là et qui ressemblent autant à un buisson qu'à une clé, ça n'a rien d'amusant. La version GBA est un peu plus lisible (sans aller jusqu'à dire qu'elle est meilleure pour autant). La version ancienne (ZX) est assez bien lisible (si ce n'est pas noir ni du sol, touche-le pas) et d'une difficulté sans doute plus progressive. La preuve c'est que j'ai réussi à aller au niveau 2.

Unfortunately, once I have the game in hand, I absolutely don't want to play it. Controlling the explorer in Pharaoh's Curse or even the thing on a spring is fun compared to Willy. I think this is linked to how slow the walking animation is. I cannot make my mind match that and I'm never quite accurate on where I expect the character to be when it will be time to ask it to jump or to stop.

The second big issue with Manic Miner Lost Levels is the readability. In the original game everything is either black, flat, blinking or dangerous. small patch of pixels actually depict a deathly trap on the floor and you should jump above it.

Je vais donc éviter de jeter un blâme et je ne me lancerai pas dans des calculs savant de temps-pour-traverser-l'écran divisé par temps-de-réaction-pour-contrer-un-monstre. Il est clair que si j'ajuste le gameplay de Bilou, ce sera légèrement, de sorte qu'un monstre isolé représente déjà une difficulté (là, s'ils ne sont pas au moins deux dans un environnement exigu, le jeu est plutôt de voir combien de fois vous pourrez vous gausser grassement d'eux avant qu'ils ne vous touchent). Mais je n'irai pas cloner le gameplay de Manic Miner... Ooh non, alors!

Il est clair aussi que ce qui fait le "charme" des aventures de Willy, c'est ce côté "hors-contexte" des monstres et des salles, renforcé par le fait qu'il "suffisait" de 8 chiffres pour "programmer" une dalle et d'une douzaine de dalles pour un niveau. J'ai beau me débrouiller en pixel art, je ne suis pas graphiste. Il faudra donc que je trouve quelque-chose d'autre pour rendre le "petit puzzle-platformer avec Bilou" suffisament attractif. Je laisse donc tomber le "mining" du titre, la prochaine "milestone" sera tout simplement

Bilou : Nuts & Bolts

Yes, I'd love to have something that looks a bit like a Manic Miner game featuring Bilou. Flip screens, a few baddies per screen, things to collect (nuts and bolts from the crashed ship). But it wouldn't feel like a manic miner game. I'd adjust some physics constant so that individual ennemies requires precision, but not the kind of pixel-perfect precision manic miner implies.

PS: ça veut dire "des boulons et des écrous", et je trouve que ça colle bien au fait de devoir retrouver les pièces de l'astro-cruiser tout éparpillées ...
PPS: une vitesse verticale de 600 pour commencer un saut paraît bien pour ça. Ca rend déjà le champignon dans le premier arbre inaccessible, par contre :P
PPPS: je n'oublie évidemment pas les choses que j'avais trouvées sympa dans Johnny Biscuit (rotation des thèmes graphiques plutôt que 4 niveau halloween, puis 4 niveau en égypte, puis ...) et dans Qwak (parcours semi-aléatoire d'une partie à l'autre).

Voir aussi :

Monday, July 20, 2009

Carmen sans Diego

Entre deux couches-culottes, je m'imaginais cette nuit un portage du célébrissime "Carmen Sandiego" sur ma petite DS. Ca doit être le premier jeu (Broderbund Software, 1985) que j'ai pu faire tourner sur mon tout premier PC (un 8086 pré-AT avec un écran monochrome aux résolutions improbables et un lecteur de diskettes 5'1/4), à savoir que son côté ludo-éducatif avait convaincu les autorités parentales ;)

Mis à part la collecte de graphismes pour illustrer tous les haut-lieus de la culture internationalle (Gizeh, la grande muraille, etc.) Le principe du jeu était simple et efficace. on atterit à Londres, 2 P.M. Il va falloir visiter bibliothèques, musées et autres pour trouver un indice qui nous permettra de découvrir dans quelle direction s'est enfui le voleur de la joconde. Hmm. Il s'est renseigné sur les pharaons (bon, parfois, c'était un peu plus corsé quand-même, mais ça reste du ludo-éducatif pour les 8 ans et plus) ... je note. Mais il faudra aussi suffisamment d'information sur son apparence pour pouvoir obtenir un mandat d'arrêt à son nom.

Nappies-swapping-idea: that could be nice to have "Where in the world is Carmen Sandiego" converted for Nintendo DS. Upper screen showing the location picture, bottom screen with the character talk and the menu navigation. The game is the first we have ever been able to run on my pre-AT 8086 computer with a hercules screen featuring unexpected screen resolution and 5"1/4 floppy drive). The gameplay was simple and efficient: you land somewhere, hunting for a art thief. You investigate in a few location and you might get clues about the thief (she was hiding a tatoo, says the doorman) and the next step she's taking (she asked about the pharaoh, mentioned the librarian). With that, you need to filter out suspects until you can get an arrest warrant and keep track of the thief before time runs out. 

There were a few funny animation when you're getting close to the thief, but most of the time, you'll just get small footsteps or see a line drawing over the world map as you travel to your next city. If you catch the thief, you'll get promoted. And if you reach the highest rank, you'll be set on the trail of Carmen Sandiego herself! The most wanted art thief in the world!

Bien sûr, à l'heure Layton/Wikipedia, il faudrait un peu revoir la mécanique de jeu pour qu'il reste plus intéressant pour nos têtes blondes de se creuser les méninges que de faire appelle à Internet. Petit rafinnement, je me disais "pourquoi ne pas piocher dans notre richesse locale et se faire un 'A la poursuite de Rastapopoulos' avec notre détective national.

Et je ne suis pas le seul à avoir eu l'idée et l'éditeur MindScape nous a gratifié du 'Mystère au bout du monde', qui est décevant au possible, selon la critique. Quand on voit que MindScape nous a aussi gratifié d'un "Fort Boyard DS" et d'un "Intervilles sur Wii", on n'est même plus surpris.

Que se passe-t'il donc dans le monde du jeu vidéo? Comment encore blâmer la piraterie quand les chefs-d'oeuvre d'antan (et les plus récent, cf. mon avis sur Action Loop) sont bafoués et réduits au niveau de collection de minijeux fadasse entre les cases d'une bande dessinée.

Allez, je vous parie qu'on verra bientôt "Lea Caissière" qui doit cliquer sur les articles qui tournent façon "astro-fire" quand le code-barre devient visible ... ou réassortir les rayons sur un fond de Tetris.

Reality shock: Mindscape *did* release a DS title hunting Carmen Sandiego... and ... it looks like a comic interrupted with raw mini games where you unlock doors here or there. Sure we get high-quality graphics, but there is no rhythm to the gameplay, and I'm not even sure there would be any thrill following the storyline.

PS: Pour ceux qui voudraient tenter une adaptation homebrew (au hasard, Stravingo ?, à partir de ton Treasures of Gaia, ça doit être jouable ;) je vous propose donc de tester l'original sous DosBox ou de jeter un oeil à la vidéo du gameplay version MSX.

Saturday, February 07, 2009

Xargon, Jill et Nikita

Okay, pour ceux qui en nourrirait encore vaguement l'espoir, je n'ai pas l'intention de porter Jill ou Xargon sur DS. C'étaient de bons jeux dans leur temps, mais même le fait que les sources soient disponibles (pour Xargon en tout cas) ne me tente pas.

Je m'explique. Un des éléments qui m'intéressait dans l'étude du code de Xargon, c'est que tout comme notre Commander Keen, Jill et Malvineous (eh oui: Xargon, c'est le vilain pas beau et Malvineous le héros tout en muscles) savent grimper aux lianes (chaines et autres). Un des aspects qui me coince un peu dans Bilou. Or donc, grace au flag f_notvine, ces héros grimpotent grace aux éléments suivants:

• le test "y a-t'il une liane" n'est effectué que sur des frontières de tiles (comprenez, quand x est un multiple de 16)
• une fois accroché à une liane, il n'y a plus de déplacement horizontal

Maybe my last post made you believe I was about to port Xargon or Jill of the Jungle to the Nintendo DS. I'm not. They were solid games back in the days, but even with sources available, I'm not tempted. What's interesting me while studying Epic source code is that their heroes (much like Commander Keen) can CLIMB. Vines, chains, pole. Name it, you have it. That's one thing I don't know how to deal with in Bilou so far, but thanks to the F_NOTVINE flag. Things seem to work fine. The 'is there a vine' test is performed only at tile edges (x is a multiple of 16) and no horizontal motion is allowed on a vine. Fine.

But there's one thing missing: where's the code that aligns character to a vine if they aren't yet ? having to pixel-perfectly aligning before climbing is usually not something you leave to your players. And I don't recall it being so hard to hop from vine to vine in Jill of the Jungle. Almost easier than hopping from block to block, actually.

Apparemment tout ce qu'il faut sauf qu'il n'y avait apparemment rien dans le code qui permette de forcer le perso à s'ajuster à l'emplacement de la liane si jamais il n'était pas pile en-dessous ... louche, ça. Vous vous voyez jouer à un jeu où il faut être positionner au pixel près pour monter à l'échelle, vous ?

Pourtant je me souviens que ce n'était pas si difficile de sauter de liane en liane dans Jill (j'ai peu joué à Xargon, en fait). Bien plus facile que de sauter de bloc en bloc, d'ailleurs.

Bin voui. pas étonnant. Figurez-vous que Jill ne se déplace jamais que _de 8 pixels à la fois_ idem pour le scrolling. Oui, vous avez bien lu : 8 pixels. La taille d'un caractère à l'écran. Jill est soit sur le bloc gris, à moitié sur le bloc gris ou à côté du bloc gris. Point barre. Le jeu est un peu plus "souple" pour les déplacements verticaux (2 pixels) mais n'empèche. La version shareware avait beau se gausser de Commander Keen et de Super Mario, le slogan "The Brothers are History", c'est à Giana qu'il revient, certainement pas à Jill. Et toutes ses voix enregistrées et ses cuisses bien rondes n'y changeront rien!

So here's the catch: Jill and Xargon only move by 8 pixels. Same for the scrolling. Yes, 8. A full-sized letter on CGA screen. Either Jill is perfectly centered on a 16x16 grey block, or she's exactly on the edge of that block. Or she's next to it. That's it. Vertical motion is a bit smoother (2 pixels granularity), but barely. There may be a similar 'minimum walking distance' in commander Keen (4 pixels), but motion happens pixel per pixels, much more smoothly. And while Jill's jerky motion could be excused by the run animation on the ground, nothing justifies it while jumping (and it hurts the gameplay a lot).

Dans Commander Keen, cette "distance de déplacement minimale" est de 4 pixels (en tout cas, si je donne le plus court déplacement possible, c'est ce qu'il se passe), mais malgré tout Keen est déplacé pixel par pixel. Bien plus fluide. Et si ce genre de "déplacement brusque" peut se justifier pour l'animation de la course, en revanche, il est complètement ridicule (et pénible au niveau du gameplay) lors d'un saut. Tiens, à creuser par contre ... Et si j'utilisais le freinage du perso pour forcer ce genre de déplacement minimum ?

Bref, le code était instructif, je vais me replonger dans la programmation de mon p'tit Bilou (qui a appris à marcher ce matin ;) et en attendant, si vous êtes en manque d'exploration de mondes curieux à grand renfort de transformations magiques (c'était un des points-forts de Jill, je l'admet), je vous recommande chaudement Nikita, la femme-loup du jeu Inner Worlds. (merci à CJ pour l'URL et sa compil' "nostalgy power" :)

Voilà. Ma sauce bloubloute alors je vais vous laisser. A+.

Thursday, February 05, 2009

Xargon : may the source be with you ...

Vous ne connaissez pas Xargon ? pensez à Jill of the Jungle avec un chromosome Y et vous ne serez pas loin... Vous ne connaissez pas Jill of the Jungle non plus ? Ah. Bin probablement que votre PC n'avait pas encore de carte SoundBlaster ou d'écran VGA en 1992. C'est vrai que ça coûtait un peu cher, à l'époque.

Quoi qu'il en soit, si je vous en parle, ce n'est pas parce que les 3 épisodes de Xargon sont disponibles sur classicdosgames.com. Non, c'est parce que le code source de Allen Pilgrim est également disponible. C'est du code C, mode réel pour le DOS, mais suffisamment propre pour que tous les aspects "hardware" soient extrait de la logique du jeu -- et croyez moi, sur PC, c'est un exploit majeur.

Ce n'est pas la bibliothèque d'abstraction du hardware qui m'intéresse, bien sûr. Même si c'était impressionnant à l'époque, le scrolling des jeux de plate-forme Epic ne pouvait concurrencer celui du moteur de John Carmack (commander Keen & autres), le player de fichiers CMF (adlib/midi) était bien connu, mais je n'ai jamais vu d'éditeur correspondant, et si l'on se laissait impressionner par un "yeeaaah" en ramassant un gros bonus, le mixage des effets sonores était en réalité peu convaincant (voire absent).

I'm currently studying the game logic of Xargon from Allen Pilgrim's sources. I hope that giving a look on someone else job will help me to overcome that "analysis paralysis" in my own game engine. I know i tend to overcomplicate things ... The management of objects-to-world collision has already shown enlightening... more to come. And, by the way, if anyone of you is interested into porting Xargon to the DS (or whatever other system), you may want to give a look to information gathered on the game modding wiki at shikadi.net in addition to the source code. Personnally, it's not in my to-do list :P

Non, ce qui m'intéresse c'est la logique du jeu. Et quelque-part, cette logique me crie le maître-mot de Mollusk: "ne vous posez pas de question: codez". C'est vrai quoi. Je me prends la tête avec mes test-points alors qu'en fait, ce n'est qu'une optimisation bancale que je traîne depuis l'age du BASIC, renforcée par l'étude d'un jeu NES. La gestion des collisions perso-monde dans Xargon est bien plus simplement basée sur les possibilités de l'ensemble des tiles recouverts et l'affectation de propriétés sur chacune de ces tiles.

int cando (int n, int newx, int newy, int ourflags) {
 int x,y,temp;
 int flagor, result;
 int startx, endx, starty, splity, endy;

 startx=newx/16;
 starty=newy/16;
 endx=(newx+objs[n].xl+15)/16;
 endy=(newy+objs[n].yl+15)/16;
 splity=(objs[n].y+kindyl[objs[n].objkind]+15)/16;

 flagor=f_notstair;
 result=0xffff;
 for (y=starty; y<endy; y++) {
       if (y>=splity) flagor=0;
       for (x=startx; x<endx; x++) {
         temp=(info[board(x,y)].flags|flagor)&ourflags;
         result&=temp;
       };
 };return (result);
};


Comme disait Colomb en quittant le Portugal "Il suffisait d'y penser": le tout est de concevoir les propriétés des tiles de manières à ce qu'elles "s'additionnent" bien. Un personnage ne peut se déplacer vers un nouvel endroit que si tous les tiles possèdent les bonnes propriétés ("pas un bloc", ce que Allen appelle f_passthru. Celà demande parfois un peu de jonglage mental. f_water est évident, f_climbable aussi. f_not_stairs un peu moins...


int trymove (int n, int newx, int newy) {
 int ourflags;
 ourflags=f_playerthru;

 if (newy>objs[n].y) ourflags|=f_notstair;
 if (cando (n,newx,newy,ourflags)==ourflags) {
    moveobj (n,newx,newy);
    return (1); // successfully made it to new location.
 } 
 else if (cando (n,objs[n].x,newy,ourflags)==ourflags) {
    moveobj (n,objs[n].x,newy);
    return (2); // could only move vertically
 }
 else if (cando (n,newx,objs[n].y,ourflags)==ourflags) {
    moveobj (n,newx,objs[n].y);
    return (4); // could only move horizontally
 };
 return (0);    // couldn't move at all.
};


J'aime bien aussi la manière dont il a réussi à capturer les comportements de déplacement simples Il faudra que je tente d'en faire autant. Bion. Je vous en dirai sans doute plus. Malgré tout, la routine de gestion du personnage principal fait quand-même 7 pages, et je n'ai pas encore tout lu.

Monday, December 08, 2008

Seafox

petit mockup avec les sprites du week-end dernierUn chouette petit jeu qui trônait sur la même disquette que WarHawk de notre bon vieux commodore. L'illustration même du principe d'un jeu d'arcade : des contrôles simples, un écran unique et une difficulté progressive par un système de mission. Notre vaillant petit sous-marin (repeint en jaune pour la version "DS") s'attaque à des convois marins (la ligne la plus haute) et tente de les couler. Ces convois sont protégés par des croiseurs (la deuxième ligne de bateaux) sur lesquelles vos charge mer-mer iront rebondir et couleront (avec risque pour vous d'y laisser votre peau). Evidemment, vos activités de piraterie ne restent pas longtemps inaperçues, et la compagnie (l'armée ? va savoir ...) qui gère ces caravanes maritimes envoie à vos trousses ses chasseurs sous-marins.

On the same 5"1/4 floppy than WarHawk stood SeaFox. The ultimate example of a good ole' arcade shoot-m-up game : simple but efficient controls, a single screen and a progressively increasing difficulty. Our (yellow on the mockup) submarine try to sink sea fret of some kind (the top line) that are protected by armored ships (the bottom line). As that "shipping Guild" doesn't seem to like your piratery activities, it sends its own sub-fleet to kill you.

As being in the process of trying to revive the game on Nintendo DS (hence the mockup), i've been (of course) re-playing it extensively this week-end to pinpoint important gameplay elements. Ridiculous do i hear ? well, you do not want me to screw it up "à la Tetris DS", do you? Okay. As far as it goes, the relative speed of sprites (torpedos, ships, submarine, fleet) seems to be of high importance: you can escape a opponent sub only vertically : it is just too fast horizontally. You can shoot them with torpedos, but only left-to-right: your sub never turns back.

(PS: I started coding it this week-end and i'll translate more as code progress. It's time i take care of that coffee breach on deck 2. The bridge is yours.)

L'expérience du "tetris DS" et de Space Invaders Extreme m'a appris au moins une chose: quand vous reprenez un vieux jeu, faites-le bien ou ne le faites pas du tout. Donc, au niveau du gameplay, quelques petites contraintes supplémentaires viennent pimenter l'affaire:
• un seul missile et une seule torpille à la fois sur l'écran.
• les chasseurs 'suivent' votre sous-marin horizontalement et traversent l'écran, soit de gauche à droite, soit de droite à gauche.
• votre sous-marin se déplace plus rapidement de haut en bas que de gauche à droite, les chasseurs, à l'inverse, montent et descendent difficilement mais avancent deux fois plus vite que vous (la vitesse de vos torpilles).
• Le fuel (temps) ainsi que le nombre de torpilles est limité.
• Les croiseurs sont légèrement plus lents que le sous-marin, et les navires facilement deux fois plus lents que les croiseurs.
• Votre sous-marin est toujours pointé vers la droite et ne peut donc tirer des torpilles que dans cette direction.

Seafox sur C : l'original En principe, la caravane passe en boucle jusqu'à son élimination complète. Ca par contre, ça ne me plait pas trop. Je ferai en sorte qu'elle ne défile qu'une seule fois, mais avec la possibilité pour notre petit sous-marin de passer en mode "turbo" pour aller la rattraper et lui tendre une deuxième embuscade . . . ensuite ... hmm ... pourquoi pas voir couler les navires dans l'écran du bas ... il faudra (peut-être?) les éviter et ils pourraient laisser s'échapper des bonus (ultra-missile pouvant couler un croiseur, torpilles plus puissantes, renfort de fuel, brouillage sonar (invisible aux chasseurs)) etc.

Oh, oui. Dans la version C64, tous les navires ont la même taille ... bin à défaut de les faire aussi variés que sur commodore, les miens ont des tailles assez variables ... on pourrait presque jouer au combat naval, tiens ;)

Enfin, faisons d'abord le code tout simple, on enjolivera ensuite ^_^

allez, let's go : je commencej'ai commencé la programmation ce week-end (par des ajouts à mon moteur de jeu et des petites classes pratique genre "Contrôleur-qui-suit-une-cible", etc.)

Note pour plus tard : dans le jeu C64, les "recharges" sont effectuées par un sous-marin qui lache un dauphin une fois arrivé dans le coin inférieur-droit de l'écran. Une sorte de poisson-pacman va tenter de gober les munitions du dauphin on a en gros qu'un demi-écran pour faire la recharge, et surtout, la destruction du dauphin déclenche immédiatement l'envoi d'une sorte de baleine vengeuse à laquelle vous ne pourrez pas échapper. Greenpeace veille ^_^. Ca me paraît un peu beaucoup pour une première implémentation, mais c'est à mon avis un des éléments du gameplay qui en faisait un jeu sympathique et attachant (au risque de distraire le jeune joueur de la mission de base -- couler les navires -- d'ailleurs).

PS: mon frère est sur la brèche pour le son, bien sûr ... Par contre je cherche un artiste pour me refaire les fonds (là, j'ai pris une image sur Internet -- et donc pas libre de droit -- juste pour avoir une idée de ce que ça donnerait ...)

Saturday, September 06, 2008

Recreational Game Maker

Après les éditeurs Borland et Quickbasic, voici probablement l'écran que j'ai le plus vu pendant mon époque "MS-DOS". L'éditeur de blocs du Récréational Game Maker. Une de mes références (en particulier du point de vue de ce qu'il ne faut pas faire) pour SEDS et les autres éléments de mon "game maker pour DS" à venir ...

Premier reproche: la palette. Avec un pixel de large par couleur, c'est quasiment impossible de prendre la couleur recherchée du premier coup. Il faudra peaufiner avec les touches [+] et [-] le plus souvent. On aura droit à deux couleurs (bouton gauche et bouton droit) comme sur la plupart des éditeur graphiquesde l'époque ... et il faudra aller cliquer sur la case avec la couleur en question qui se mettra alors à passer toutes les couleurs en revue jusqu'à ce que vous cliquiez quelque-part sur l'écran ... tu parles d'un truc intuitif !

I've been spending *hours* on those screens ... Recreational Game Maker has been both a way to experiment more games than i could program myself, but also the program that made me realising that i wish to run my own (ultimate) game maker at the end of the nineties. Most of the user interface was absolutely horrible to use, left very little room for mistakes (e.g. no undo feature except re-loading a tilesheet and saving often) and led to fairly blocky object design. Somehow, it is my reference on "what not to do in [SGL]EDS".

L'outil que l'on retrouvera sans doute le plus, c'est cette liste déroulante de blocs dans laquelle il faut aller pêcher le bloc qui nous intéresse. Assez pratique quand vous avez les blocs de plusieurs niveaux dans un seul "bloc set", dès que l'on complique un peu les niveaux, en revanche, ça devient rapidement une horreur absolue ... On passe plus de temps à regarder défiler ses blocs qu'à véritablement construire son niveau, si vous voulez mon avis!

Autre défaut à mon avis, l'omniprésence du glisser-déplacer. Vous voulez choisir un bloc à éditer? déplacez-le vers la grille. Vous voulez le 'déplacer' dans la liste des blocs ... de nouveau, copier/déplacer. Même l'écran de réglage des paramètres fonctionne entièrement ainsi. Ecran qui en-dehors de ça n'était pas mal fait, d'ailleurs, donnant assez bien de flexibilité avec ses "special counters" (en fait, des clés), les hit points, les blocs générateurs de monstres ou animés ... Croyez-y ou pas, mais quand il s'agissait de créer un boss, c'est le plus souvent ici que tout se jouait, grâce au fait que le contact bloc/perso était géré indépendamment de l'animation du bloc ...

My #1 rant on that software was about monsters management. Basically, a monster had a single animation sequence and a single movement pattern (though it could have a separate "attack pattern" when player comes close enough). The only way to build more sophisticated monsters was to "chain" them once killed. That meant that they could not change their behaviour on their own without being indestructible and (vice-versa) that they couldn't require several hits without having their state reset while switching to their new animation/pattern.

They couldn't shoot either (though i managed to have bosses transforming harmless, almost-invisible dots into deathly fireballs later on, but only at the expense of complicated monster/room inter-dependencies), nor could they detect when they were stopped by a wall (but they stopped nonetheless) or that they were walking in the sky. Most of my "state machine scripts" in the current GEDS engine are designed to work around those limitations and still allow graphical edition... yet i have no graphical editor so far :P

Là où j'ai plus galéré, c'est avec l'éditeur de monstres. Au départ, les blocs sont créés tout à fait normalement (mais avec une couleur de transparence quand-même). Il faudra alors construire des séquences pour animer tout ce petit monde (heureusement, l'éditeur de blocs nous avait déjà permis de tester des animations, mais il faudra les reconstruire ici. Pas de chance.

Le "comportement" de ces monstres sera définit d'abord par "quand il est touché, il se transforme en ...", ce qui permet explosions et compagnie (le plus simple) mais aussi des effets plus intéressants, comme de rendre le monstre "furieux" et de le faire courir droit devant lui s'il est touché. Le joueur aura alors intérêt à être rapide pour tirer encore. A noter aussi que ce sera le seul moyen d'avoir un monstre qui nécessite plusieurs coups pour être éliminé définitivement.

L'autre point-clé, c'est cet espèce de "radar" dans lequel on va définir la succession des mouvements (genre trois blocs en avant, trois blocs en arrière, trois blocs sur le côté, trois blocs de l'autre côté ... Il était une bergèèère qui allait auuu ... euh ... pardon, je m'égare). Le hic, c'est que tout celà se détermine de manière complètement indépendante des maps. Il faudra donc être particulièrement vigilant à la longueur que l'on donne à nos plateformes si l'on ne veut pas qu'un monstre se mette à marcher dans les airs, car s'il sont capables de ne pas rentrer dans les murs, rien n'a été prévu pour les obliger à rester au sol, ni à faire demi-tour dès qu'un mur les arrète (on se retrouve alors avec un monstre occupé à faire du sur-place pendant deux secondes avant de se retourner).

Voilà. Il y aurait beaucoup d'autres choses à en dire, j'imagine, mais j'ai d'autres projets pour le week-end. Je vous laisse donc avec ce petit screenshot de Twinbee Land, collaboration de Pascal Deiting et moi-même à l'époque ... Un tileset de base que j'avais dessiné pour Badman II et qui a eu la vie dure, vu le nombre de jeux dans lequel on l'a retrouvé :P

Read the whole story on "my RSD game-maker years" side-page