La troisième est la bonne. Voilà un coup de poing qui passe plutôt bien. Pas comme la tentative pathétique d'adapter le comportement des berry bats pour que ça tourne comme un coup de poing autour de Bilou.
Sunday, March 29, 2015
BigPunch, 3rd try.
La troisième est la bonne. Voilà un coup de poing qui passe plutôt bien. Pas comme la tentative pathétique d'adapter le comportement des berry bats pour que ça tourne comme un coup de poing autour de Bilou.
Saturday, March 28, 2015
Nitrome, Ni trop peu
Il y a 25 ans, avant de commencer le projet Caliméro et devant le refus de mon frère de me dessiner d'autres niveaux pour Logic Labyrinth, j'avais imaginé utiliser RND() pour me construire des variations de la "Bridge Zone" de Sonic 1 (SMS) sous le nom de code "Sonic Labyrinth".
Le projet n'aura débuté, mais vous comprendrez que quand j'ai vu "Platform Panic/Infinite Platformer" sur twitter, ma curiosité était immédiatement piquée.
May the Seed be with you
Il ne s'agit pas véritablement ici de créer des niveaux aléatoires au sens d'un roguelike et de son générateur de map. Je pencherais plutôt pour une base de données de salles parmi lesquelles on tire une séquence de salles pour la partie donnée, comme dans Qwak, mais généralisé. Tout comme Spelunky, on est ici dans un jeu à "permadeath" -- comprenez que votre mémoire ne vous sera que moyennement utile si vous échouez parce que la partie suivante pourrait très bien ne pas faire ressortir la salle qui vous a donné du fil à retordre. Et c'est du "one-shot", aussi ... à la Fury!
Building Blocks
Pixel Perfect
Côté graphisme, Helm nous a concocté un environnement agréable, rétro ni trop peu, facile à "lire" (bleu=inerte, pas bleu = méfie toi), mais pas surchargé non plus, et des petits personnages de toute beauté. J'ai bien peur que mes capture de trailer youtube n'en donne qu'une idée très déformée... Et c'est tant mieux, parce qu'il y en a, des pièges retors, et qu'avec un perso qui avance en permanence, on a qu'un rapide coup d'oeil pour analyser la situation et voir que "si je me laisse tomber ici, les pics vont me suivre et me prendre au piège".
Je suis assez bien fan du design des robots de cette usine (?), qui se déclinent jusqu'ici en "sauteurs", "marcheurs" et "volants". Il y a aussi les mines, bien sûr.
No Tuto
A l'exception des glissements de doigts suggérés sur l'écran d'accueil (la salle 0), il n'y a pas de réel tutoriel. On apprend de ses erreurs. Heureusement, elles se produisent surtout en début de partie quand on a pas encore appris ce que font les différents blocs interactifs. Je suis tenté de penser que les niveaux sont regroupés en "phases" et que le jeu progresse d'une phase à la suivante avec une difficulté qui augmente par palier. Niveau 1, une seul obstacle par salle. Niveau 2, on commence à combiner (p.ex. blocs à pointe et tir de missiles). Niveau 3, il faudra enchaîner les contrôle comme faire demi-tour en cours de saut.
Coin Layers
All to say, I love the game's design. It's an effective way to build fun time from old-school gameplay elements. I might reuse the idea when time will come to make a mini-game in Bilou's pyramid or castle zone.
Que faire à part s'éclater dans ce jeu ? Eh bien collecter des piécettes. D'abord parce que c'est brillant et tournoyant alors qu'il y a de la gravité, mais surtout parce qu'à un certain niveau dans le jeu, elles vous permettront de vous acheter des continue plus que bienvenus (15 pour le premier, 30 pour le second, etc.). Elles permettent aussi de débloquer des persos supplémentaires (l'armure double-saut, p.ex.) ou des nouvelles compétences (rebondir sur les ennemis ?). Placées adroitement, elles permettent tout comme dans un bon Mario de pousser le joueur un peu plus dans les cordes. Elles ajoutent aussi une couche d'"infini" puisqu'elles ne sont visiblement pas toujours au même endroit lorsque le jeu vous ressert la même salle.
Voilà. J'aime beaucoup la recette, et j'ai très envie de la resservir dans un des "mini-jeux" qui servent de jalon le long de la route qui mène à Bilou's Adventure ... Ça marcherait assez bien avec la Desert Zone, voire avec la Castle Zone.
Tags: designclass, english, game, game design, level design, pixels, pyramid, random, readability
Thursday, March 26, 2015
Big Punch ...
Tuesday, March 24, 2015
Sunday, March 22, 2015
Au ralenti ...
J'avais noté de fort ralentissement sur émulateur dans le nouveau niveau. Il me restait malheureusement à constater que les ralentissement se produisent aussi sur la console, du moins pendant que les encriers projettent et si j'ai assomé beaucoup de dumbladors sans permettre à leur pieds de les rejoindre.
Slow downs are only fun when you control'm |
Il y a 45 intervenants dans le nouveau niveau, dont 8 encriers et 7 dumbladors, soit un potentiel pour générer 30 objets de plus -- près du double. Oui, c'est risible comparé aux systèmes de particules qui peuvent tourner sur les PC moderne. Même pour 66MHz, ça ne devrait pas faire une telle différence. Mais voilà, à permettre aux gouttes d'encre de s'arrêter sur les éponges, à veiller à ce qu'un encrier puisse interrompre la marche d'un pendat ... bref, en ajoutant des interaction entre les ennemis et pas uniquement entre Bilou et ses ennemis, j'augmente les nombre de tests de collision, et il est possible que ce soit ce genre de chose qui fasse grimper la charge de calcul.
My plan so far to address this issue was to create sections of the game and to allow for collision testing only between objects belonging to the same section. Putting that into code lines didn't come out fluently, so I opted for the Commander-Keen inspired approach of freezing GOBs that are out of display range (that is, more than one screen away of what's on-screen). You can still try to collide against them when they're frozen, but *they* won't try to do anything. It was enough. It works well with the current game's flow. I'll revise it to something more generic later.
J'ai bien esquissé un système permettant de rassember les ennemis selon des sections, les collisions étant limitées entre personnages appartenant à une même section. Mais au moment de passer à l'implémentation, rien ne se combinait avec le code existant de façon souple. Je suis donc repassé à une technique plus traditionnelle -- le gel complet des personnages qui se retrouvent en-dehors de l'écran, qui était déjà à moitié implémenté (ils n'étaient plus traités par la couche graphique). Les listes à parcourir pour les collisions restent longues, mais c'est tolérable, d'autant qu'il y a moins de personnages qui provoquent des tests de collision. Et vu la constitution du code "GameObject::play", avec ses chaînes de contrôleurs et ses listes de commandes d'animation à interpréter, il n'est pas évident que la centaine de comparaison de coordonnées supplémentaire pèse tellement lourd par rapport à 5 objets supplémentaires à gérer entièrement.
Tags: coding, collisions, english, freezer, rush
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.
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.
Tags: msdos, Pix-n-Gems, platforming, THROW, titus
Wednesday, March 18, 2015
Bilou: The Last Level
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%.
Tags: DSi, english, finishhim, level design, rush, school zone
selective WiFi transfers.
Tags: english, runme, spritesheet, wish
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 ?
Tags: deep ink pit, english, finishhim, rush, school zone, sound
Sunday, March 08, 2015
Programmation GBA dans Login 92
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 ?
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.
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).
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.
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é.
Tags: english, game design, level design, notuto, pendat, PUNCH
Sunday, March 01, 2015
Floating ... design notes.
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).
Tags: english, FLOAT, sketch, superpowers