système Sid Meyer like (Civilization)
OverdOzed
Inscrit:
19/03/2016 15:30
De Belgique
Post(s): 1522
Bonjour tout le monde,

Je souhaiterais connaître le secret du tour du monde. C'est-à-dire que dans les jeux ancien, on avait la possibilité de déplacer la caméra et de retrouver l'autre extrémité de la carte. Je suis sûr qu'il est possible de faire ça aussi dans le BGE.

Du coup, comment ça marche ?

Ensuite dans les jeux Sid Meier je suppose qu'il n'y a pas de navmesh donc je me demande comment le jeu parvient à créer un chemin à travers les cases et indiquer le nombre de tours ?

Merci pour les éclaircissements que vous pourrez m'apporter.

Contribution le : 23/02 11:27:53
Créer un fichier PDF de la contribution Imprimer


Re: Tour du monde et pathfiding
OverdOzed
Inscrit:
08/10/2003 09:20
De Annecy
Post(s): 2795
Salut Redstar,
Tu veux dire quoi par "retrouver l'autre extrémité de la carte"?
Il n'y avait peut etre pas de "navmesh" a proprement parler, mais un système similaire de pathfinding a forcément du être mis en place (algorithm A*, ce genre de chose...) Je ne suis pas hyper calé sur le sujet mais tu devrais trouver pas mal d'info sur le net, peut etre que l'algo est trouvable quelque part pour le BGE, sinon tu vas devoir t'y coller ;) J'avais tenté plus jeune d'en faire un sur le BGE... sans aucune expérience je n'ai jamais réussi à le terminer :)

Contribution le : 23/02 17:59:11
_________________
lucky
www.lucky3d.fr
Auto-Rig Pro Addon: Blender Market - GumRoad
Créer un fichier PDF de la contribution Imprimer


Re: Tour du monde et pathfiding
OverdOzed
Inscrit:
19/03/2016 15:30
De Belgique
Post(s): 1522
Citation :

Tu veux dire quoi par "retrouver l'autre extrémité de la carte"?


Je veux dire ceci.

Pour ma seconde question, j'ai une théorie: en faisant un détecteur entre en collision avec un autre détecteur des cases et la collision génèrera un point de passage. Ça pourrai marcher mais c'est à tester.

Contribution le : 24/02 10:37:36
Créer un fichier PDF de la contribution Imprimer


Re: Tour du monde et pathfiding
Fou Furieux du Clan
Inscrit:
26/07/2008 22:53
Post(s): 208
Salut !

Pour ton problème de tour du monde, j'ai vu les premières vidéos de cette playlist. C'est un mec qui créé les bases d'un jeu à la civilization. Il explique très bien le tour du monde assez tôt dans la playlist (je sais plus dans quelle vidéo).

C'est en anglais, mais il explique bien ce qu'il fait, comment et pourquoi. Après c'est du C# sous Unity, ça te donnera le principe, mais il faudra l'adapter, si toutefois c'est possible.

Contribution le : 24/02 12:19:47
Créer un fichier PDF de la contribution Imprimer


Re: Tour du monde et pathfiding
OverdOzed
Inscrit:
19/03/2016 15:30
De Belgique
Post(s): 1522
Merci pour ton partage ! La méthode est claire (partie 2) maintenant, je sais ce que je dois faire comme tests.

Contribution le : 24/02 13:56:44
Créer un fichier PDF de la contribution Imprimer


Re: Tour du monde et pathfiding
OverdOzed
Inscrit:
19/03/2016 15:30
De Belgique
Post(s): 1522
Bonjour,

Je suis en train de réaliser un générateur de carte comme dans les jeux "Sid Meyer".

J'avance bien dans mon ébauche mais je bloque sur un problème: j'ai un bateau qui apparait sur une case d'eau. Si je clique sur une autre case, un cube apparait et le bateau dois arriver à celui-ci tuile par tuile, en cherchant le chemin le plus court. Le problème, c'est que je n'arrive pas à faire déterminer la case suivant ou dois se déplacer le bateau (ou plutôt faire apparaitre un point de passage).

from bge import logic as gl

scene = gl.getCurrentScene()
obj = gl.getCurrentController().owner
list_dist = []
dist_min = None

for case in scene.objects:
    if 'type' in case:
        # on regarde les cases avoisinante sauf celle sur laquelle on est
        if obj.getDistanceTo(case) < 1 and obj.getDistanceTo(case) > 0.5:
            # on indique dans une liste chaque distances par rapport aux cases concernées
            list_dist.append(case.getDistanceTo('pt_unit'))
        
for test in scene.objects:
    if 'type' in test:
        # on cherche la case ayant la plus petite distance correspondant à la valeur la plus petite dans la liste
        if test.getDistanceTo('pt_unit') == min(list_dist):
            scene.addObject('pt_unit', test, 0)


J'ai un résultat, mais pas celui attendu visuellement.

Deuxième chose: comme c'est une carte générée aléatoirement, je constate tout de même que la répartition est parfois bizzare. Quelle fonction me permettrai d'avoir quelque chose de plus... uniforme ?

Contribution le : Hier 15:56:07
Créer un fichier PDF de la contribution Imprimer


Re: Tour du monde et pathfiding
OverdOzed
Inscrit:
19/07/2011 20:39
De Corsica !
Post(s): 1086
Pour le chemin le plus court, tu peux tenter une implémentation d'un algorithme de chemins (pathfinding).
Le A* est très utilisé pour les jeux (c'est ce que j'utilise d'ailleurs), un exemple pour le mettre en place:
https://medium.com/@nicholas.w.swift/easy-a-star-pathfinding-7e6689c7f7b2

++

Contribution le : Hier 16:13:10
Créer un fichier PDF de la contribution Imprimer


Re: système Sid Meyer like (Civilization)
OverdOzed
Inscrit:
23/02/2006 18:10
De Alpes-Maritimes
Post(s): 2191
+1 pour A* (qui est si populaire qu'il en existe de nombreuses variations).

Pour la génération aléatoire, tu peux plus décrire ce que tu veux améliorer ? C'est la génération des tuiles, du genre "terre" et "mer" ? Ou ça concerne un autre aspect de la génération ?

Si tu parles bien de la map et des tuiles, as-tu penser à générer un diagramme de Voronoï ? C'est très utilisé pour la génération de cartes.
Je parle de ce type de map mais tu peux adapter ensuite pour avoir plusieurs continents.
https://www.youtube.com/watch?v=WoBA42n4xO8

Contribution le : Hier 20:55:04
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
Compte*
Nom   Mot de passe   Authentification
Message:*



[Recherche avancée]



Sujets récemment répondus
Forums Sujets Réponses Lus Dernières contributions
Moteur de jeu GameBlender et alternatives hARMful engine    [1][2][3]...[5] 43 3117 Aujourd'hui 01:12:26
Bibi09 
Questions & Réponses problème texture qui s'ajoute au groupement de plusieurs meshes 2 29 Hier 21:08:17
skatekitchen 
Moteur de jeu GameBlender et alternatives [WIP] DeadSigns FPS horreur - Reprise du développement    [1][2][3]...[47] 468 80487 Hier 20:59:49
Bibi09 
Moteur de jeu GameBlender et alternatives [non résolu] système Sid Meyer like (Civilization) 7 467 Hier 20:55:04
Bibi09 
Questions & Réponses Mesh qui se déforme avec le mouvement de l'armature    [1][2] 11 66 Hier 20:30:16
Homarus 
[WIP] et travaux terminés [terminé] ANIMATION HELICOPTERE // GUERRE DU VIETNAM    [1][2] 11 860 Hier 20:17:22
ju 
[WIP] et travaux terminés Un canard, avec des plumes. 2 51 Hier 17:17:57
Guppy88 
Questions & Réponses [non résolu] Blender LAG 8 48 Hier 12:33:33
Vespasien28 
Questions & Réponses [non résolu] Probléme de mirroir    [1][2][3] 24 158 Hier 12:25:34
Vespasien28 
Questions & Réponses Réaliser un vêtement avec shrinkwrap 0 25 Hier 11:28:50
G-tout-court 
Questions & Réponses [résolu] [Blender 2.8] Sélectionner les keys de TOUTES les actions (rigs+objets) 4 117 Hier 10:24:12
Rimpotche 
[WIP] et travaux terminés Modélisation d'un humain    [1][2] 15 666 06/04 12:35:39
Guppy88 
Python & Plugins Importer, nommer et hiérarchiser l'anatomie humaine avec un script 0 38 06/04 12:25:29
Melodicpinpon 
The Blender Clan 'tchat [BUG PARIS] RDV en 2020 !    [1][2][3]...[70] 699 182310 06/04 10:44:33
stev 
Questions & Réponses Circle selection ne sélectionne pas plusieurs objets 1 94 05/04 19:23:45
Melodicpinpon 
Graphisme alternatif Un court-métrage apocalyptique en 2D ! 0 53 05/04 18:25:39
Martulen 
Questions & Réponses [résolu] Orientation des normals 6 83 05/04 18:06:30
RHENA 
Questions & Réponses [non résolu] élargir un continent sur une planète.    [1][2] 11 235 05/04 16:58:55
Rimpotche 
Questions & Réponses Export .obj>Export selection only: géométries parasites 2 85 05/04 14:58:54
Melodicpinpon 
Questions & Réponses depth of field 4 91 04/04 18:08:20
Rimpotche 

Qui est en ligne
26 utilisateur(s) en ligne (dont 15 sur Forums)

Membre(s): 0
Invité(s): 26


plus...
Nouveaux membres
KNHJessica 8/4/2020
PriscillaL 8/4/2020
DawnaKirwa 7/4/2020
DennyHamma 7/4/2020
DakotaHobs 7/4/2020
MelbaBair 7/4/2020
KianBrenan 7/4/2020
JeffreyFul 7/4/2020
Uta58N0572 7/4/2020
AgnesKnigh 7/4/2020
Dernier Ajout
mirages-preview~0.jpg

Evènements à venir
Jui 30
Anniv des Jedi :-D
Jui 11
BUG de Lyon
Jui 23
Anniv du BlenderClan !
plus 270 plus d'élément(s)
 Par Mickaël Guédon [ebrain] © 2003-2020 The Blender Clan - hébergé par TuxFamily - Site déclaré à la CNIL sous le numéro 1155445