Et voilà le futur niveau 1 de "Apple Assault". Cette fois, mon éditeur de niveau est de nouveau d'applomb (toujours sans les monstres, mais peu importe).
At last, the level editor is back on track, and I could sketch up the first level (single-screen) for Apple Assault. Stay tuned!
For more details, just check out the comments and stuff on the last todo list.
Wednesday, June 09, 2010
Hop! Une arène ! Yeah !
Tags: apple assault, english, greenzone, level editor, mybrew, photo, screenshot
Tuesday, June 08, 2010
Animeds

So far, animation edition is pretty crude: you just push frames by clicking them on the sprite sheet, and you can't modify them afterwards. Plus, you can't save your work for later use in a game.
Le prochain "gros morceau" pour l'édition de jeux sur la DS, ce sera l'introduction d'un "véritable" éditeur d'animation. Enfin, dès que j'en ai fini avec Apple Assault et que LEDS est réparé, bien-sûr. Parce que si SEDS est déjà capable de donner un aperçu d'une animation, il faut bien avouer que devoir tout recommencer au moindre faux-pas est moyennement intéressant. Et qu'être incapable de sauver son travail le cantonne au rôle "d'outil de validation" pour les graphismes en cours.
Pourtant, le workflow de base restera le même: une fois qu'on s'est choisi la spritesheet avec laquelle on travaille, on ajoute des étapes à l'animation en cours en cliquant sur les sprites sur la droite de l'écran.

- click a frame on the timeline to select it
- L-click somewhere on the time line to move it there
- select another frame,
- move it as well.
- click the "time arrow" to adjust the whole animation duration (and scale delays of every frame accordingly).
Pour pouvoir gérer et retoucher tout ça, il faut que j'ajoute un widget "ligne du temps" sur lequel il serait possible de déplacer les étapes d'animation pour ajuster les délais. Accélerer et ralentir l'animation complète peut aussi s'avérer intéressant. "Historiquement", les animations sont stockées sous forme de commande texte parce que je n'ai pas voulu introduire de dépendance trop forte entre le moteur de jeu et l'éditeur. Sans doute une sage idée compte tenu des "condloop" et autre "move 2 *" qui sont venus se rajouter par la suite. Je ne vais donc certainement pas essayer de produire des
GobAnims[] dans mes fichiers .spr, plutôt une version "lexèmisée" de l'animation avec une liste de constante et une liste d'instruction à traiter conjointement pour produire ces GobAnims.
The most challenging aspect, I guess, will be to include engine-related features such as conditional loops (loop the animation only if testpoints are satisfied), the use of "spatial timeline" rather than "temporal timeline" (yeah, that's an odd concept, but I don't see how to phrase it differently :P)
And then, finally, I'll have to include that so-long-delayed composed -- à la Rayman --animation that was present in the BASIC version ^^"
J'ai quelques idées pour avoir une représentation graphique efficace des opérations telles que "copier une étape, supprimer ou récupérer une étape supprimée", etc. Ce qui sera plus complexe, ce sera justement de prendre en compte les boucles (conditionnelles ou non) et les déplacements (en ajout comme en remplacement des délais)... Je me demande dans quelle mesure il serait possible de garder cet aspect-là dans le .cmd, tiens.
Tags: animation, animeds, bilou, english, gobscript, mybrew, planning, sketch, sprite editor, testpoints, user interface, walk
Monday, June 07, 2010
Laissez tomber GCJ, les gars.
sudo ln -s /usr/lib/jvm/java-6-sun-1.6.0.17/bin/java /etc/alternatives/, c'est tout ce qu'il y a à dire. J'ai facilement perdu 2 heures vendredi dernier, à chercher dans le code de mes étudiants un problème qui se trouvait clairement dans les bibliothèques Java qui accompagnent la JVM "gnu", le "choix par défaut" d'Ubuntu Lucid Lynx. Et là, je regrette, les cocos, mais ce n'est absolument pas lucide.
java.util.Scanner[delimiters=\p{javaWhitespace}+][position=372][match valid=true][need input=false][source closed=false][skipped=false][group separator=\,][decimal separator=\.][positive prefix=][negative prefix=\Q-\E][positive suffix=][negative suffix=][NaN string=\QNaN\E][infinity string=\Q?\E]
java.lang.NullPointerException
at java.util.regex.Matcher.toMatchResult(libgcj.so.10)
at java.util.Scanner.myCoreNext(libgcj.so.10)
at java.util.Scanner.myPrepareForNext(libgcj.so.10)
at java.util.Scanner.myNextLine(libgcj.so.10)
at java.util.Scanner.hasNextLine(libgcj.so.10)
at Flux2.getRadioMetaData(Flux2.java:237)
at Flux2.connect(Flux2.java:214)
at FluxFeeder.run(FluxFeeder.java:21) au énième appel de hasNextLine sur un parseur a priori impeccable, mais qui est simplement arrivé au bout de la chaine sur laquelle il travaille. J'aurais volontiers fait un vrai "bug report" aux responsables de la maintenance de la libgcj.so.10, mais on dirait bien que la politique d'Ubuntu s'est encore dégradée à ce sujet. Non content de répondre régulièrement "ah oui, on arrangera ça dans la version suivante" lorsqu'ils ont choisi une version incomplète ou buggée d'un programme mais que des correctifs existent chez le développeur (j'en veux pour preuve ce problème dans desmume), même lorsque la distribution affectée est une Long Term Support.Enfin ... on va essayer quand-même.
Tags: guru meditation, java, ubuntu
May the Source be with you
La saison des examens bat de nouveau son plein. Peut-être certains d'entre vous sont-ils encore étudiants ? Dans ce cas , bonne M. "may the Source be with you". Moi, ça va plutôt être lecture, correction, relecture, surveillance et re-correction. Peu de chances de voir les choses bouger sérieusement d'ici fin juin, mais au moins, tout une série de choses ont été réglées dans la VTJ. De plus, me voici arrivé dans mes lectures-hobby à l'endroit précis où j'avais laissé le roman Autremonde en attente... tous ceux qui ont bouffé du Harry Potter savent qu'il est difficile de poser un roman pour passer à autre-chose quand on ignore ce qui attend les héros pour la suite. Il me brûle presque dans la poche de mon falzar.
Allez, A+. Il est temps que j'attaque la journée de boulot.
Hello, English readers. I'm afraid it's a pretty busy time. Examinations time. I've got a pile of reports to review and some more that are yet to appear on the pile ... Probability of seeing translations or bilingual posts is pretty low, but it should rise again when July will come out. See you.
Thursday, June 03, 2010
Petite pause "LEDS"
I swear I tried. I really tried to come up with some arenas for Apple Assault despite I knew I'd have to "repair" the level editor anyway. It just didn't worked. For some odd reason that aren't even worth being named "a bug", it is impossible to draw or alter the behaviour of the two rightmost column of tiles in LEDS at the moment. I just worked around it in gedsdemo, but Apple Assault is likely to have levels that are just one screen wide... and then it really looks broken.
Je vous jure : j'ai vraiment essayé de dessiner quelques "arènes" pour Apple Assault sans commencer à corriger mon éditeur de niveau au préalable. Mais c'était compté sans une bête limitation, une "erreur de jeunesse" de ce programme. Impossible d'aller dessiner sur la colonne la plus à droite d'un niveau. Si ça n'a pas eu l'air trop gênant dans les démos précédentes, c'est quand-même très moche quand on essaie de faire un niveau dont la largeur est celle de l'écran, croyez-moi.Oh, pas de sushi: ça devrait être Je pensais que ce serait assez vite réglé, juste le temps que je me souvienne (et que je documente, tant qu'à faire) les mécanismes qui permettent de passer de l'édition de fond à l'édition de la zone de jeu et à l'édition des propriétés des blocs. Bin non. L'appel du menu "choix du plan affiché/édité" détruit la partie du niveau à l'écran, et je ne parviens plus à enregistrer un niveau nouvellement créé.
I initially thought it'd be a quick patch. I'm afraid I was wrong...
I'm afraid you'll here a bit more of LEDS next week.
I couldn't write the level I was working on to disk make sure stored maps end up with .MAP ^^'.
Tags: apple assault, coding, done, english, level editor, mybrew
Wednesday, June 02, 2010
BRIX.TXT
Amusant, ce qu'on retrouve dans les fonds de tiroir ... voilà le fichier "readme" de mon premier jeu en Assembleur pour MS-DOS: Crazy Brix, qui (2 ans plus tard), remporta la compétion "100K games" à la Inscene'99 ... A défaut d'Internet, à cette époque, je tentais de voir mes jeux paraître sur le CD du magazine PC-Fun ... sans grand succès, malheureusement.
I had no idea of the existence of GPL or free-software by that time (neither did I have any free software at hand, which more or less explain the use of assembly), so I was trying to trade my code against something else I could have a use for. Funny.
Salut à tous !
Bien le bonjour à vous, futurs joueurs de CrAzY BRIX.
Je me permets de me présenter: je suis Sylvain
( alias PYPEIN ), programmeur de BRIX. Vous allez sans tarder découvrir la version 1.9 du nouveau XAM-WARE de PPP TEAM SOFTWARE.
(XAM-WARE comme produit pendant les examens.)
Les Versions.
1.0: Développement de l'algorithme de jeu en BASIC ("appelle moi pour jouer",dit Vivien)1.1: Première implémentation en Assembleur: MODPLAY+ chargement des images (ricanement de Piet)
1.2: Réalisation des routines graphiques
1.3: On peut commencer à jouer, mais c'est plein de bugs.
1.4: premiers essais de transparence ("C'est quoi, cette horreur?" dit Piet " C'était encore mieux en BASIC!")
1.5: décors de fond retravaillés
1.6: ajout des patterns "GAME OVER" et "NEXT LEVEL"
1.7: on peut changer la vitesse de la balle.
1.8: Ajout des samples pour les bruitages ("Je te laisse débugger, Pype, je reviens à 12h00")
1.9: image d'intro en POVRAY
1.A: "ajout d'animations"
Note aux programmeurs
Mon module player n'est pas encore au point, néanmoins, si l'un d'entre vous veut en faire un en assembleur, je lui conseille d'abord de lire 'Le SuperLivre de la SoundBlaster' paru chez Micro Application. Je peux aussi vous passer une partie des sources (les fonctions de la S.B.) mais ne me demandez pas les sources complètes du player: le code est pas encore optimisé (PENTIUM minimum). Je vous le passerai seulement contre d'autres trucs (un player pour un autre format, des truc de balaises sur le mode protégé, un jeu que vous avez fait et qui est mieux que le mien...)
(tout ça, c'était avant que je ne découvre la GPL, NDLR)
Tuesday, June 01, 2010
AA : early gameplay draft
Vous vous souvenez de la présentation "onirique" d'Apple Assault la veille de mon aniversaire ? J'ai remis la main sur un petit croquis nocturne dans le carnet qui contient les précieuses mesures de ma cuisine. Je vous en dirais bien plus, mais ma fée m'attend pour descendre chez I<ea ... il faut vraiment qu'on change de cuisine.
Remember how the Apple Assault gameplay came to my dreams ? I eventually sketched up the idea that night, but then the sketchpad has been burried down, used to plan my new IRL-kitchen, moved to Sweden and back. Today, it's about time I make a decisive move towards that "new kitchen" thing before *deline gets a hand on frypans... So the sketch got dug up, just when I was using a scanner. Voilà. Here it is online. enjoy it.
PS: oh, btw, it looks like the sketch has later been used to help thinking about dyngobs and their management...
Tags: apple assault, appleman, bilou, brainstorm, dyngobs, english, gameplay, mybrew, sketch

Vote for your favourite post
