Friday, April 27, 2007


J'ai l'routeur qui bat l'beurre
Les paquets, détraqués,
La mémoire qui se barre
L'CPU qui va plus
Les fichiers cabossés
L'répertoire, quelle histoire
Les compteurs, plus à l'heure

J'ai l'alim' qui déprime
Les tampons, sont ronchons
L'interface qui trépasse
Le noyau qu'à trop chaud

Ah! qu'c'est embêtant de faire un' thèse quand tout fout'l'camp
Ah! qu'c'est embêtont d'avoir un réseau qui pêt' les plombs.

Monday, April 23, 2007

Amazing Tiles

I think the tileset of Kirby's Amazing Mirror is worth a couple of comments. I tried to pick the most interesting tiles on a set of screenshot i gathered a few weeks ago. One interesting thing in KAM is that tiles can be of two kind: "block" tiles, that almost don't use the transparent color, and "edge" tiles that merely contain a few pixels for "ending" the blocks. The advantage is that you don't get the feeling of an "squared" world like in Bilou/quickbas or even Super Mario Bros., but sometimes, it looks like they just missed the right tiles (e.g. there are less 'edges' than blocks, and not all blocks can lay gracefully as the border of a larger patch. Since i now have a "color composer" in SEDS, but still no "color mixer" nor a proper "color editor", i fear you'll have another "palette saving" post on my blog like the one i did for fury or Indigo Art :P 

 Il y a quelques tiles que j'aime particulièrement bien dans Kirby Amazing Mirror (GBA), que j'ai essayé de récupérer sur les captures d'écran que j'avais sous la main. Comme je l'ai fait jadis avec Fury of the Furries, j'ai donc envie de les analyser un peu pour voir ce qu'il y a de bon et de moins bon dedans. Comme j'ai (enfin) un "encodeur de couleurs" sur mon sprite editor (mais pas encore d'éditeur de couleurs proprement dit), j'en profite pour leur chiper leur codes RGB comme je l'avais fait dans un de mes premiers post sur les dessins de Dan/IndigoArt. Gardez en tête que je n'ai choisi que les tiles du type "block", c'est à dire le milieu des murs. Les graphismes dans KAM ont ceci de particulier que la plupart des "bords" de murs sont réalisés par des tiles séparés (et non-bloquants) contenant d'habitude juste quelques pixels. Une bonne idée à retenir ;) Pourquoi cette obstination pour l'étude des palettes ? parce que les couleurs que vous utilisez vont conditionner les matériaux de vos sprites. Et qu'un dégradé parfait du noir au jaune (par exemple) ne donne rien d'autre qu'une espèce de plastique caoutchouteux.  

(i shall name the columns A,B,C ... and the rows 1,2,3 ... as in Excell) mudwall : b36a26 - 874721 - 763e26 - 622f14, notice how they have two main tiles for mud (F2:G2), one with extra shadow that you can virtually place anywhere. At the 'bottom' of the wall, we have grass and almost only the middle tint of mud-brown (K2,K5). Note also that the lightest shade of brown is only used at the top of the wall. Molewall : aba375, 756f31, 372e0d, 362f12, 2f240e. Here too, there are two main styles (J3, I4) that you can combine the way you want. 

 Premier point intéressant, les "murs" de fond (K2,K5,J3,I4) qui vont tapisser l'ensemble des caves, quand la superbe (si, si) toile de fond n'est pas visible. N'utilisant généralement que très peu de couleurs, ils se déclinent en plusieurs intensités (clairs, moyen, sombre), et évidemment, le plus sombre n'utilisera que les deux teintes les plus sombres (avec peut-être l'un ou l'autre pixel plus clair, mais pas trop), une technique révélée notamment dans le tutoriel que Cyril avait déniché. Dans la construction du niveau, on gardera évidemment les tiles les plus sombres pour que les éléments plus larges puisse y faire "de l'ombre". Le tile intermédiaire servira plus aléatoirement pour rompre la monotonie d'un mur tout identique. rocks (L1:M2,H1,J1,C2,H2,J2): fbf0b2 - eac986 - e9aa7e - c88c56 - b46928 - 743e22. Notice the general "angular" look with sharp transitions, the scratches and dithering on darker area only. The bottom of the pillars is typically given a round shape on 2 blocks (H2,L5:M5 giving you an overview of what it does on a 16x16 block). It is accompanied by a rather straightforward green shade for the "veggetation" around: c5e7d6, 52b84a, 009a4e, 00572d. coldrocks : 68f8f8, 4ea7f7, 3888cf, 3b629d, 354a83, 3d4971, 2d3858, 212030. The have a general round look, and only some of them feature the lightest shade (A1,C1,E2). Note the strong horizontal scratches. Mixing blocks of various "average shade" is what will give your block wall an interesting look. Bluerocks : b0f2ff, 81afbf, 5a7f91, 223754, 030119. These are the ones where 32x32 patterns are the easiest to identify (A3:B4, D3:E4 and G3:H4), but the designer sometimes also put E3 and E4 nexto the G3:G4 block to get a 48x32 chunk. They also sometimes allow to reuse tiles of e.g. A3:B4 to form new blocks such as in L3. One thing i'm not quite fond of int this tileset is its borders. They seems to have to few blocks, especially in the corners, which result in arbitrary square 'cuts' in the background with no apparent reason. 

 Je vais m'arrêter un peu plus sur les "Blue rocks", dont on peut identifier quelques patterns "32x32" qui reviennent assez souvent. En réalité, Il s'agit d'un pattern de 48x32 "tilable" (le gros bloc de droite et la colonne la plus à droite du gros bloc au centre) qui a ensuite été décliné en une version avec un trou, et une version avec de l'herbe (et en diagonale, en plus. j'adore). Notez qu'ici aussi, la palette est très restreintes ... trop à mon goût, en fait. Je l'ai réencodée, essayé de faire des rochers mais sans résultat très convaincant au départ, puis j'ai re-pixelisé ceux qui sont ci-dessous, sans être convaincu par le résultat ... Certaines teintes bleues (dans les ombres) étaient décidément trop voyante. J'ai rejoué un coup au jeu pour me rendre compte qu'en effet, c'était bien comme-ça là aussi (bof). Dans la série "brisons la monotonie", on notera aussi par exemple le petit coquillage ou les fleurettes de l'ensemble "sand" pour les îles paradisiaques d'Olive Ocean.  

You can see here a good rule to follow when doing rocks-style tiles. Most of your rocks do not use the lightest shade (or only for small dots) and mainly use shade 3 with shade 2 as highlight. You then add a couple of rocks (2 per 32x32 pattern is nice) that use shade 2 as main shade and shade 1 as highlight, and a few rocks that use m4:h3 shades. do not hestitate to have shadow area that are larger than half a medium-sized rock.  

Bluerocks' grass: a7f444, 5bc813, 1b9608, 0d5513. That was for the small patch of grass (i like its diagonal look) on A3:B4. Grass on the ground (C4) add the d1f764 shade and has rather thick look (4-5 pixels wide). It also nicely tiles ^_^. You may opt for C3, F3 or I3 for the top.  

Sand: f8bf7c, d9a35d, c68243, 955112, 934e0b (A5) with a more "messed pixel" look to give the granularity. Corner blocks (add tints 6c250f and 53271c (with more red) for the shadows. Note that here too, the 'grass' (B5, F5, H5, I5) have its own tint (90f599, 69d275, 379346, 2f9541, 0b5c0f) that gives a 'pastel' look to the level. Note too, how they have alternate 'grass with flowers' or 'seashell-in-sand' to break the monotony.

Friday, April 20, 2007

Ketchup Mock-up Spring Compo 2007

Ce ne sont pas les compétitions qui manquent sur la scène DS. Sponsorisées par l'un ou l'autre vendeur de linkers, par exemple, avec des prix venant de leur catalogue. La "NeoFlash" est une des plus connues, et quand j'ai fait mon petit test 'Santa Dangerous' vers le mois de décembre, c'était bien sûr dans l'idée d'avoir un jeu au parfum chrismal à soumettre.

Dans le genre, redbug nous a lancé une compétition assez spéciale: la compétition de mockups. N'importe qui sort son photoshop et fait une ou deux "captures d'écran virtuel" de l'application-qui-tue qu'il voudrait avoir sur sa DS. Un jury de 5 programmeurs passe tout celà en revue pour choisir les 5 meilleures.

Ensuite (et c'est là que ça devient fun), ils codent les applications pour les soumettre à la compétition NeoFlash de l'été (bonne chance, les gars).

J'ai regardé ça d'un peu loin d'abord (j'avais une conf' dans le pipeline, et croyez moi, c'est un autre genre de compétition), ne sachant pas trop quel était le principe ni le mode de soumission, mais gardant quand-même un oeil sur les différentes propositions ou mettant mon petit commentaire par-ci par-là.

Puis BangBash (encore lui ;) m'a inspiré une application qui-ne-tue-peut-être-pas mais qui serait diablement pratique pour continuer à développer le jeu Bilou depuis mon divan ... Un programme d'animation de persos 3D.

- import 3DS models (as files on SD card or via WiFi)
- allow creation of composite models by drawing separate objects one after each others
- define anchors and “strings” between objects of one model, as well as a ‘rest position’ towards which the angle/distance between objects
- record animations out of touch input (e.g. by defining a target position and speed and let the character evolve to that location). Visualize the animation on upper screen
- colorize the 3D model
- stamp sprites on top of 3D objects (e.g. the eyes of the character, etc), from a sprite palette
- substitute one object with another to do “3D sprite” animation
And most importantly: save the generated animation in a way that will allow it to be imported in a 2D/3D game engine (either full 3D engine, or something à la new super mario bros.)

Thursday, April 19, 2007

Power to XML

Okay, it's not everyday i say XML is a GoodThing(tm), so you should rather take it now before i take it back.

I'm busy merging my active networks experiments into the next chapter in my Ph.D Thesis, and being a linux-guy, i'm doing this with gnumeric for data collection and analysis, then using inkscape for converting the .svg file into a encapsulated postscript that i will later on integrate in my Latex document.

This is usually done in one command line like

inkscape ixp-collect-latency.svg --print=">eps/ixp-collect-latency.eps"

Well ... usually. This time it didn't worked. For some unknown reason gnumeric decided to include the whole dataset in the figure (rather than what can be seen through the window i defined on the axis), making weird red lines going out of the graph and stroke through the whole page.

So what's the relationship with XML you will ask? very simple. Open the .svg with inkscape (which happens to correctly hide the part of the line i don't want to see) and click in the wild where you know the line goes on. You magically captured the whole path. Pretty weird, no? Now, the good thing is that .svg files are actually XML files describing what should be drawn, where it is, etc. And inkscape features that geek-must-have "XML editor" where you can pick any item you want and have any of its properties modified (well, you could do it with a wonderful text editor too, but figuring out which of the 100+ svg:path is the red line could turn into an unpleasant thing)

So now that i have the svg:path element opened in the dialog box, i can simply pick the actual path stuff and remove the part i don't want (e.g. those lines that have negative X coordinates :P) For those who wonders, there is simply a "d" attribute of the path that consists of M <coordinates> for setting the first point followed by a collection of L <coordinates> to stroke a line to that location. Pretty easy to update, no ?

Now you might argue it doesn't matter whether that's XML and that all i'd have needed was software without bugs, but we all know there cannot be software without bugs, so the fact i can save the day by hacking data around is imho a GoodThing

Monday, April 16, 2007

Mia(m) Mia(m)

Touch Me (I'm Famous)
Prenez du bon code, une bande son chantée chouette et quelques sprites de Yoshi's Island. Ajoutez un soupçon de blocs en provenance de Super Mario Land 2, laissez mariner pendant quelques heures dans la sauce Mia, et vous aurez un délicieux jeu-à-rythme homebrew!

"Touch Me (i'm famous)" est pour ainsi dire un des tout premiers jeux que j'ai réussi à faire fonctionner sur ma DS. Un concept simple de jeu sur un seul écran, où il 'suffit' de toucher les ennemis du stylet pour les dégommer. Là où Mia entre en scène, c'est que pour faire un bon score, il vous faudra en plus les toucher en rythme avec la bande son.

Good soundtrack, some sprites coming from Yoshi's Island rip and a few Super Mario Land II tiles ... let it cook gently, add some Mia sauce and serve your delicious homebrew rythm game. Mia's "Touch Me" is one of the first ever (3rd-party) homebrew I managed to run on my supercard. I was surprised by how simple the concept is (you just touch characters with your stylus), but engaging you to improve yourself with short sessions (session terminates with the song) and scoring that depend on whether you tap with the beat or not.

Tout récemment, Mia nous a remis le couvert avec Everlasting Love. Un jeu de plateforme où vous faites évoluer un petit singe à travers un niveau retors. L'astuce ? Plus vous pressez le bouton de saut proche du temps, plus le saut sera haut. Coup de pouce pratique, le petit singe en question marque lui-même le temps.

J'avais évidemment envie de savoir pourquoi avec des idées aussi chouettes et un bon background de programmation, Mia se limitait à des repompages de sprites pour ses jeux. Je m'attendais évidemment un peu à sa réponse ... sans graphiste correct pour faire équippe avec lui, il a choisi -- comme bon nombre de programmeurs homebrew -- de faire de la récup' plutôt que de nous donner un jeu insipide où on contrôlerait une balle moche dans des décors croûteux.

More recently, Mia strikes back with "Everlasting Love", a platformer where you manoeuvre a cute monkey in dangerous blocks. The trick is that the length of the next jump depends on how close to the beat you are. This time, it's not enough to fit the beat: you may need sometime to go intentionally with an after-beat.
With such inventive designs, I was somewhat disappointed that all of Mia's graphics are recycled rips of SNES/GB games. Although it produce a nice retro style, it miss the opportunity of giving fresh style a chance. Like many fellow homebrew coders, Mia has no artist sibling to assist him and don't want to create a game with an uninspired ball moving along in abstract backgrounds. May Big Bowser leave him unharmed.

Trop nostalgique que pour l'en blâmer, bien sûr, j'espère qu'il ne s'attirera pas les foudres des Big Bowser.

Jusqu'ici Everlasting Love est -- après Lemmings -- le jeu où j'ai massacré le plus de mammifères :P

Entre les deux, il y avait Ninji & Zarbi, un jeu d'adresse comme on aurait pu en voir sur nos machines d'arcades dans les années '80. Enfin, si les machines d'arcades avaient eu deux écrans. Le côté étrange ici vient du fait que l'on contrôle deux personnages à travers un seul pad. Le but est de rebondir sur un maximum d'obus, et d'attraper au passage les petites consoles DS qui apparaissent (généralement en haut) de l'écran supérieur.

C'est probablement le jeu de Mia sur lequel je totalise le plus d'heures, au passage, probablement plus que tous les mini-jeux livrés avec NSMB réunis.

Et pour ne rien gâcher, Mia nous livres ses sources (compatibles PALib) lorsqu'il cesse de développer un jeu.

Merci, Mia. Continue: on adore!

Friday, April 13, 2007


i see _many_ people searching for filetransfer utilies over WiFi for the DS. I have been too, and i have been disappointed by dsftp tool (see other post). One of my homebrew project is to allow such file transfers, not over FTP but something simpler, more adapted to the wireless handheld nature of the DS.
The initial project was 'runME': receive .nds file over wifi and execute it, but that might get dangerous ... and that's not what i'd like to do for first tests. I then sought i could beam palettes for my sprite editor, but again, it turned out to be simpler just to write down a trivial palette editor :P

Transferring snapshots and other PCX images over Wifi and later unpack them to screen for a grabbing application could be more interesting, though... less dangerous too (transfer and file saving is decoupled), easy to handle (64K limit for a PCX file to be displayed by the DS is fair), and useful (atm. i need to recompile the grabber if i want to grab from new pictures).

That won't be for the next month, but i'll try to work it out during summer times.

NSMB vs. SMB3 -- the failed challenge

New Super Mario Bros. is presented to the public as a revival of the original Super Mario Bros. gameplay, still in many aspects it looks more like the number-one platformer of all times: Super Mario Bros 3 (17M sales!). There is lots of fun in NSMB but imho, there is also many things that can explain why it didn't took off in the expected way.

Save or Wrap?

one toot on this whistle will send you to a far away landNSMB let you save your progression and come back to any level at any time. SMB3, on the other side, wasn't able to save anything due to hardware restriction. For a pocket game, saving when your bus is finally coming is certainly a must, but imho, the Japanese Giant has not found the ultimate combo yet. Now, you might tell me that SMB3 is likely to be a boring game since it will require the player to clear world 1-5 every time he wants to try world 6 again.Wrong.

Bien sûr, console portable oblige, NSMB vous permet de sauver presque à tout moment et de revisiter n'importe quel niveau quand vous le voulez. A l'époque de SMB3, c'était tout simplement impossible. Devait-on refaire tout le jeu à chaque fois pour autant? Non. Grâce aux flûtes magiques, quelques minutes de jeu suffisaient à un joueur débrouillard pour retourner au monde 6 où il était resté bloqué la dernière fois sans pour autant devoir franchir à nouveau les mondes 1 à 5 ...

Wrong because SMB3 features warp-whistles that you can find in hidden area. If you're a clever gamer (or found out the information somehow), you'll grab enough of these whistles in about 3 minutes of game and you can wrap where you actually want to play.

NSMB also has "wrapping canons" which lets you reach any world quickly, but where's the point? Who around the players of NSMB *needs* a wrap since the game remembers you've cleared all the levels. I own NSMB for about 1 year now, and i discovered world-1 canon on my own. It has never been useful to me anyway. I wasn't ready to face level X challenge by that time, and once i reached level X, i had no need for the canon. The game is sleeping in my wallet in case some friend wants to challenge me in VS. mode, somehow 95% completed game and my Bros. game that i can't decide to erase to play a fresh new game. My guess is that i'll own Yoshi's Island DS before i want to do another game of NSMB.

On trouvera évidemment le pendant dans NSMB (les "canons") permettant de sauter des mondes si nécessaires, mais franchement, c'était inutile à mon sens, puisque de toutes façons, le jeu retient votre progression. Pire, deux des 8 mondes sont 'optionnels' ... non, pas cachés au sens de la StarRoad ou du niveau "Special" de SMW, mais vraiment optionnels. Bof.
Evidemment, le coup des flûtes aurait été difficile à reproduire en 2006, à l'heure d'internet ou aucun secret ne tient bien longtemps. A moins ... à moins que l'accès à la 'warp zone' ne soit situé à un emplacement différent sur chaque DS. On pourrait même avoir Toad qui vous indiquerait un indice sur la position du canon vers le monde X une fois que vous l'avez atteint, avec suffisament de "star coins", par exemple.

Now, we're at Internet era, i admit. The location of a secret canon can't be kept secret for long enough ... except ... except if every game rely on some hardware unique ID to decide where the actual secret canon entrance stands among all the secrets of the world !

Special moves vs. Special suits.

Another point where NSMB looks more like SMB3 is the "special abilities". giant mario and mini-mario can hardly be compared to P-wing or hammer bros. suit, but admittedly, they strongly depart from mushroom and flowers. Allow me to put the koopa-shell and the frog suit in the same bin. Fine? Fine.
If there's no special item to help the player do better jumps (that's what the raccoon suit and SMW's magic feather are all about, right), what else? Special moves. Especially wall-bouncing and wall-grabbing. Once you've missed a jump to the point you're below the ground level in any mario, you're doomed. Period. Not in NSMB. After a couple of hours playing, you'll notice that repeatedly jumping from the left to the right wall of a pit will let you jump out. Maybe in a perilous position, but who cares peril compared to impending death? I wouldn't have mind it if it required you to grab some sort of special item (e.g. you'd have to chose between the magic-shoe-that-do-wall-bouncing or the fireflower) requiring the player to watch his steps if he want to keep the ability. No. NSMB gives it to Mario as a standard ability just like he can jump or duck. That's somehow sad, imho.

Un autre point sur lequel NSMB ressemble à SMB3, c'est les mouvements spéciaux. Mario-géant et mini-mario sont peu comparable à la P-Wing ou au costume des Hammer Bros., j'en conviens, mais ils en restent plus proche que des champis et fleurs de feu habituelles.
Mais alors, qu'est ce qui va nous aider à réussir nos sauts, si on a pas de raton-laveur? Les mouvements spéciaux, bien sûr. Mario peut maintenant s'agripper aux murs et même y rebondir. Dans tout autre Mario, certains faux-pas équivalaient à une mort certaine ... plus dans NSMB! Vous pouvez à coup de pied vous sortir d'à peu près n'importe quelle situation!
Je n'aurais rien dit si on obtenait ça que temporairement via des bloc-question, mais non. Il s'agit bien d'un mouvement aussi élémentaire que sauter ou s'accroupir. Re-bof, je dis.

Maps vs Maps.

The first similarity any infant should notice between SMB3 and NSMB is the world map. It has been so successful by SMB3 times that it is now a de-facto standard in any platformer. Still, SMB3 map was an addition to the gameplay while it is just a "level selection" stuff in NSMB.

Where are those 'non-level' spots that you need to cross and where you could be challenged by a Hammer Bros? (i truly mean 'challenged': they can come to you, they can block your path, etc)

Reste les cartes. Un gamin de 3 ans verrait immédiatement la similarité entre la carte de NSMB et celles de SMB3. Et pourtant, alors que SMB3 en avait fait un élément à part entière du jeu, elles n'offrent guère plus d'intérêt qu'un menu de sélection de niveaux dans NSMB. Même le chateau de Peach (dans mario 64) était plus fun.

If i can make it to the castle with 50% of the levels, where is the incentive for clearing the whole world? please don't talk me about coin stars or items collecting. I'm not the kind of pokemon addict that digs Zelda's overworld to trade seashells against useless figurines, right ? SMB3's castles were floating fortresses and they could hover the whole world to anchor at any point once you missed the challenge. That was innovation. That was replay value. You went it straight to the fortress leaving 50% of the world the way it was? well, that's your choice, but don't complain if you now have 3 more levels to clean before you can re-try the fortress just due to a missed jump, right?

Je m'explique. A quoi bon terminer tous les niveaux d'un monde si je peux atteindre le chateau en en laissant la moitié de côté ? Je sens que vous allez me parler des pièces-étoile une fois encore, mais je vous arrête. On joue à Mario, ici, pas à échanger des cartes panini, d'accord? Bon. Dans SMB3, le boss final se cache dans une forteresse volante qui se balade sur la map jusqu'à ce que vous ayez battu le boss ... Vous voulez aller droit au but et laisser la moitié des niveaux de côté ? A votre aise. Le moindre faux-pas dans le niveau du Boss, et vous pourriez bien vous rendre compte qu'il vous faudra nettoyer trois niveaux de plus avant de refaire un essai. Ca, c'était de l'innovation. Ca, c'était du 'replay value'.

Tuesday, April 10, 2007

mine de rien, il se taille ...

une petite minute de répit pendant la fête de Pâques ... je sors mon calepin à level design et mon bic ... "Tu fais quoi ? Tu fais quoi ?"

*soupir* mon neveu, Rémi, 8 ans. j'explique, j'abandonne mon niveau en cours et j'en choisi un déjà un peu fini "c'est pour faire un jeu vidéo. Tu vois tu es ici, en bas, et tu dois aller là, en haut". Il pose son doigt sur la feuille, suit le mur
"non, pas comme ça." j'explique encore, tu ne peux que marcher au sol ou sauter d'un livre à l'autre comme ça ... Ca a l'air de l'amuser... il escalade les bouquins, je fais balancer le bloc pour les livres en déséquilibre ... je fais moi-même BangBash avec mon doigt en secouant le bloc pour montrer que, quand bangbash cogne un livre, tout tremble ...

En deux minutes, il est arrivé en haut du niveau. Pas dur sur une feuille. "Tu en as un autre?" je cherche .. pas assez vite.. "Tu en fais un autre?" je ressort mon bic ... je vais peut-être faire du level design, après tout. Je dessine quelques pointes de crayons, une plateforme, deux livres "A mon tour" qu'il me dit. je lui donne le bic, et c'est parti.

Easter eggs have all been found, and my little family is chatting all over the place. To keep my young nephew Remi entertained (and myself in the armchair), i'm making him 'play Bilou' on our level-maps-on-paper-sheet. He especially like BangBash, which hops around and smash the ground whenever Bilou is nearby. After a few minutes, he asks me whether he could draw his _own_ level. "Sure you can", i say ... I'm lacking inspiration for the next one, so maybe some fresh ideas could be useful.

Un conseil: ne sous-estimez jamais un gamin de 8 ans quand il s'agit d'inventer un niveau de jeu... Il n'avait jamais fait ça avant, et il m'a sorti des "pompes pour remplir le trou avec de l'encre" et "une corde à laquelle il faut s'accrocher pour attraper toutes les pièces" puis deux ou trois trucs que j'ai du retirer du niveau du genre "un avion qui va voler au-dessus de l'encre jusqu'à la sortie ... un peu anachronique.

Le hic principal: il n'a quasiment utilisé que des "bangbash" comme ennemis... Pas étonnant, me dira mon frère (un personnage qui secoue tout le bloc, c'est marrant). Je mettrais bien quelques crayons à la place. L'autre ennui, c'est que je n'ai toujours rien de convaincant pour éliminer les crayons, jusqu'ici. Avec la récente refonte des attaques spéciales de Bilou, j'ai éliminé le "coup de poing téléscopique" (trop Rayman) et je ne peux pas compter systématiquement sur la casquette de Bouli (d'ailleurs, elle n'a pas d'effet sur les crayons dans la BD).

Well, you can check out the result (which i redrawn because most of his ideas were told more than drawn), and i found it pretty interesting. He mastered in no time where to put bonuses that are hard enough to grab to make them a reward, and i like how he did a level where you go back and forth on several planes rather than a flat, all-straight, level. All i had to add was secret caves here and there, and (unfortunately) dropping the 'plane that takes you to the exit over the ink swamp', as it wasn't very 'schooly'.

Il me faut donc un monstre en plus dans la school zone ... quelque-chose de suffisamment petit et simple à évincer pour que je puisse me permettre d'en faire réapparaître indéfiniment (contrairement aux crayons), de suffisament résistant pour que ça aie un sens d'assomer un crayon avec (donc, exit la gomme de porte-mine). L'équivalent de l'appleman dans la forêt ou des goombas de mario (les shyguy de Yoshi's Island, c'est bon aussi)

C'est de nouveau mon frère (cyborgjeff) qui m'a proposé de réintégrer le taille-crayon comme monstre "plus bête que méchant" dans la School zone, d'où les quelques croquis ci-contre pour essayer d'en trouver un qui donne bien. Le "U" à l'envers de la lame donne quelque-chose de plus intéressant à mon goût. J'éviterai le no. 2 (en haut à droite): trop "vigilant" à mon goût.

J'amais bien le côté "grunt" du 3eme, mais c'est un peu dommage de n'utiliser que le dos du taille ... D'où le petit dernier qui tire la mine avec des sourcils énormes. Je trouve qu'il a bien la tête de l'emploi ... se faire pwn'er pour être transformé en projectile involontaire. Plus qu'à pixeliser ça...

I just have an issue with the fact he mostly (only?) used bangbash as baddie. Okay, that's the only one i truly involved when he was playing. Why would he use pendats in that case? But why am *i* not using more pendats ? Chatting with my Bros. revealed that i was missing some grunt-and-mostly-harmless baddie that could respawn everywhere, be dispatched with a single jump and used as a weapon against pendats (just using crates à la Titus didn't pleased me).
And my Bros. also came with the monster i was missing: which you see overthere. The Bored Pencil-Sharpener.

Sunday, April 08, 2007

un arbre cachant la forêt (update)

Tiens ... je l'avais oublié, celui-là, quand j'avais fait mon analyse de la pixelisation des arbres ... Yoshi's Island, le niveau "touch fuzzy, feel dizzy" est à mon avis un bel exemple de forêt numérique réussie ... De beaux troncs (peut-être un peu trop sombre sur un côté), même si le style "crayonné" donne un look curieux à tout le jeu et ne nous permet pas vraiment de nous en servir pour apprendre à faire de beaux décors en pixels ...

Même reproche que pour Rayman: les arbres sont (presque) juste des figurants. On y grimpe pas, ils ne nous barrent pas la route. Ca, c'est le rôle des blocs rosâtres qui sont un peu partout. Pas vraiment gênant dans un 'side-scroller', mais un peu dommage dans un jeu plus orienté "puzzle" comme rayman. Par contre, là où ils ont fait fort, c'est que le décor du feuillage est complètement "customisable" : vous pouvez donner n'importe quelle forme aux différentes couches de feuillage, les imbriquer au gré de votre fantaisie etc. Les lianes sont elles aussi purement décoratives (et intriguantes), mais elles ont réussi leur rôle de briseuses-de-monotonie.

Ce serait presque parfait sans ce dégradé palôt et peu engageant. Encore une fois, on se demande un peu (si on en a le temps en traversant le niveau sans toucher un des ballons moustachus qui troublent toutes les commandes) ce que l'on fait *dans* la forêt alors qu'il paraît tellement plus simple de passer dans la prairie, de l'autre côté de la ligne d'arbres.

(zoup. j'avais aussi une image de la forêt de prehisto2)

Saturday, April 07, 2007

Keen plummets into the Perilous Pit

"No sweat, o guardian of wisdom"... Prenez un gamin de 10 ans (génial, comme il se doit, sans peur et sans reproches), 16 couleurs, un bestiaire absolument ridicule mais néanmoins varié et une planète curieuse. Vous avez plus ou moins les ingrédients pour faire un bon Commander Keen.

Mais Commander Keen, c'est bien plus que ça. C'est surtout une véritable religion du passage secret - plus ou moins décelable par ce que l'on appelerait aujourd'hui "un bug dans la matrice". Cette petite erreur d'alignement de tiles qui fait que le mur a "l'air un peu louche", sans qu'on en soit complètement sûr. Si vous voyez Mario dans une situation semblable à celle de Keen juste au-dessus, on vous dira probablement qu'il s'agit d'un bug. Mais non. Pas dans commander keen. Non, il s'agit bel et bien de quelque chose de prévu, comme en attesteront les 7 vies supplémentaires et la sortie cachée qui vous attendent dans ce recoin incongru du premier niveau. Par la suite, c'est d'ailleurs devenu une tradition et, summum de la subtilité, il vous faudra bien plus de dextérité pour y accéder en mode "normal" (un coup de super-pogo étaant nécessaire) ... et faire une croix dessus en mode "expert" (les vies sup', c'est pour les débutants).

Commander Keen is probably one of the games that was the most influencial when I started designing platformer games -- and same for my brother, before me. One of the distinct traits of the Commander Keen series -- and especially Goodbye Galaxy episodes -- is the secret passages you can find, for instance because there is a small mis-alignment in the dirt tiles. See that picture of a 10-years old apparently flying on top of rocks could be thought as a bug if it was in Mario, but as surprising as it sounds, this is a planned situation in a Commander Keen game, and you're just about to get 7 additional lives to enjoy the rest of the game. You may also end up behind the background. Interestingly, the entrance to such a "game start boost" is of increasing difficulty as the player selects an increasing difficulty level for the game. For instance because it is at a height slightly above the maximum height of a normal pogo jump and that you'll need a super-pogo jump (a somewhat emergent mechanic) to reach it in normal mode while a regular pogo jump was sufficient in easy mode.

Et quand je vous dis que les passages secrets sont une religion dans Commander Keen, image à l'appui, voici le genre de scène que vous rencontrerez tout au long du jeu. Non seulement vous êtes entré dans un mur, mais il s'y cache des bonus à ramasser. Ce genre de "détour" peut parfois être plus long que le trajet ordinaire du niveau, d'ailleurs, et il faudra en explorer à fond les recoins, puisqu'ils sont truffés de marches, de plafonds bas, et d'escaliers qui vous sont invisibles... Courant également, le passage secret dans le passage secret!

So why is it so distinct? Donkey Kong Country also has a lot of hollow walls to explore and hidden treasures. Well, it is not quite the same. In DKC, a hollow wall leads to a bonus room that is independent from the rest of the level, and you're not risking your progress through the level while you're challenged in the bonus room. Additionally, you can re-visit the level at any time and try to get the secrets you missed on the previous run. I grow confident that locking the level once you beated it is an important part of the replay value of the game. If you could go back to level 1 and get the extra 7-UPs everytime you like without facing any risk, would you keep dodging hazards on slippery ground in world 4 because your lives counter gets low ?

The other significant difference is that you *see* most of the bonus you can't reach. You're teased with blinking ice cream with no visible way to access them. And unlike mario coin, there is a scale, where each bonus has its individual contribution to your score. And your score does matter, because just like in coin-op arcade games, you'll be granted an extra life when you reach a given score limit.

Mais pourquoi en faire un fromage, me direz-vous? Donkey Kong Country n'est-il pas lui aussi truffé de ces murs creux qui recellent des trésors cachés? Bin oui et non. Non, surtout parce que dans DKC, tout ce que vous aurez, c'est une 'salle bonus' indépendante du reste du jeu, dans laquelle il n'y a aucun risque. En outre, vous pouvez revisiter n'importe quel niveau à n'importe quel moment. Et ça, croyez-moi, c'est le genre de chose qui a complètement tué ce qu'il était coutume d'appeler le "replay value". Ce sacro-saint replay-value après lequel tout les éditeurs de jeux de plate-forme courent... si vous pouvez à n'importe quel moment retourner dans le premier niveau rechercher les 7 vies sup' sans prendre de gros risque, où est l'intérêt de continuer à fouiller méticuleusement les niveaux du 4eme monde dans lequel vous êtes bloqués (et où tout glisse et est infesté de plantes piranha, si vous voyez ce que je veux dire) ?

De plus, ici, la plupart des salles bonus vous pendent litéralement sous le nez, mais vous n'avez aucune idée de comment les rejoindre. Délectablement crapuleux ^_^.

Tandis que dans Commander Keen, tout bonus est bon à prendre. Au début du jeu, parce que c'est le seul moyen de se constituer une "réserve de vies" pour la suite (les îles et les pyramides sont particulièrement vicieuses, croyez-moi). Du coup, vous trouverez ci et là (un peu partout, en fait), ce genre de recoin absolument inutile dans votre progression, mais qui contient les 8 gouttes de vie (100 pour un 1up) et les 3000 points qui vont peut-être vous permettre de vous rapprocher du score à partir duquel vous aurez aussi droit à une vie sup'. Le tout gardé par un monstre invicible ou particulièrement risqué à affronter.

Parce qu'autant vous le dire tout de go: dans Keen, point de champignon magique ou de 'life meter'. Non. Ca, c'est bon pour les consoles et les machines d'arcade. Vous avez 10 ans, et tout contact avec un monstre ou un obstacle sera instantanément mortel. Ce qui transforme ce genre de recoin-à-bonus en un quitte ou double, d'ailleurs. A mon avis, c'était une des plus grandes forces du jeu.

The game is short, and the difficulty ramps up to culminate in island and pyramid levels. So your stock of 1-UPs that you build up during the first "villages" part of the episode feels important. Even though it is only 8/100 life droplets and 3000 points to your score, it always felt worth properly timing to sneak under the high-jump of that invincible, blue jumping mushroom. Even though *any contact* with a hazard means instant death. (after all, you're only a 10-year old. You're not Duke Nukem).

Hopefully, many of the ennemies found in the game are not 100% die-on-contact. The cloud, the green "snake", the walking "mimrock" and the blue ball throwing flame, for instance, only hurt you in their "attack" move. There aren't much different monsters in the game, compared e.g. to Mario World or Donkey Kong Country, but each monster has a very distinct movement and attack pattern, with funny ideas like the acid-pooping yellow "slug". Some can be permanently stunned with one gun shot. Other need several shots and the green, "arachnoïd" needs 5 of them just for temporary stun.

Tenez, je vous ai repris le bestiaire du jeu juste ci-dessus. Dans l'ordre, slug, mushroom, inchworm, wormouth, mimrock, lick, arachnoid, berkeloid, eagle, bounder et le Gnosticene ancient. Peu fourni comparé à Supermario (ou pire, Yoshi's Island) il faut bien l'admettre, mais que du tout bon. Chaque monstre a son comportement particulier:

  • slug, le chieur, qui laisse litéralement des flaques d'acide partout,
  • wormouth, le sournois, que l'on distingue à peine et qui ne grandit qu'une fois à portée de dents,
  • mimrock, le traître, qui vous suit à la trace dans votre dos en attendant une occasion de vous sauter dessus
  • arachnoid, le coriace, dont vous ne viendrez jamais à bout: assomé pour un moment au bout de 5 tirs, il finira par se réveiller. Un clin d'oeil au premier opus, d'ailleurs.
  • bounder, le bout-en-train, qui ne ferait pas de mal à une mouche (ni à vous), mais qui pourrait vous pousser dans un piège dans son enthousiasme.
  • skypest, l'exaspérant, qui vole dans tous les sens (il est alors invulnérable) et que vous pourrez uniquement écraser d'un coup de pogo lorsqu'il se repose au sol. Autant dire qu'au delà de deux dans un lieu confiné, bonjour la flippe.
  • lick, le chaud-boulette, qui ne vous fait rien au contact, mais qui crache du feu s'il est suffisamment près de Keen (et qui compte parmi les plus rapides du bestiaire).
Final level design item: the keys and switches. If you've been hunting for that damn switch that will let you progress further in a Doom/Quake-like, search no further where this comes from. This is more or less how the levels are designed in Commander Keen, and especially in the "Goodbye Galaxy" episode. To keep going, you need to be at the right place with the right switch activated. 

There are few puzzles where those switches must be turned on - then off - then on again in the proper sequence to progress, though: you can fairly safely switch any of them you encounter and watch what happens, but it gives some sneaking ambiance, which is further reinforced by the colored key-gems that must be gathered and stress your memory of the current level (so here's the  ... ah. Blue key. I expected the green one behind the red door. Now, where's that blue gate, again ?)

Maintenant, il serait inconvenant de conclure ce billet sans parler des interrupteurs et des portes. L'élément central au jeu, c'est le switch. Ce ridicule petit interrupteur qui va vous permettre d'activer (plus ou moins à distance) les plate-formes mobiles du jeu. Ajoutez à celà jusque 4 "clés" de couleur (un trait commun à bon nombre de jeux ID software) qui sont éparpillées un peu partout et vous comprendrez que l'on peut aisément perdre son chemin dans un niveau à commander keen.

Romero était sans conteste un maître du level design où vous avez l'impression que plusieurs itinéraires s'offrent à vous alors qu'en fait, il y a une seule bonne séquence d'action pour atteindre votre but .. mais vous pouvez errer aussi longtemps que vous le souhaitiez ^_^

Voilà. Les images que j'ai prises sont peut être relativement peu représentatives de la variété des décors dans le jeu (si, si) vu que j'ai mitraillé le deuxième niveau dans dosbox ... Alors si vous avez le temps, passez faire un tour sur abandonia et faites-vous votre propre opinion. Puis rendez-vous dans les commentaires ;)

(table des sprites pompée sur, les screenshots ont été pris avec the Gimp et Dosbox, principalement dans le niveau 'slug village')

Friday, April 06, 2007


Dans la folie de la préparation des faire-parts de mon mariage, j'ai envie de m'offrir un petit moment pour souffler en vous parlant d'une des rives de 'mon fleuve' peuplée de pixels chatoyants mais aussi de gouttes de sueur froides.

J'ai envie de vous parler de Commander Keen, ce gamin de 10 ans qui n'hésite pas à bondir au secours de la galaxie pendant que ses parents sont sortis au cinéma -- ce jeu où vous passez le plus clair de votre temps à ne pas voir votre personnage ... J'ai envie de vous parler de Yoshi's Island (gba) auquel je rejoue pour l'instant en attendant de m'offrir la version DS (et de savoir ce qu'elle vaut) -- un jeu au level design grandiose même si on pourrait croire qu'il s'adresse uniquement à un public tout jeune. Des niveaux énormes, où il vous faut parfois bien une demie-heure pour traverser les périls (savamment dosés)

mais le téléphone sonne.
Ce sera pour une autre fois.

Printing Faire-Parts in Linux

C'était pendant la période d'impression des faire-parts ... Réalisés avec inkscape sous linux, terrible pour de la mise en page, mais assez incomplet lorsqu'il s'agit de recoller les 2 faces d'un faire-part (ou de n'importe quelle brochure) dans un document .pdf unique.

J'ai donc ressorti ma panoplie de gourou linux (les manpages, quoi) pour chercher des "trucs postscript" pour recoller des documents à partir de petits morceaux ...

Des fois que ça servirait à quelqu'un ^_^

gs -sDEVICE=pswrite -r300 -dNOPAUSE -dBATCH

the one above allows me to merge two sides of a folder into a single postscript file with no loss of resolution (thanks to the "pswrite" pseudo-device). NOPAUSE and BATCH are needed to disable all user-interaction of ghostscript.

The two sides fpsa and fpsb were individually rendered from SVG files using

inkscape fairepart-soiree-a.svg --print=">"
inkscape fairepart-soiree-b.svg --print=">"