Comments on Un nouveau jeu de labyrinthe(?) hyperbolique

JML (2015-09-20T21:27:14Z)

C'est une super base pour faire un jeu onirique. Comme dans les rêves où l'on vole dans un vaste monde avec une grande impression de liberté mais ça a vite fait de tourner au cauchemar, quand j'essaye de m'éloigner du bord pour aller au centre et que je rate l'orbe à chaque fois et que je me retrouve sur un autre bord ça me rappelle ces cauchemars où l'on essaye de faire quelque chose de simple mais il y a une forte résistance mystérieuse qui empêche d'y arriver à temps.
Je ne sens pas tellement le rogue-like sur cette base. Plutôt un jeu en temps réel avec inertie, avec une 3D localement euclidienne. Il faudrait récupérer un moteur existant pour y plaquer le plan hyperbolique je ne sais trop comment. Un de ces jeux où flottent des petits diamants disposés selon des trajectoires que l'on peut essayer de suivre pour tous les attraper, qui pourraient être par exemple la source d'énergie (consommée pour accélérer / freiner). Il y a des gardiens près des orbes, pour les éviter il vaut accélérer / manœuvrer sinon ils m'attrapent et me poussent au loin, c'est le moment de lâcher un beacon pour pouvoir revenir sans me perdre. Je dois aussi les éviter après avoir pris l'orbe sinon ils la récupèrent. À chaque orbe récupérée le jeu accélère un peu.
Le code graphique avec 24 couleurs ne marche pas très bien mais on pourrait le remplacer par une base bicolore parmi 5 couleurs bien différenciées. Chaque élément du jeu recevrait donc une couleur bicolore selon le royaume où il se situe (ex: tronc et feuilles pour des arbres) et il y aurait aussi des éléments particuliers à chaque couleur (ex: bleu = existence de petites tornades qui dévient les trajectoires; et quelques mégatornades dans le royaume bleu-bleu dont on a récupéré l'orbe!).
Le jeu donne l'impression que le monde disparaît hors de l'horizon et que le programmeur fait un peu comme il veut pour le recréer quand on avance, et en même temps cette impression est contredite par la fonction miettes de pain et un peu les beacons. Il y a eu des moments où j'avais presque le mal des transports. Je pense que cette dissonance cognitive serait encore plus marquée dans un jeu abouti et nécessiterait de la part du joueur une certaine dose de lâcher prise.

Vraiment super, super bien.
… kickstarter ? :)

GuLi (2015-04-16T08:11:27Z)

@Ruxor : Oh. Pragmatique en fait. Merci !

Ruxor (2015-04-15T18:53:02Z)

@GuLi: Pour la raison toute bête que quand on veut faire un jeu informatique, il est très pratique que le joueur ait les options de « aller tout droit », « tourner à gauche » et « tourner à droite » (plus « faire demi-tour »), ce qui implique un pavage carré (et globalement, je trouve qu'on visualise nettement mieux les choses avec un pavage carré), et ce pavage est le pavage hyperbolique par des carrés qui est le plus proche du pavage euclidien.

GuLi (2015-04-15T18:34:06Z)

Je suis bêtement curieux : pourquoi donc est-ce ton pavage préféré, ce truc-là (uniform tiling 45-t0) ? Tout ce que ça me rappelle c'est que le graphe induit - un noeud par face, tu vois, et les adjacences) n'est le Cayley d'aucun groupe - je crois. Et que c'est pas si souvent pour des structures aussi simples - mais ça doit pas être ça. Quid, donc, si je peux me permettre ?

zwim (2015-03-27T02:56:21Z)

J'étais tombé il y a quelque temps sur un jeu basé sur cette géométrie hyperbolique, nommé HyperRogue ( http://www.roguetemple.com/z/hyper ).

L'auteur a aussi fait d'autres jeux basés sur des géométries différentes des jeux ordinaires, à voir comme de petites curiosités.

sff9 (2014-12-17T00:09:17Z)

Les balises qu'on voit de loin sont une très bonne piste. En plus d'aider à se repérer, elles font sentir comment ce monde est différent du nôtre (elles paraissent être en face, mais se décalent quand on avance, alors qu'elles semblent encore très loin).

sff9 (2014-12-16T23:59:04Z)

@Ruxor : une alternative pour limiter les risques de syndrome du canal carpien chez tes joueurs, ce serait que ↑ et ↓ contrôlent la vitesse plutôt que la position. Une preuve de concept bien sale (diff par rapport à la version courante) :

1117a1118,1122
> var speed = 0;
> window.setInterval(function() {
> move(speed * dist_step, 1, 0);
> }, 300);
>
1137a1143
> speed += 1;
1144a1151
> speed -= 1;

C'est beaucoup plus agréable à jouer, et pas de complications dues à la gestion des événements clavier comme avec du polling.

(Sinon ce serait pas mal de mentionner qu'on peut utiliser shift pour aller plus vite ; je l'ai découvert dans le code. Peut-être que c'est un « god-mode » pour béta-tester ?)

Groug (2014-12-16T10:41:35Z)

Là pour le coup avec le modèle de Klein on en chie ; on n'y voit vraiment pas assez loin. Ce qui serait bien maintenant, ça serait de nous proposer une surface avec des cusps… mais ça oblige à abandonner ton pavage préféré.

Ruxor (2014-12-16T00:40:22Z)

@Bob: C'est effectivement pour ce genre de choses que j'ai introduit la touche F1. Et comme la surface est « platonique », on peut faire le même chemin depuis n'importe quelle case (tout chemin qui revient au départ depuis une case donnée fonctionne depuis n'importe quelle autre).

Bob (2014-12-15T23:25:09Z)

Je n'avais pas remarqué la fonction "F1" qui résout le problème que j'évoquais dans mon précédent message !

Bob (2014-12-15T23:10:29Z)

Très intéressant ce labyrinthe sans murs !

Une petite remarque : quand on est sur la case départ, si l'on va tout droit (c'est-à-dire qu'on n'appuie que sur la touche "flèche vers le haut"), on y revient après 11 cases. J'aurais aimé pouvoir reproduire cela en partant d'une autre case. Le problème, c'est qu'à cause, sans doute, d'approximations numériques, c'est difficile de le faire plus de deux ou trois fois.

J'aimerais vraiment pouvoir faire cette exploration systématique !

jonas (2014-12-15T20:27:23Z)

Ruxor writes “le jeu est très facile une fois qu'on s'aperçoit que l'orbe est essentiellement toujours vers le milieu du domaine (donc on vise le plus gros endroit et on le trouve presque toujours rapidement)”. Indeed, this is what I found, and specifically I try to go towards the direction where the kingdom is touching the horizon the most.

The difficulty I ran into was that after getting 23 orbs this way, I simply couldn't find where the 24th kingdom was. I ran around randomly, but anywhere I went the interface said I already had the orb. Maybe it's my fault, or maybe that kingdom was just too small to notice.

I agree with sff9 that it might be nice to draw the boundaries of kingdoms so that they are easier to see even when the colors are similar. This, however, didn't seem to cause too much problems in practice: if two kingdoms have a similar color, I could simply navigate them as if they were one kingdom with two orbs.

Ruxor (2014-12-15T17:17:40Z)

@sff9: Je pourrais en effet peut-être imaginer de mettre des provinces dans les domaines, ou quelque chose de ce goût-là. En fait, pour l'instant, le jeu est très facile une fois qu'on s'aperçoit que l'orbe est essentiellement toujours vers le milieu du domaine (donc on vise le plus gros endroit et on le trouve presque toujours rapidement).

À part la fonction petit poucet, je vais ajouter un système de balises de repérage permettant de marquer certains endroits (je publie ça quand j'aurai vérifié que ce n'est pas trop buggué).

@Guego: Oui, les miettes sont permanentes tant qu'on ne demande pas à les effacer. Et oui, on peut se balader beaucoup sans retomber sur un endroit déjà visité. Non, les domaines ne sont pas obligatoirement de la même topologie : je ne sais pas bien s'il y a une tendance statistique à ce qu'ils le soient quand même, mais en tout cas il est théoriquement possible d'avoir des choses très différentes.

@Héhéhé: Comme le remarque sff9, c'est vraiment délicat de faire mieux que ça en JavaScript (on a très peu de contrôle sur le clavier pour des raisons évidentes de sécurité, et en plus les navigateurs ont tous leurs bizarreries dans la gestion des événements).

Héhéhé (2014-12-15T16:34:33Z)

C'est vraiment sympa, mais la maniabilité est vraiment atroce, ça gâche vraiment l'expérience de jeu : on ne peut pas tourner et avancer en même temps, on doit attendre le mode répétition rapide une fois qu'on a appuyé sur la touche, etc.

Guego (2014-12-15T08:27:33Z)

Je confirme que c'est plus sympa que le précédent. Quelques remarques/questions :
- En mode petit poucet, les miettes de pain restent-elles permanentes, ou disparaissent-elles au bout d'un moment ? Si elles sont permanentes, je suis assez surpris, car je me suis baladé au moins 1/4 h dans le labyrinthe sans jamais repasser au même endroit (et pourtant, je suis repassé plusieurs fois par certains royaumes).
- Je n'ai pas bien compris la topologie du monde non plus. Mais à la rigueur, je dirais que ce n'est pas grave, c'est justement ça qui rend le monde labyrinthique et sympa à explorer.
- Tous les royaumes sont-ils identiques géométriquement/topologiquement ? Je n'ai eu pas l'impression, mais en même temps, je n'ai pas exploré de manière systématique chaque royaume que je rencontrais non plus.
- Le côté orbe à collectionner est assez amusant. Ça donne envie de continuer, plutôt que soupirer et se dire "tiens, encore un autre royaume".

sff9 (2014-12-15T01:09:19Z)

C'est effectivement beaucoup plus agréable que le précédent. J'ai beaucoup plus de plaisir à explorer un monde ouvert qu'à suivre les murs d'un labyrinthe.

Une possibilité pour améliorer le jeu : matérialiser davantage les frontières entre royaumes (parfois je m'apercevais que j'avais changé sans m'en rendre compte, et inversement, certains changements de couleur brusques ne sont pas des frontières pour autant). L'autre truc ennuyeux c'est de devoir attendre que la touche passe en mode «répétition rapide» à chaque fois qu'on interrompt un long mouvement. Mais d'après ce que je vois en regardant vite fait, ça n'a pas l'air évident de faire du polling de façon robuste en JavaScript.

De manière plus générale, ce qui me manque maintenant c'est une façon de repérer des points d'intérêt. Je comprends grosso modo comment ça fonctionne, mais je ne me repère absolument pas, tout se ressemble et les royaumes sont trop grands pour que je retrouve des paysages connus.

Par exemple, si dans chaque royaume il y avait un certain nombre de cases spéciales (des villes ?), et/ou si les royaumes étaient plus petits, je suis à peu près sûr que ça fonctionnerait mieux pour moi. En l'état, soit j'explore au hasard et je trouve l'orbe relativement rapidement, mais je n'ai pas vraiment essayé de comprendre la topologie, soit je longe les murs en explorant tout systématiquement mais c'est vite ennuyeux — et je n'ai pas plus compris la topologie.

Merci pour le jeu en tout cas !


You can post a comment using the following fields:
Name or nick (mandatory):
Web site URL (optional):
Email address (optional, will not appear):
Identifier phrase (optional, see below):
Attempt to remember the values above?
The comment itself (mandatory):

Optional message for moderator (hidden to others):

Spam protection: please enter below the following signs in reverse order: df7a6d


Recent comments