JeuWeb - Crée ton jeu par navigateur
Les petits-jeux de ThetaTauTau - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Les réalisations de la communauté (https://jeuweb.org/forumdisplay.php?fid=39)
+--- Forum : Jeux jouables (https://jeuweb.org/forumdisplay.php?fid=52)
+--- Sujet : Les petits-jeux de ThetaTauTau (/showthread.php?tid=7915)

Pages : 1 2 3 4 5 6


RE: Les petits-jeux de ThetaTauTau - Thêta Tau Tau - 19-08-2019

L'image précédente c'est une représentation des données de l'algo, pas du résultat final. Les traits blanc c'est les couloirs. Les sections de couloir au milieu des salles sont ignorés dans les étapes suivantes.

Voilà le résultat exporté sur la tilemap:
[Image: 1566230300-screen3.png]
Bon du coup les salles font vides, mais plus tard il y aura des trucs dedans (meubles, décorations etc.).

Niveau level design, l'algo donne des trucs parfois un peu "meh" pour ne pas dire mauvais. Genre un cul de sac de 5 salles de long. Avec le bon paramétrage les niveaux vraiment mauvais semblent être relativement rares cela dit.

Et puis bon les jeux desquels je m'inspirent ont des millions de vues alors que leur génération procédurale et toute pourrie... Quoi c'est pas une excuse?  :roi:


RE: Les petits-jeux de ThetaTauTau - Murthy - 19-08-2019

C'est pas mal du tout ! Par contre, je suis le seul à trouver les "portes" un peu trop alignées ? Genre elles ont l'air trop souvent en face à face.


RE: Les petits-jeux de ThetaTauTau - Thêta Tau Tau - 13-09-2019

Bon j'ai un peu la flemme d'avancer sur mon roguelike ces derniers temps.  Big Grin

Du coup j'ai implémenté un algo de "boids", qui permet de simuler des vols d'oiseaux, troupeaux d'animaux ou bancs de poissons.
Je vois bien ce genre de truc dans un tower defense ou autre jeu de stratégie.

Démo "jouable" disponible en cliquant sur l'image ci dessous :
[Image: jtlW3S.png]
Attention c'est optimisé avec le cul ça lagouille pas mal.


RE: Les petits-jeux de ThetaTauTau - Thêta Tau Tau - 14-09-2019

J'ai avancé sur le rogue like. Les nouveaux graphiques sont intégrés dans le jeu et j'ai créé des sprites pour un total de 5 monstres, 15 objets, 9 éléments de décor. Ça suffira comme contenu pour une première version.

Pour l'instant c'est dans un style "arbres alignés" (cf l'autre topic) mais vu la façon dont je gère le placements des arbres il y a moyen que j'améliore ça assez facilement, mais comme c'est juste esthétique c'est pas ma priorité actuelle.

Par contre la génération procédurale de niveaux rends très moche avec le nouveau style, vu que ça génère un "donjon" avec des salles rectangulaires qui ne collent pas du tout avec le thème "forêt". Il va donc falloir que je refasse un algo de génération de niveau. Pour une forêt un automate cellulaire donne de très bon résultats et est très simple à coder, ça devrais donc arriver rapidement.

J'ai penser profiter de cette occasion pour passer à des tuiles hexagonales, qui rendent mieux pour des niveaux en milieu naturel. Le hic c'est que l'algo de "ligne de vision" que j'utilise pour le brouillard de guerre, ne fonctionne que pour des cases carrées, et que ça me prendrait pas mal de temps de l'adapter (d'autant que le code n'est pas de moi). Du coup tant pis je reste sur des cases carrées.


RE: Les petits-jeux de ThetaTauTau - Thêta Tau Tau - 15-09-2019

Voilà un exemple de niveau généré avec un automate cellulaire et quelques bidouilles derrière:
[Image: 1568551041-screen6.png]
J'attaque le placement des monstres/trésors etc.


RE: Les petits-jeux de ThetaTauTau - Ter Rowan - 16-09-2019

Ca le fait bravo


RE: Les petits-jeux de ThetaTauTau - niahoo - 18-09-2019

C'est quoi le principe de l'algo ?


RE: Les petits-jeux de ThetaTauTau - Thêta Tau Tau - 18-09-2019

Je me suis pas mal inspiré des conseils présentés ici (pour générer des grottes à la base).

A) Automate cellulaire

Les automates cellulaires sont quelque chose d'ultra classique.

J'utilise les règles suggérées dans le premier lien, en me basant sur le total de cases de sol parmi les 8 voisins d'une cellule + la cellule elle même:
- 4 itérations : case de sol si 5 à 8 cases de sol
- 3 itérations : case de sol si 5 à 9 cases de sol


B) Réduction de l'échelle

Un truc important que j'ai changé par rapport au lien précédent, c'est que je génère une grille 2x plus grande que ce que je veut obtenir à la fin (en hauteur et en largeur, donc 4x plus grande en fait). Et qu'après avoir fait tourner l'automate cellulaire, je réduit la grille. La probabilité qu'une cellule de la grille réduite aie une certaine valeur étant la fréquence de cette valeur dans le carré de 4 cases qui lui correspond dans la grille non réduite.

Ca permet de réduire l'échelle des "salles" et "couloir" par 2. En effet l'automate cellulaire génère des "couloirs" de 5 ou 6 cases de large en moyenne, ce qui est trop pour ce que je veut. Sur mon screen on voit que les couloirs font 2 à 3 cases de large (parfois même 1).

C) Placement de l'entrée

Une fois mes arbres ainsi placés, je prends un point placé au hasard sur un cercle centré sur la carte, avec un rayon suffisant pour que le cercle soit entièrement en dehors de la carte. Je trace ensuite un trait entre ce point et le centre de la carte, et la première case sur ce trait qui est une case vide sera l'entrée du niveau (en vert).

D) Nettoyage

Je liste toute les cases connectées à mon entrée.

S'il n'y en a pas assez, je recommence de zéro (l'algo est très rapide c'est pas un souci).

S'il y en a assez, je met des arbres dans toutes les cases non connectées.

E) Placement de la sortie

Pareil que pour l'entrée, en tourant le point sur le cercle extérieur de 120° à 240° de façon à ce que la sortie soit plus ou moins opposée à l'entrée.

F) Placement des points d'intérêt

Les points d'intérêts sont les groupes de monstres, trésors etc.

Je reprends la liste de cellules connectés (étape D), je la mélange au hasard, puis je tire les cellules une par une, si la cellule ainsi choisie est suffisamment éloignée de l'entrée, de la sortie et des autres points d'intérêt, je la sélectionne comme point d'intérêt. Je fais ça jusqu'à avoir suffisamment de points d'intérêt. Si je n'a pas assez de points d'intérêt après avoir parcouru toutes les cellules je recommence l'algo de 0.

[Image: 1568794212-screen7.png]
Entrée Sortie Points d'intérêt
Pour l'instant il n'y a que des petits arbres pour simplifier, j'améliorerais ça plus tard pour que ce soit plus joli.


RE: Les petits-jeux de ThetaTauTau - Xenos - 18-09-2019

Ta sortie est connecté diagonalement à l'entrée, mais elle est isolée de l'entrée si tu ne comptes que les 4 voisins, c'est normal?

L'algo est sympa; après, il génère énormément d'impasses sans point d'intéret: je ne sais pas ce que ça donnera niveau expérience de jeu (ça fait "cul de sac! ahah, t'as fait ça pour rien" si le joueur n'a aps accès à la carte globale)


RE: Les petits-jeux de ThetaTauTau - Thêta Tau Tau - 18-09-2019

On peut se déplacer en diagonale, donc c'est connecté.

Le placement des points d'intérêts n'est pas top effectivement. Je pense qu'il faudra que j'utilise une distance A* plutôt qu'une distance à vol d'oiseau. Ça évitera les trucs comme le grand couloir vide en bas de la carte, vers la sortie.