CONNEXION
  • RetourJeux
    • Tests
    • Soluces
    • Previews
    • Sorties
    • Hit Parade
    • Les + attendus
    • Tous les Jeux
  • RetourActu
    • Culture Geek
    • Astuces
    • Réalité Virtuelle
    • Rétrogaming
    • Toutes les actus
  • RetourHigh-Tech
    • Actus JVTECH
    • Bons plans
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTECH
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch
    • Xbox Series
    • Overwatch 2
    • FUT 23
    • League of Legends
    • Genshin Impact
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • PS4
  • One
  • Switch
  • Wii U
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Etoile Abonnement RSS

Sujet : [Unity] Génération procédurale 2D

DébutPage précedente
1
Page suivantePage suivante
jharry78480 jharry78480
MP
Niveau 4
23 août 2015 à 11:11:36

Bonjour,
Je suis actuellement entrain de créer un jeu de plateformes en 2D pour android et je voudrais faire des niveaux qui se génèrent procéduralement pour cela j'ai décider d'utiliser un carré de base qui sert a définir le point de départ pour la génération. Pour l'instant j'ai réussi a obtenir ce résultat

https://www.noelshack.com/2015-34-1440316401-capture.png

une fois le niveau générer je spawn le joueur a l'endroit du carré de départ (visible en gris clair sur l'image ci-dessus) mais j'aimerais ajouter le spawn de pièges (comme des pics) ou des ennemis mais je ne sais pas comment faire. De plus je voudras aussi generer un point de fin de niveau telle qu'il soit a une certaine distance du joueur. Pour cela j'avais penser a utiliser un ray pour définir cette distance mais je ne sais pas si c'est la meilleur solution.

mon code est disponible ici:
http://pastebin.com/5JnM2WuK
http://pastebin.com/yv1mwHth

merci d'avance pour votre aide .

Lapintade Lapintade
MP
Niveau 18
23 août 2015 à 23:11:58

Les regles de positionnement ded pieges vont dependre des regles de déplacement de ton jeu. Faut lister les contraintes et deduire des règles.
Pour la sortie c'est pareil, faut qu'elle soit accessible.

jharry78480 jharry78480
MP
Niveau 4
24 août 2015 à 09:49:37

Merci de ta réponse j'ai don établie des règles concernant les pièges et l'arrivée tout d'abord tout deux devront apparaître a l'intérieur des limites de plus il devront ce générer il devront tout toucher les limites, les pièges pourront être soit sur le mur soir sur le sol tandis que l'arriver devra seulement être générer en contact avec le sol. Je vais don maintenant regarder comment faire cela

Message édité le 24 août 2015 à 09:50:30 par jharry78480
florent6262100 florent6262100
MP
Niveau 9
24 août 2015 à 13:48:11

Et la randomisation va faire sont grand retour [[sticker:p/1kkg]]

jharry78480 jharry78480
MP
Niveau 4
26 août 2015 à 15:44:55

je n'arrive toujours pas a génerer mes pics et ennemis quelqu'un a t'il une idée de comment faire

jharry78480 jharry78480
MP
Niveau 4
28 août 2015 à 14:15:42

Personne?

caelacanthe caelacanthe
MP
Niveau 10
28 août 2015 à 19:15:14

Tu as indiqué comment tu voulais faire et ça paraissait être une technique correcte, donc où est le problème, en fait? :oui:

jharry78480 jharry78480
MP
Niveau 4
28 août 2015 à 20:49:53

le probleme est concernant les pieges senser etre en contact avec le sol je ne sais pas du tout comment faire et de plus la technique du ray ne marche pas car dans certain cas l'arrivée est en dehors du terrain je ne sais pas non plus comment un ray qui reste dans les limites

Romuald_78 Romuald_78
MP
Niveau 5
02 septembre 2015 à 16:56:00

Quel est ton générateur d'aléa ? tu en utilises un déjà fait ou bien tu as codé le tien ?
Je suis intéressé par le sujet.
Personnellement j'utilise un générateur de ce type là :
[https://fr.wikipedia.org/wiki/G%C3%A9n%C3%A9rateur_congruentiel_lin%C3%A9aire]
Après faut voir quels paramètres utiliser mais l'idée est là.

Je vois 2 aspects :

  1. 1 - Tu dois definir les elements de décors et savoir comment les placer (échelles, sols, plateformes mouvantes, trou par dessus lequel sauter, ascenseurs, portes, ...). Puis définir les ennemis (leurs caracteristiques en terme de déplacement et attaques.
  1. 2 - Il te faut définir le "chemin" de ton niveau. C'est à dire la position de début et fin puis les différents éléments entre. Mon idée c'est soit, de découper ton espace en "cases" qui sont chacune à un emplacement x,y. Tu peux les initialiser avec des "cubes" (cases sur lesquelles on ne peut pas aller mais on peut marcher dessus) et tu "creuses un chemin" dedans en partant du point de départ jusqu'à l'arrivée.

Soit faire l'inverse, Ajouter des éléments de décor sur ton espace vide.

Tu peux faire les deux en parallèle mais je te conseille déjà de faire la #2 pour avoir un niveau construit et jouable sans piège ni ennemi.
Ensuite tu passes sur la #1 pour rajouter des éléments "sur le chemin" pour complexifier la progression.

Ma premiere idée naive serait de generer un signal pseudo aléatoire en 2D, qui représente le "chemin à parcourir" (l'axe des X représente la progression horizontale, l'axe Y la hauteur à laquelle il faut accéder pour progresser). Grace à ce signal tu pourras populer l'espace avec tes éléments de décor.

jharry78480 jharry78480
MP
Niveau 4
03 septembre 2015 à 22:12:46

Merci pour ta réponse je vais regarder comment définir la position de la fin, quand au type de génération procédurale je ne serai pas t'expliquer correctement mon algorithme. n'hésite pas a poster ici si tu trouve un moyen de définir une fin

Romuald_78 Romuald_78
MP
Niveau 5
04 septembre 2015 à 15:10:00

LOL! Tu ne saurais pas expliquer ton algo.... pour un mec qui l'a codé ça fait bizarre.
Bon du coup pour ton jeu, tu prends mon algo, tu mets comme paramètre X,Y,1 avec
X le nombre de cases en abscisse
Y le nombre de cases en ordonnée

Attention, entre deux cases, il peut y avoir un mur donc ton espace de jeu aura comme taille
2*X+1 et 2*Y+1.

Comme ca tu auras un labyrinthe en 2D. Ca c fait.

Maintenant c'est TOI qui decides où se trouve le départ et l'arrivée. L'idée naive que j'ai c'est de mettre le depart en bas a gauche et l'arrivée en haut à droite. Pif Paf Pouf Pasteque.


   ╔═══════════╦═════════════════════════════╗     
   ║ [ ]   [ ] ║ [ ]   [ ]   [ ]   [ ]   [ ] ║     
   ║     ╔═════╣     ╔════════════     ══════╣     
   ║ [ ] ║ [ ] ║ [ ] ║ [ ]   [ ]   [ ]   [ ] ║     
   ║     ║     ║     ╚═══════════════════════╣     
   ║ [ ]   [ ]   [ ]   [ ]   [ ]   [ ]   [ ] ║     
   ╠═════╗     ══════╦═════╦═════════════════╣     
   ║ [ ] ║ [ ]   [ ] ║ [ ] ║ [ ]   [ ]   [ ] ║     
   ║     ╚═════╗     ║     ╠══════     ║     ║     
   ║ [ ]   [ ] ║ [ ] ║ [ ] ║ [ ]   [ ] ║ [ ] ║     
   ║     ══════╝     ║     ║     ╔═════╣     ║     
   ║ [ ]   [ ]   [ ]   [ ]   [ ] ║ [ ] ║ [ ] ║     
   ╠══════     ╔══════     ║     ║     ╚═════╣     
   ║ [ ]   [ ] ║ [ ]   [ ] ║ [ ]   [ ]   [ ] ║     
   ╚═══════════╩═══════════╩═════════════════╝ 

Dans l'exemple ci -dessus, j'ai mis 7 cases sur 7 donc ton espace de jeu aura 15 cases sur 15.
Apres en fonction des competences de ton personnage (si il a un jet pack ou si il saute tres haut ou pas) he bien tu devras placer des echelles etc ....

jharry78480 jharry78480
MP
Niveau 4
04 septembre 2015 à 19:03:11

le truc concernant pour mon algorithme est que je ne serrai pas l'expliquer de façon suffisamment claire car j'ai accumuler les tests pour créer sa :)

DébutPage précedente
1
Page suivantePage suivante
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
La vidéo du moment