Wednesday, May 01, 2019

HoB: les combats

Les combats dans HoB ne sont pas simples. Pourtant, même après avoir découvert qu'il était possible d'en ajuster la difficulté, je n'en fais rien: chaque fois que je parviens enfin à venir à bout d'un monstre, je sens que c'est parce que j'ai mieux joué que les fois précédentes.

J'apprécie assez l'équilibre entre le système de sauvegarde (respawn rapide, sans temps de chargement) et les effets permanents/temporaires du jeu. Ainsi, quand vous éliminez un monstre, il est éliminé à jamais, mais les points de vie retirés à un monstre plus costaud lui sont rendus si vous mourez. Il m'a fallu du temps pour m'en rendre compte, mais ça devient évident dès qu'on commence à affronter des ennemis en armure.

Inutile contre certains ennemis de rester planqué derrière son bouclier en attendant l'ouverture: leurs attaques sont tellement puissantes qu'il n'a presqu'aucun effet.

La solution n'est pas non plus dans une plus stricte observation d'une boucle "narguer - esquiver - bondir - frapper (un coup) - esquiver" : ce genre de tactique rend le combat trop long et finit par me conduire à la faute ... et comme en début de partie on peut tomber sur des monstres qui vous tuent en un coup, mieux vaut éviter.

La clé, je pense, réside dans la mobilité: parvenir à éliminer d'abord les monstres de moindre importance sans attirer l'agressivité du "boss", utiliser à bon escient la roulade (ou la téléportation quand on l'a débloquée) pour pouvoir battre en retraite un peu plus tard. Pour ça, il est indispensable d'apprendre les distances de sécurité et d'action, et de garder la tête froide, histoire de ne pas se retrouver juste devant un caïd quand on espérait passer derrière. Plus tard, dans le jeu, on pourra aussi se servir du terrain pour empècher ces caïds d'utiliser leurs attaques, ou les faire se frapper les uns les autres pendant qu'on esquive.

Fort heureusement, la caméra nous laisse largement de quoi voir les antagonistes, et évite de nous balancer dans un plan serré et confus comme dans un Wind Waker.

Mais bon, je vous raconte tout ça depuis ma première partie où j'ai tardé à trouver des mises à jour pour mon épée, passé une bonne moitié du jeu avant de me rendre compte que je pouvais défoncer certaines armures et tardé à utiliser le bouton "courir" pendant les combats. Il est fort probable qu'une fois les subtilités du jeu maitrisées, il n'y aura plus autant de challenge (mais là, ma deuxième partie est plutôt en mode 'esquive' pour ne pas voir mon fiston commencer à mettre des coups de chaise à tous ses camarades de classe).

On est pas non plus dans un jeu où le système de combat était le coeur de l'attention des développeurs et où il faut presqu'autant de concentration pour jongler avec les mouvements possibles que dans un Street Fighter. Mais aller dire qu'il a été ajouté "parce qu'il fallait bien" ? non, ça serait pousser trop loin. Ne serait-ce que parce qu'une grande partie des items cachés servent à tenir plus longtemps en cas de combat, et pas vraiment à obtenir des "clés" pour avancer dans l'aventure comme ce serait le cas dans Fez.

Friday, April 12, 2019

HoB, btw.

I've been fascinated by HoB's design since the first trailers I've seen. I collected as many wallpapers as possible, I've done style analysis, but unfortunately, I had no hardware compatible with the game ... that is, until I logged in the Nintendo shop last week and discovered a promo on HoB definitive edition!

That was the best possible conditions to play it. I could drop the adventure at any time, and resume exactly at that point. I hadn't to fight against "where is [] again?" because I've trained myself to the ABXY with the Mario & Luigi series. I wasn't fighting against my glasses because I could just keep the console in my hands. I'm even surprised I am not feeling any eye strain despite I added about 2 or 3 hours of play every evening in addition to my work hours, but it lasted only for one week...

I think I haven't played a game that intensely since Fez! About every moment in the day, I could feel slight excitation about getting back to the game when I'll be done with the day's tasks, exactly the same way you feel excited about continuing to read a Harry Potter book for the first time. The core difference with Fez is that I had no need for a journey log nor to scribble everything I encountered.

As surprising as it is, I could keep all I had to know about HoB's world in my head -- partly thanks to the icons feature on the map that will automatically pinpoint collectibles the minute you have them onscreen, so that you can track and collect them later on. I should mention that I played the game in "normal" mode, not in "definitive mode" (which would have provided more signposting and hints about quests, if I'm correct). I used the map a lot, and I found it interesting that only the overworld has a map, and that I got a different feeling when entering a cave where I would have to rely solely on my brain to know whether I've visited a room already and never know how far away I was from the exit.

I'll keep the game design analysis for other posts. I must confess that I did encountered some glitches while playing: mostly walls disappearing when the camera angle got too extreme, but also getting stuck into trees where I wasn't supposed to be ... The game even crashed once, which I really wasn't expecting on a console system. But let's be honest: compared to the huge amount of bugs PS and PC users reported at game launch, that Switch version is clearly much cleaner. I was also stunned to see the game lagging that much on earlier releases. The switch port seemed to run at full frame rate most of the time. I don't recall I had to blame lagging for any missed jump or failed fight.

Saturday, April 06, 2019

Shantae en perspective...


Je me refaisais un longplay de shantae pour voir un peu quel genre de level design a été utilisé dans les phases "face-à-face avec les monstres". Et comme je viens de travailler sur la perspective de Bilou dans sa pyramide les blocs m'ont sauté aux yeux.

Dans certaines zones, on a bel et bien une perspective 3/4 sur certains blocs (comprenez, la face avant du bloc est trois fois plus grande que la portion d'écran réservé à sa face supérieure -- j'ai noté ça 3:1 sur l'image). Dans d'autres salles (la plupart du donjon, en fait), on est avec un à-plat parfait. Enfin, le monde extérieur, lui, est plutôt en perspective 2/3 (un cube aurait une face supérieure qui occupe moitié moins de pixels à l'écran que sa face avant), ce qui se traduit par un rapport 2:1 pour la face supérieure assez flagrant pour les objets cylindriques ... et qu'on retrouve notamment dans les grandes fleurs de certaines salles du donjon de la forêt.

Je note aussi que ça m'avais complètement échappé quand j'ai étudié les graphismes du jeu, donc il est probable que ça n'ait choqué qu'une infime proportion d'architectes pendant leur partie.

Tuesday, April 02, 2019

Tout-en-Karton ?

Après un troisième round, il était temps que j'exporte les petits pixels actuels de la pyramide avec Bilou dedans ... Il faudra aussi que je prépare un niveau de test, histoire de vérifier que Bilou bouge bien dans ce décor-là.

I'm far from being done, but I've got now invested some more time pushing pixels for the pyramid zone, the next environment planned for Bilou's games. So it was time to pull the SD card out of my linker and make a backup of all this. Enjoy.

Thursday, March 28, 2019

nohup NUC

I got a NUC as Christmas gift, and it was more than welcome. I hope to use it as the post-desktop device for plenty of purpose, mostly just by turning it on and interacting with a WiFi-capable gadget...

[ongoing] be the music machine of the living room
It is not too noisy with its fans, gets a jack output and can easily fit next to the HiFi system. I can use the WiFi connection to quickly view which song is being played, skip to the next song and switch between "fairy-lover" or "chiptune-lover" modes, from any device in the house including smartphones and tablets.

I would still need to let it learn which songs are less liked, or migrate some titles to other folders, etc. Preferably in a way that would not take effects immediately, but rather that is approved over ssh after having been collected during play sessions.

[done] make Fairy's laptop devkit-free

Fairy's laptop still has a battery. Mine is now powercord-tied to the ground. Fairy's one has poor resolution but increase mobility, but Fairy's one isn't always there, so it would be better to use it just as a remote terminal to the NUC instead.

[ongoing] let it serve (auto-generated) epub doxygen
That means having it a mercurial hub with improved features. I use to have something like "nohup hg serve --webdir-conf /path/to/hg/hgweb.config -p 5555 &>/dev/null &" at work, where hgweb.config is simply a list of 'printname = full/path/to/repository', where printname may be 'organizational-folder/repository-printname'. It all falls under a [paths] section of an INI file. But I'd like it to try building and generating documentation whenever I push a new set of commits there.

The ultimate goal is being able to browse up-to-date code from my boox without having to power up a laptop. That will also help integrating all sort of support pictures like screenshots and UML diagrams into the documentation.
 
[todo] make it download OC Remix updates on a daily/weekly basis

Because having OC remix on the wrong side of the firewall at work is a pain. My "coding music" is an open playlist,
  • and html class pl-video-title-link allows  to identify all the links to the mentioned videos.
  • and there is the page to the remix (https://ocremix.org/remix/OCR%%%%%) in tags
  • and there is a tag in youtube pages!
So I could have a script that automates download of new OC titles running on the cube...

[todo] enable Androïd development
 
That will be for when I got it plugged into a wired network again: I don't know whether this is due to the extra disk enclosed in the device, but the WiFi connectivity is a nightmare. I get a few 100Kbps at best ... barely enough to use a remote terminal. I'd rather not start installing big things that way.

[todo] make it a better youtube-on-TV than what the ISP provides in their box

Partly because there is no support for user accounts or playlist of any sort in the box...

Friday, March 22, 2019

Level Editor vs new engine

Mes cogitations pour rénover la gestion des maps dans mon moteur DS commence à porter ses fruits, au point que je peux commencer à réfléchir à l'impact que ça aura sur l'éditeur de niveaux. ça me tient à coeur parce qu'avec le système actuel, je ne vois de bonne solution pour réaliser les cours d'eau souterrains que mon frère avait mis dans les niveaux historiques de la Grande Aventure.

Je me dirige vers un système avec uniquement un byte par tile de 8x8 pixels, et quatre grande classes de blocs:
- les morceaux de blocs interactifs, provoquant des collisions auxquelles le personnage doit réagir (pics, bloc-question, bonus, portes ...)
- les zones non-solides mais succeptibles d'affecter le comportement de certains morceaux de code (eau, échelles, courant d'air ...)
- les blocs de "sol" (solides) qui encodent la forme des pentes
- les blocs solides qui encodent les propriétés physiques (friction, déplacement forcé, etc.)

ça signifie que la petite palette de blocs utilisée dans LEDS va devenir plus complexe, avec un bouton "montrer les autres options", et que je pourrais bien en avoir trois tranches plutôt qu'une seule pour éviter les opérations de navigation fastidieuses.

ça signifie aussi que c'en est fini de l'encodage de petits "0" et "2" dans la map pour former un code entre 1 et 256 en base 4: l'éditeur de niveau ne pourra plus proposer que les blocs qui auront été décrits, ce qui devrait au passage rendre les choses plus lisibles et plus faciles pour des gens qui auraient envie d'utiliser LEDS pour leur propres projets (on peut rêver, non?)

Autre truc intéressant: puisque l'information concernant un bloc spécial (mettons des briques cassables) n'est plus encodée que sur 1 tile, je vais avoir besoin de tiles qui disent "suite du bloc, cf. à droite" ou "suite du bloc, cf. en haut", etc. Chose qui devrait être plus simple à étendre à des blocs interactifs de 24x24 ou 32x32 si le besoin s'en fait sentir...