Journal À propos de boohu, un nouveau jeu roguelike, et puis de quelques autres

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
31
23
sept.
2017

Sommaire

Bonjour Nal,

Aujourd'hui je viens te parler de boohu, un jeu roguelike libre que je suis en train de coder. Je vais aussi te parler de mon expérience avec quelques autres jeux libres du même genre, histoire de t'encourager à les essayer : il y en a pour tous les goûts ou presque !

Donc, d'abord, un roguelike, c'est quoi ? Traditionnellement, c'est un jeu d'exploration de donjon au tour par tour, comme le tout premier jeu du genre qui, surprise, s'appelle Rogue et date des années 80. Depuis, le genre a beaucoup évolué, mais l'idée de base est souvent la même : le joueur contrôle un personnage sur une carte générée procéduralement et choisit à chaque tour d'effectuer une action. La priorité est donnée en général au gameplay, même si de nos jours certains jeux du genre font plus attention aussi au reste. Il y a souvent tout plein de monstres et d'objets divers et variés, et il s'agit de se dépatouiller avec pour survivre, car, contrairement à d'autres jeux comme les jeux de rôle, on ne meurt normalement qu'une fois par partie. Il y a parfois un objectif final particulier mais, les premières fois, c'est rarement important : on meurt souvent et pas que d'une seule façon :)

Break Out Of Hareka's Underground

boohu c'est le pseudo pour Break Out Of Hareka's Underground (Échappe des Souterrains d'Haréka). C'est un roguelike classique en bonne partie inspiré de DCSS, avec quelques idées de Brogue, mais visant à offrir des parties beaucoup plus courtes, pas de construction élaborée de personnage et une gestion d'inventaire simplifiée. Un roguelike dit coffee-break (pause café).

Écran de démarrage

Pour l'installer, c'est plutôt facile et expliqué sur la page github du projet.

Le joueur commence dans les Souterrains où il a atterri on ne sait trop comment et, pour en échapper, il doit trouver des escaliers magiques quelque part dans les profondeurs. Il s'agit alors de trouver des trésors et de s'équiper d'armes, armures, potions et bâtons magiques tout en survivant au milieu de monstres variés, allant du simple groupe de gobelins, aux hydres à quatre têtes, en passant par des grenouilles géantes qui te téléportent. Parfois le plus sage est de fuir, possibilité à prendre particulièrement en compte si le monstre est en train de dormir. D'autres fois, pas le choix, il faut se battre ou prendre des mesures d'urgence.

Toute la difficulté du jeu réside dans ces décisions tactiques et dans le positionnement astucieux du joueur sur la carte, ainsi que sur l'utilisation appropriée des divers objets. En particulier, il ne faut pas hésiter à utiliser ses potions et bâtons magiques ! Bien sûr, il ne faut pas non plus gaspiller les ressources inutilement, mais chez le débutant l'erreur principale est en général d'oublier simplement d'utiliser ce qu'il possède aux moments les plus critiques :) C'est d'ailleurs un conseil qui vaut pour la quasi-totalité des roguelikes. Parmi les caractéristiques particulières de boohu et non présentes forcément dans tous les roguelikes, il y a en particulier :

  • Pas d'XP, ni de nourriture, ni d'escaliers pour revenir à la carte précédente ; gestion simplifiée d'inventaire : par exemple, on ne peut pas porter plus d'une arme à la fois (sans compter certains projectiles). Tout est fait pour simplifier tout ce qui n'est pas positionnement tactique et utilisation stratégique des ressources. Le joueur acquiert aléatoirement un petit nombre d'aptitudes, au fur et à mesure qu'il descend, sans contrôle de la part du joueur.
  • Des parties très courtes (pour un roguelike).
  • Exploration automatique avec possibilité de marquage manuel de zones non sûres (un peu comme DCSS, ça permet de contourner un ogre pas sympa, par exemple).
  • Un nombre modéré de monstres différents : l'idée est de faire dans le qualitatif, donc il n'y a pas dans le jeu deux monstres dont l'un est une simple amélioration des stats du précédent. Il faut qu'il y ait une différence qualitative, comme une attaque spéciale, une différence de vitesse, de comportement (en groupe ou solitaire), etc. Bref, quelque chose qui fasse que l'expérience est potentiellement vraiment différente.
  • Une fusion des systèmes magiques à base de points de magie (mana) et des systèmes à base de charges: les bâtons magiques. L'utilisation de mana limite le nombre d'utilisations successives de magie, tandis qu'un nombre de charges limité (rechargés au fur et à mesure que l'on descend plus profondément dans les Souterrains) impose de savoir ne pas les gaspiller inutilement.

Le jeu est en développement, mais il a atteint la phase où c'est devenu un jeu relativement complet et plutôt stable, même s'il y aura sans doute de nouveaux trucs et des petits rééquilibrages régulièrement ; peut-être une version avec des tuiles, un jour. Je serais donc ravi d'avoir des testeurs ou autres contributions ! :)

Au début, j'avais pensé un peu te raconter aussi les différents algorithmes de génération procédurale de cartes, mais ça allait faire un journal un peu long, donc ça sera peut-être pour une autre fois si je trouve le temps.

Mes expériences avec d'autres roguelikes

Si je me suis mis à coder un roguelike, c'est parce que j'aime plutôt ce genre et ai joué à un certain nombre de ces jeux, donc je vais te faire part de mes expériences en espérant te tenter avec une de ces petites merveilles. Petite remarque en passant : c'est intéressant de voir qu'il s'agit d'un des rares genres où une bonne partie des jeux les plus connus sont libres, à quelques exceptions près et sans compter les roguelikes temps-réel, aussi appelés parfois roguelites ou roguelike-like, qui semblent assez différents et que je n'ai jamais eu l'occasion de tester encore.

Dungeon Crawl Stone Soup

DCSS est le roguelike auquel j'ai le plus joué et qui a influencé le plus boohu : les méchanismes de combat et d'utilisation de ressources sont assez similaires. J'avais fait une dépêche il y a quelques années. Le jeu évolue vite et la communauté de joueurs est de nos jours devenue assez grande, avec plusieurs milliers de joueurs qui participent à des tournois bi-annuels.

Contrairement à boohu, il offre une version avec des tuiles plutôt réussie et est jouable entièrement à la souris, pour ceux qui sont plus à l'aise ainsi. Il offre aussi un vaste panorama d'espèces et d'origines variées parmi lesquelles choisir, donnant des possibilités de rejouabilité assez énormes. Un système d'habiletés permet de contrôler un peu l'évolution du personnage. Ainsi, on pourra commencer par un minotaure berserker, puis finir avec une momie chevalier du chaos, en passant par un octopode mage sans armure mais huit anneaux magiques. Les combinaisons possibles sont énormes, et toutes ne sont pas aussi viables les unes que les autres, donc ça permet de relever des défis plus difficiles quand on connaît bien le jeu.

Le donjon est aussi très vaste, avec un certain nombre de branches thématiques optionnelles, au sens, l'objectif minimal du jeu est juste de trouver trois runes et d'échapper avec l'orbe de Zot, mais on peut trouver jusqu'à 15 runes.

Le jeu est relativement facile à prendre en main et a fait des efforts d'accessibilité pour les débutants, mais est quand même complexe et les parties sont relativement longues, plusieurs heures, en général autour de 6 en ce qui me concerne pour échapper avec 3 runes, mais des joueurs chevronnés terminent ça régulièrement en trois heures voire moins pour certains. Ça dépend assez de l'approche du jeu de chacun aussi, certains aiment prendre leur temps, d'autres moins. Enfin, pour les débutants les parties risquent d'être assez courtes ! ;)

Brogue

Brogue est un roguelike récent plus proche des origines, c'est-à-dire du jeu Rogue originel, mais en plus moderne avec une interface plutôt réussie, jouable à la souris et qui utilise des caractères Unicode avec des couleurs de façon très artistique ! Les parties sont de longueur moyenne, et l'accent est mis sur la simplicité. Il n'y a donc pas d'XP (seulement des potions de vie et de force), et pas d'habiletés : on peut par contre améliorer les objets en utilisant des parchemins d'enchantement avec des effets très divers. Les interactions entre objets et avec le terrain sont assez élaborées (on peut mettre le feu à certaines zones, par exemple). On se retrouve parfois à poursuivre des singes qui ont volé notre nourriture, ou à se cacher dans des coins sombres pour passer inaperçu. Les monstres sont variés et chacun a ses points forts et ses points faibles. Bref, c'est prenant.

À tester pour ceux qui veulent un roguelike classique plus simple que DCSS, mais plus amical que le Rogue originel et qui veulent découvrir de l'art Unicode bien fait. J'y ai personnellement pas joué autant que j'aurais voulu, parce que sous OpenBSD ça crashe malheureusement parfois, mais j'ai bien aimé.

Tales of Maj'Eyal

Aussi appelé ToME4, Tales of Maj'Eyal est un roguelike qui s'éloigne un peu des classiques. Il y a eu aussi une dépêche il y a quelques années. C'est un jeu bien fait, riche en contenu et utilisable complètement à la souris. Il y a plusieurs niveaux de difficulté parmi lesquels choisir et, en particulier, un mode exploration qui peut être pratique pour les débutants. De plus, par défaut, le jeu offre plusieurs vies plutôt qu'une seule, la logique étant, je suppose, que le jeu étant si long une faute d'attention pourrait devenir un peu agaçante autrement.

Plus important, contrairement aux roguelikes classiques, il n'y a pas de gestion stratégique de ressources périssables : le jeu utilise uniquement des pouvoirs qui se rechargent au bout de quelques tours après utilisation pour la plupart, ainsi que d'autres qui doivent être maintenus à l'aide d'un coût en énergie, fatigue, etc. L'évolution du personnage utilise un système de classes avec des arbres d'habiletés assez complexes : à chaque nouveau niveau d'expérience le joueur choisit de répartir un certain nombre de points parmi différents pouvoirs ou aptitudes diverses. On peut choisir entre un certain nombre d'espèces et, en fonction des aventures, on débloque des espèces et des classes en plus.

L'absence de ressources périssables est quelque chose qui m'a un peu manqué dans ce jeu, et j'ai trouvé qu'il y a un léger excès d'abondance d'objets pas forcément toujours très différents les uns des autres. Le jeu est aussi un peu trop axés sur des considérations numériques à mon goût et pas forcément toujours très bien équilibré. Ceci dit, je me suis quand même bien amusé et ai insisté suffisamment pour venir au bout du jeu, qui est quand même très long (je me souviens plus exactement, mais ça a dû me prendre largement plus de dix heures pour finir, peut-être vingt, sans compter les fois où je suis mort bêtement au début). La deuxième moitié du jeu m'a d'ailleurs semblé plutôt facile, à part une mauvaise surprise ou deux, mais sans doute parce que je me suis contenté de la difficulté normale.

Bref, à tester pour ceux qui sont attirés par le système complexe d'habiletés, un monde riche et vaste, l'existence de plusieurs niveaux de difficultés et qui n'ont pas peur des nombres.

Un petit détail : les tuiles utilisées par défaut sont jolies, mais malheureusement pas libres. A priori il est possible de les changer, ceci dit.

Cataclysm: Dark Days Ahead

En abbrégé, CataclysmDDA. C'est un roguelike de survie dans un monde post-apocalyptique. Contrairement à la plupart des roguelikes, il n'y a pas d'objectif particulier, pour autant que je sache. La communauté semble assez active. Il y a plusieurs ensembles de tuiles différents.

Le jeu fait extrêmement dans les détails. Il faudra par exemple bouillir l'eau sous risque d'attraper des maladies, manger varié et cuisiner (il y a tout un tas de recettes différentes) en faisant gaffe si on veut pas faire brûler toute la maison. Contrairement à la plupart des jeux qui utilisent des points de vie, le système est plus granulaire et s'intéresse aux différentes parties du corps. On peut s'amuser à conduire et réparer des automobiles et construire tout un tas de trucs. Bref, c'est très impressionant.

Honnêtement, je ne me suis pas encore vraiment plongé dedans, parce que ça semble demander un investissement conséquent et c'est un peu tout le contraire d'une partie courte. Mais c'est en tout cas quelque chose, donc j'avais envie de le mentionner ! :)

Hyperrogue

Hyperrogue est un roguelike un peu spécial, plus proche des jeux type casse-tête, qui se déroule sur le plan hyperbolique, donc c'est très spécial. C'est une bonne façon de découvrir de façon intuitive cet objet mathématique, d'ailleurs.

Je le mentionne surtout parce que c'est original, je n'y ai pas joué tant que ça, car ça s'éloigne du genre originel et c'est légèrement répétitif à mon goût, mais d'autres semblent apprécier beaucoup. Le jeu est libre, bien qu'il semble y avoir quelques extensions qui ne le sont pas.

Autres roguelikes : Angband, Nethack, etc.

Il y en a beaucoup d'autres que j'ai pas ou peu testés. Je conseille la visite du site roguebasin qui liste beaucoup de jeux du genre (tous ne sont pas libres).

Dans les classiques que j'ai pas mentionnés avant il y a Angband et ses multiples variantes, dont Sil qui est vraiment pas mal et qui partage avec boohu l'absence de progression pour les points de vie. Ils s'inspirent principalement des œuvres de Tolkien (sauf quelques variantes). Le jeu vanilla m'avait semblé long et plus enclin à encourager des actions prudentes plus ennuyantes qui sont souvent plus difficiles dans d'autres jeux du genre (comme rester très longtemps quelque part pour tuer des monstres et gagner de l'XP), tandis que Sil par contre est un jeu plus court et plus équilibré, mais chacun ses goûts !

Il y a aussi le fameux Nethack (et ses variantes), le jeu aux mille surprises, qui continue à faire son bout de chemin avec une communauté active (c'est probablement l'un des plus vieux jeux encore en développement). Faut vouloir être prêt à mourir des dizaines et dizaines de fois, ou à aller consulter des spoilers régulièrement. Mais ça veut pas dire que c'est pas amusant : le nombre de façons différentes de perdre une partie dans ce jeu de façon originale est absolument hilarant :) Ça va de l'intoxication alimentaire à la noyade, en passant par la transformation en pierre, quand c'est pas juste la colère des dieux !

Voilà !

  • # Dépêche ?

    Posté par  (site web personnel) . Évalué à 5.

    Ca pourrait très bien faire une Dépêche il me semble

    • [^] # Re: Dépêche ?

      Posté par  (site web personnel) . Évalué à 2. Dernière modification le 23 septembre 2017 à 16:07.

      Je n'y avais pas pensé, vu que j'y mettais quelques opinions et ressentis personnels, mais pourquoi pas ! Edit : je le mets dans l'espace de rédaction ?

      • [^] # Re: Dépêche ?

        Posté par  (site web personnel) . Évalué à 3.

        En enlevant juste "Bonjour Nal,", le reste, je n'ai pas vérifié,mais, il y a de la matière. Les spécialistes se pencheront sur le texte.

  • # Nethack graphique

    Posté par  . Évalué à 1.

    glhack est me semble-t-il une version graphique de nethack, peut-être plus accessible aux débutants (au début les caractères ASCII pour un jeu un peu riche ce n'est pas forcément évident).

  • # Questions !

    Posté par  (Mastodon) . Évalué à 5.

    Tu as utilisé Go pour faire ton jeu, pourquoi ce choix ? De même, tu as utilisé un vrai terminal plutôt qu'une émulation graphique de terminal (comme peuvent le faire d'autres roguelike), pourquoi ce choix ?

    • [^] # Re: Questions !

      Posté par  (site web personnel) . Évalué à 6.

      Eh bien, j'ai choisi Go surtout parce que c'est un langage que je connais bien et avec lequel je suis assez productif. Après, j'aime bien la simplicité et les build rapides qui donnent un peu l'impression d'utiliser un langage dynamique (impression renforcée par l'intégration des tableaux dynamiques et maps dans le langage), mais avec un minimum de garanties de types statiques, un meilleur outillage pour les éditeurs comme vim et de meilleures performances.

      Pour le choix d'utiliser le terminal avec la librairie termbox-go, il y a plusieurs raisons. Une première raison c'est que vu les objectifs assez précis que j'avais, je savais que c'était suffisant ; pour faire un jeu plus complexe, ça aurait pu être un peu limite, mais là avec un nombre limité de couleurs je peux transmettre toute l'information importante (est-ce qu'un monstre dort, se promène ou est en train de te chasser, par exemple). Une deuxième, c'est que c'est une librairie en pur go, donc ça simplifie les builds, ils sont plus rapides, plus simples d'un point de vue dépendance et la cross-compilation de projets écrits en pur go est aussi beaucoup plus facile. Pour des librairies graphiques, il faut actuellement passer par des bindings. Et, enfin, termbox-go est une librairie très facile à utiliser, en tout cas, j'ai trouvé que c'était le cas.

      Mais ça n'empêche pas qu'un jour il serait possible faire une version graphique, même avec des tuiles : je n'ai pas beaucoup réfléchi en ce sens, mais la partie interface est plus ou moins abstraite du reste (à l'aide d'une interface go), donc avec de la motivation et un peu de temps, ça devrait être faisable sans trop de difficultés et sans tout chambouler.

      • [^] # Re: Questions !

        Posté par  . Évalué à 4.

        Je confirme que le go est un choix intéressant. En 5 min, mon envie de hacker s'est retrouvée réalisée, compilée et vérifiée : je préfère les gros blocs (ASCII 219) pour l'affichage des murs et un mode "brouillard de guerre" (tilde?) pour trouver plus facilement les zones non explorées et donc les chemins restant.
        Et je peux donc proposer mon idée en screenshots (qui manquaient) :

        boohu hack 1
        boohu hack 2

        ou avec ASCII 240 pour les cases inexplorées.

        boohu hack 3

        A part ça, aucun problème rencontré une fois le principe compris (et numlock activé pour les diagonales).

        Il manque juste à mon avis une petite démo pour les débutants (montrer le principe et l'utilisation de chaque action disponible) et un petit message "Using item %s" quand on s'équipe (pour confirmer notamment quand on échange avec un objet identique)

        Et l'option utile pour améliorer le pathfinding du joueur serait de colorer légèrement les bordures rencontrées du brouillard de guerre.

        • [^] # Re: Questions !

          Posté par  (site web personnel) . Évalué à 4.

          En 5 min, mon envie de hacker s'est retrouvée réalisée, compilée et vérifiée : je préfère les gros blocs (ASCII 219) pour l'affichage des murs et un mode "brouillard de guerre" (tilde?) pour trouver plus facilement les zones non explorées et donc les chemins restant.

          J'avais testé un peu les blocs, mais j'imagine que l'habitude des #, plus que ça fait un peut bizarre pour les diagonales, a fait que j'ai laissé ça finalement :) Par contre je suis un peu désorienté de ne pas voir les points ;)

          Mais c'est vrai que ça serait pas très difficile de proposer deux styles différents, peut-être juste une option à passer en ligne de commande, à moins que je me décide à stocker une configuration.

          Et je peux donc proposer mon idée en screenshots (qui manquaient)

          C'est vrai qu'ils manquaient :) En voilà donc un avec le style par défaut (à option -s près), pour comparaison avec les tiens :

          capture d'écran

          Il manque juste à mon avis une petite démo pour les débutants (montrer le principe et l'utilisation de chaque action disponible)

          Peut-être une petite démo avec asciiscinema ?

          un petit message "Using item %s" quand on s'équipe (pour confirmer notamment quand on échange avec un objet identique)

          C'est fait !

          Et l'option utile pour améliorer le pathfinding du joueur serait de colorer légèrement les bordures rencontrées du brouillard de guerre.

          Je suis pas sûr de comprendre exactement. Colorer différemment les bordures qui viennent d'être rencontrées ?

          • [^] # Re: Questions !

            Posté par  . Évalué à 2.

            Peut-être une petite démo avec asciiscinema ?

            Si tu un petit niveau scripté de démonstration qui explique les premières étapes de survie (option --demo ?).
            Une fois enregistré, ça te ferait une super intro sur le jeu pour ton readme.

            Par contre je suis un peu désorienté de ne pas voir les points ;)

            C'est parce que j'ai renversé le paradigme. J'ai laissé vide les endroits explorés et j'ai rempli tous ceux qui ne l'étaient pas. Je trouve que ça plus léger (plus facile à lire pour moi).

            Je teste du coup le caractère ░

            Le problème du 176 c'est que sur avec une petite fonte il donne un bloc gris (qui ressemble à un mur).

            Colorer différemment les bordures qui viennent d'être rencontrées

            Oui, la zone de limite d'exploration, ça montre les endroits où on est passé sans tout voir. Exemples avec Bold
            (d'après mon expérience, la sortie réussit régulièrement se cacher derrière un trou, mais j'attire murphy)

            boohu hack 4
            boohu hack 5

            • [^] # Re: Questions !

              Posté par  (site web personnel) . Évalué à 2.

              C'est parce que j'ai renversé le paradigme. J'ai laissé vide les endroits explorés et j'ai rempli tous ceux qui ne l'étaient pas. Je trouve que ça plus léger (plus facile à lire pour moi).

              L'inconvénient c'est que les points, c'est quand même pratique pour estimer la distance à l'œil nu et calculer le nombre de tours avant qu'un monstre se retrouve à côté. Après, je suis pas totalement convaincu par le système où je fais les deux non plus, je vais tester pendant un temps pour voir.

              Oui, la zone de limite d'exploration, ça montre les endroits où on est passé sans tout voir. Exemples avec Bold
              (d'après mon expérience, la sortie réussit régulièrement se cacher derrière un trou, mais j'attire murphy)

              Cette idée m'a l'air pas mal !

              • [^] # Re: Questions !

                Posté par  (site web personnel) . Évalué à 2.

                Cette idée m'a l'air pas mal !

                Bon, finalement j'ai mis des '?' sur la limite (je sais pas si c'est idéal comme caractère, mais au moins on comprend :) ), et j'ai enlevé les caractères de bloc en dehors.

                limite exploration

        • [^] # Re: Questions !

          Posté par  (site web personnel) . Évalué à 3.

          un mode "brouillard de guerre" (tilde?) pour trouver plus facilement les zones non explorées et donc les chemins restant.

          Je teste du coup le caractère pour les zones non explorées, ça donne pour une carte partiellement explorée :

          partiellement exploré

          Et pour une carte totalement explorée :

          tout exploré

          C'est un peu une combinaison des deux approches, ça a le mérite qu'on voit à la fois les points sur les cases explorées et clairement aussi quelles cases ne sont pas explorées.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.