Saturday, March 21, 2015

Titus the Fox dans Pix'n'Love #15

Parmi les excellents dossiers du magazine "Pix'n'Love" que j'aimerais voir réunis en un ouvrage dédié au game design, il y a une interview très intéressante d'Eric Zmiro sur le développement de "Titus the Fox / Moktar". Moktar est un des premiers jeux de plate-formes auquel j'ai pu vraiment m'essayer ... comprenez avec autant de tentative que je ne le voulais parce qu'il n'y avait pas de fin de vacances, de fin de courses au GB ou de fin de pièce de 500 Lires pour m'obliger à passer la manette de manière définitive.

Il y avait beaucoup de bonnes choses dans ce jeu -- notamment la possibilité d'emporter plein d'objet et de construire le gameplay sur leur manipulation -- et c'est toujours un peu triste pour moi d'entendre les joueurs console cracher sur la société qui a produit les premiers jeux sympas pour PC que j'aie rencontrés. Il y a aussi beaucoup de choses discutables que l'article me permet de comprendre mieux. Le scrolling, par exemple, fonctionnant par à-coup, qui se révèle être un hybride entre le scrolling continu d'un Mario/Keen et le screen-flipping qu'on trouvait déjà dans le premier opus de Prehistorik. Bien sûr, il était techniquement possible en 1991 de faire mieux, mais pour un éditeur qui n'agit qu'en France, il est important que les titres PC tournent sur tous les PC. Pas seulement sur le 286 équippé d'une carte VGA de mon voisin Alain, mais aussi sur un 8086 CGA.

L'écart de fluidité entre les version Amiga et PC, le choix de jeux à licence laissait imaginer une équipe encleinte à la facilité. L'interview révèle une équipe extrêmement réduite (un graphiste et un programmeur pour le jeu "Moktar") qui n'hésite pas à reprendre la partie la plus technique du moteur de jeu pour pouvoir supporter des sprites plus gros et des niveaux plus vastes quand la direction déclare juste "on va faire un jeu avec Lagaf'. Changez juste le personnage de Blues Brothers et ça ira comme ça" (citation officielle). Et la description de l'environnement de création habituel, très "bride sur le coup", de Titus Interactive donne aussi un autre éclairage sur cette déclaration. "On a un contrat pour un jeu, les gars. Et cette fois on a une date limite. Alors pas question de démo techniques qui n'aboutissent à rien cette fois-ci." (interprétation personnelle, ce qui n'a de toutes façon pas beaucoup d'importance puisque de toutes façons, pendant les mois passés à attendre les graphismes, Eric Zmiro a eu l'occasion de faire un tout nouveau moteur de jeu). Quand aux versions Amiga, elles ne sont pas développées en interne, mais confiées à des spécialistes free-lance de cette machine, sans doute une fois que le jeu a fait ses preuves et que les rentrées permettent d'envisager des frais supplémentaires.

Merci à Eric pour cette interview officielle, mais aussi aux longues discussion en privé depuis son premier commentaire sur ce blog en 2007.

Wednesday, March 18, 2015

Bilou: The Last Level

Emplacement: School Zone
Ennemi principal: pendat
Niveau de difficulté: entre "*deline" et le niveau 2
Niveau de réalisation: 85%, jouable
Particularité: construit presqu'entièrement à partir de situations présentes dans le niveau 2 ou le niveau 3 pour lesquels les joueurs manquent généralement d'entraînement, en "dégradant" un challenge proposé dans un de ces niveau pour le rendre plus accessible.
Usage du copier-coller: important au sein du niveau, pour post-poser un élément jugé un peu dur à son premier essai puis pour introduire des paliers-tampons entre les challenge pour laisser souffler le joueur.
Durée estimée de réalisation: 2 à 3 heures stylet en main (playtesting compris).
Niveau de crampe du poignet pour le bouton 'L': tolérable, mais il faut se reposer maintenant. Le bouton 'L' de la DSi, lui, est mort dans l'aventure.
Sous-terrains pour éviter les dégats: pas trop
Passages aériens pour aller plus vite: pas encore

Probabilité d'ajouter un autre niveau à School Rush après celui-ci: 10% pour un niveau horizontal; 35% pour un niveau vertical. Taux de flemme estimé à 55%.

It is so hard to build a level that is accessible to lambda players that I can build a whole new level by converting the "challenge" areas of current levels 2 and 3 into some "training" areas for a new level 2. That will give me the 4 horizontal levels I wish for School Rush. If I am to add more levels after this one, it will most likely be a vertical ultimate challenge. Pendats will be the main opposing force in this level, but you'll also encounter a good deal of dumbladors. The idea is that you should have *plenty* of opportunity to gather power-ups by dispatching pendats. I'll have to work on a "high path" that allows the player to experience the fun of floating, too.

selective WiFi transfers.

My .spr files are becoming large. That's especially annoying when you remember that issue with DS-to-PC bandwidth issue, which I still haven't investigated more. Look at all that grey and all that purple: these are not used by the game engine. I started an evolution of RunMe where you could selectively transfer "tiles" or "sprites" or "animations" of one .spr file, and then reconstruct the whole file on the PC side, but it's dormant, waiting (yep, that one too) for the game to be properly polished.

Friday, March 13, 2015

Il faut que je finisse "School Rush".

Voilà quelques jours que je ne parviens pas à me mettre à la programmation des derniers éléments de School Rush. J'ai l'impression qu'il est temps que ce volet se clôture. Il y a 3 ans, je mettais en ligne -- vidéo à l'appui -- la première démo du moteur de jeu supportant les animations créées dans AnimEDS. Le premier écran reconsitué de la School Zone, lui, a encore 6 mois de plus, et comptait mettre en oeuvre un jeu type "arcade sans monnaieur" -- deep ink pit.

Là, je commence à avoir envie de changer le décor de fond du jeu, à déguiser l'encrier de l'écran de menu en vieux moustachu, mais le thread sur wayofthepixel fait déjà plus de 160 messages, et je ne parviens plus vraiment à attirer l'attention. J'ai envie de coder ces lattes-qui-tournent et les signets auxquels on s'accroche. Les power-ups m'écartent du gameplay prévu. Je ne suis pas sûr d'intégrer le "wall kick". "Big Punch", ça, clairement.

Et puis il me faut du son. CJ? T'en es où, avec ton son ? J'ai fait quelques essais, un petit roulement de percussions fait un bruit décent pour un crayon qui fait demi-tour. Jouer le même son avec "pitch bend" vers le bas pourrait aussi faire le bruit du crayon dégommé. Je dois introduire des "GunPalettes" dans le moteur de jeu pour pouvoir ajouter assez d'effets sonores ... Ou alors j'associe directement les sons aux animations.

Il me manque un palier de difficulté entre les niveaux 1 et 2, mais le bouton L de la DaiSi me fait à nouveau faux bond. Migration de mon iPlayer vers "lime" retrouvée il y a un bail dont je viens du coup de vider la batterie.

Là, il est temps que je release et que je passe à la suite, je crois, sinon je vais sombrer dans le traçage d'historique de développement ...

C'est quand, la prochaine vidéo du JDG ?

Sunday, March 08, 2015

Programmation GBA dans Login 92

 J'aimais vraiment bien le magazine Login:, bien plus riche que tous les Linux Mag' sur lesquels j'ai pu mettre la main. Romain Guy y signera une série d'articles, sur la programmation GBA début 2002. Un an trop tard pour moi, malheureusement: je suis à fond dans la construction de Clicker avec une demi-douzaine de collaborateurs potentiels, et en passe de devenir modérateur sur le forum Mega-Tokyo.

We never had a great collection of programming magazines in Belgium, unless you read German fluently and live in the eastern cities, I mean. But in the later years of my university studies, I had a stable dealer of "Login:" (and earlier Dream) magazine, covering a wide variety of open source, coding, and chip vendors news. I thought the blog would be a nice place to write a tribute post to Romain Guy's work, for instance his series about homebrew GBA programming. That arrived one year after I considered the option of re-creating Bilou's Adventure on that platform, and after we received a cold reply from Nintendo explaining their requirements for allowing a company to get an SDK.

Beside the relative complexity of the GBA platform -- where you had to manually decide whether to use Thumb instructions, and with very small RAM for code and data with the need to decide which part of your code would migrate from ROM to RAM to meet real-time constraints -- homebrew hardware was still quite repellent, with cartridges having internal flash, rather than using standard media cards, and requiring dedicated programming devices ... I dropped the idea and pursued my research on Operating Systems instead ...


Il y a aussi le côté "lourd" des équippements nécessaires pour programmer les cartes. La miniaturisation de la SuperCard n'a pas encore été atteinte ... ou peut-être les carte SD n'étaient elles pas encore assez répandues. Toujours est-il qu'on se retrouvera avec une cartouche unique, avec une certaine quantité de mémoire flash embarquée et une espèce de périphérique dédié à connecter sur PC pour réécrire le contenu de la mémoire embarquée. Mais tout ça est gros. Pas aussi lourd que la version "on sort un cable ATA pour se repiquer sur un micro disque dur clipsé sous la console", mais le côté "console portable" disparaît.

Saturday, March 07, 2015

BigPunch for free ?

In last week's post, I was suggesting that giving some power-up "for free" earlier in the level might be the best way for the player to experiment them. I was especially thinking about "big punch" power-up, that allows Bilou to dispatch school supplies without having to rely on carrying dumbladors around.

Je pensais avoir trouvé la bonne technique pour amener les joueurs à s'intéresser un peu plus à l'interaction "ramasser un blador et l'emmener jusqu'à un pendat pour le dégommer", la semaine dernière. L'idée aurait été de mettre un power-up "Big Punch" visible, dans une sorte de cage au début du niveau. De cette façon, on avait un peu plus de chances que le joueur se rende compte qu'il y a un intérêt à se débarasser des pendats, et ça, même s'il n'est pas encore très à l'aise avec le lancer ballistique de taille-crayon. Sauf qu'à bien y réfléchir, j'avais sans doutes tout faux.

 That might work, but not for the intended purpose: show players that they can stun pendats, and that it's a cool thing to do (after all, pendats are the invasion force trying to ensure that mathematics are the only canon knowledge taught in the school, or something similar). By giving the power-up for free, will the player ever learn that she can use dumbladors for that purpose ? Won't I put her into believing that power-ups must be found in the level and that without them, there's no way to dispatch a pendat ?


Ben oui. Mettez-vous à la place du joueur qui entre dans le jeu, voit un truc qui ressemble à un bonus, l'attrape, et peut ensuite éliminer les crayons. Qu'est ce que vous feriez au prochain taille-crayon, vous ? L'emmener en voyage ? Et si finalement, vous perdez quand-même votre pouvoir du poing-marteau ? Considérerez vous qu'il doit y avoir un autre moyen d'éliminer les crayons, ou simplement vous direz-vous "Arf! Je vais devoir les éviter jusqu'au prochain power-up!" ? La plupart des jeux pousseront plutôt le joueur à adopter la deuxième attitude (cf. Super Mario et ses plantes-piranha).

Maybe I should try another approach. Maybe the power-up shouldn't be granted *at the start* of the level, but prior you enter the level. And the first thing you'd encounter in the new level is a dumblador/pendat pair that you can dispatch with your freshly-acquired BigPunch (tm). Dispatching the pendat would then grant you another power-up. The next few screens should then be harmless enough so that the player can experience new abilities before putting them to work.

Par contre, il pourrait être intéressant de mettre le "power-up gratuit" en fin de niveau. En particulier si le niveau suivant commence par un terrain d'expérimentation idéal pour dégommer des crayons. Un passage avec le power-up pour apprendre qu'un crayon, ça donne un bonus. Et un deuxième passage dans des conditions idéales pour lui lancer un taille-crayon sans prendre de risques. Pas d'éponges ni de structure pour faire obstacle à votre jet. Rien qui ne puisse vous distraire entre le projectile et la cible... Je suis même prêt à utiliser les "passages secrets" du premier niveau pour disséminer des indices sur ces possibilités.

 Would she eventually fail, she'll start over that level, with no power-up. She'd face the same blador again, and now she knew there's a power-up available if she knocks out the pendat. I can also arrange the level terrain so that the player can stay safe and still throw her blador at the pendat.

Par contre, je préfère ne pas tomber dans le classique panneau "interdit aux taille-crayons" placé sur le chemin de ronde du pendat. Trop éculé.

If that's still not enough, I plan to use those chalk boards and other areas of level 1 to hide some schoolish tags showing pendats taking over the school and bladors offering resistance due to their tough nature. I want to hint, but I don't want to enforce tutorials. I also don't want to use the typical "don't do XXX" to hint the player to exactly do XXX.

Sunday, March 01, 2015

Floating ... design notes.

N'ayant pas trop le temps de squatter mon ordi, très sollicité par les vaisselles, je gribouille mes pensées dans un carnet jaune. Comment ajuster le fonctionnement des power-up dans "School Rush" pour améliorer la prise en main par les joueurs ?

I have the setup to generate pseudo-random item when stunning a pendat. I took some time this week-end to think about what were the barriers to the adoptions of these power-ups are. It make me re-consider the pause and animation when Super Mario gains powers. To be reliable, it's important that the player can keep track of whether he has the power-up or not ... which was so far an abstract counter. I think it could also be important that one finds, in-game, a "free" power-up, whithout having to stun a pendat -- especially given that stunning pendats with bladors is quite difficult. Being able to have hint on what pendat will release could help, too ... Although it would require much work to reverse the monster engineering.

Et tant que j'y suis, même genre de notes pour la mise en place des générations de power-ups. Là, j'ai quelque-chose de correct pour la perte de power-ups (on les voit quitter Bilou et tomber dans le bas de l'écran).

And for the fun, I used a similar sunshiny hour last week-end to select the way power-ups are released, and how they interfere with Bilou's behaviour. The current trigger to start floating is now a double-tap on the "JUMP" button. This may not be mis-interpreted as a bounce-to-be on an eraser, a monster or whatever. And this remains ergonomic enough.