AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment : -50%
-50% Baskets Nike Air Huarache Runner
Voir le deal
69.99 €

 

 Générateure de Map a la civilization

Aller en bas 
+2
Sekigo Le Magnifique
Bloboto
6 participants
AuteurMessage
Bloboto
Nouveau



Messages : 8

Générateure de Map a la civilization Empty
MessageSujet: Générateure de Map a la civilization   Générateure de Map a la civilization EmptySam 26 Fév 2011 - 2:12

Bonjours, je suis nouveau, et je tente de faire un jeu civ-like.

J'aimerais savoir si quelqu'un a une idée comment générer une map a case.

C'est gros, 240 cases par 180 = 43200 objet !!!

C'est trop, comment on peut réussir a faire une map avec interaction sans utiliser des objets?

Je ne sais pas du tout quoi faire?
Revenir en haut Aller en bas
Sekigo Le Magnifique
Utilisateur confirmé: Rang *****
Sekigo Le Magnifique


Messages : 1720

Générateure de Map a la civilization Empty
MessageSujet: Re: Générateure de Map a la civilization   Générateure de Map a la civilization EmptySam 26 Fév 2011 - 9:37

Mmmmmh. Vu que j'étais un gros joueur de Civilization, je vais t'aider un peu.

Pour la carte, c'est rien qu'un gigantesque damier.

Pour les graphismes de ta carte, utilise les tiles. Bon, pour générer une carte aléatoire, à toi de trouver le bon algorithme.
Pour les caractéristiques des cases selon le type de terrain, utilise les ds_grid (ou les tableaux).

Ainsi, par exemple :
Code:

map[34,21] = "plaine:foret"
map[12,45] = "colline:ville"

Ça évitera de remplir la carte de dizaine de millers d'objets. Par contre, avec GM, ce n'est pas évident, mais c'est faisable.
Évidemment, cela nécessite de faire un moteur spécifique, avec pas mal de recherches en amont de ta part pour trouver les différents algos.

Pour tout ce qui est ville, unités, ressources, etc...., j'utiliserais plutôt des objets. Car les caractéristiques changent, contrairement aux terrains. Donc, il faut plus de flexibilité.

Désolé, c'est peut-être trop théorique, mais n'utilisant plus GM, je ne peux pas faire autrement. En tout cas, je pense que c'est une bonne base.
Revenir en haut Aller en bas
https://2img.net/image.noelshack.com/old/up/gmzonecbna-3cfbc56d25.jpg
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

Générateure de Map a la civilization Empty
MessageSujet: Re: Générateure de Map a la civilization   Générateure de Map a la civilization EmptySam 26 Fév 2011 - 11:10

La carte, ne devrait pas être constituée d'objets ou de tiles...
Une bonne technique consiste à avoir plusieurs ds_grid (ou ds_map, selon ce que tu veux), une contenant le terrain (plaine, eau, montagne, etc), une seconde les ressources, une autre les batiments, et une dernière les unités.
Avec toutes ces grilles supreposées, ça pèse très peu dans ta RAM, et ça permet de n'afficher que ce que tu vois à l'écran, et de ne calculer tous les objets QUE quand c'est nécessaire.

C'est un peu abstrait comme programmation, mais c'est très efficace par rapport à une myriade d'objets. Et surtout, c'est plus simple de trouver ce qui se trouve à côté, il suffit de chercher dans les grilles, sans faire de test de présence/collision.

_________________
Générateure de Map a la civilization Control-commentTous les icones de gm utilisables sur le cbna ICI  Générateure de Map a la civilization Main1-change-sprite
Revenir en haut Aller en bas
http://www.lecbna.org
Sekigo Le Magnifique
Utilisateur confirmé: Rang *****
Sekigo Le Magnifique


Messages : 1720

Générateure de Map a la civilization Empty
MessageSujet: Re: Générateure de Map a la civilization   Générateure de Map a la civilization EmptySam 26 Fév 2011 - 12:00

C'est d'ailleurs ce que je voulais dire plus haut.

Si à la position [x,y], la grille A lui indique "ici, il y a des montagnes", hop, il blit une tile de montagne.
Si à même la position [x,y], la grille B lui indique "ici, il y a la ville Nude_City", et que le tableau C lui indique "Pour Nude_City, il y a 30 habitants", hop, il crée l'objet "Generic_City" avec pour attribut 30 has.

Et hop, tu as ton système. Bon, par contre, il faut absolument afficher uniquement que ce le joueur voit.
Revenir en haut Aller en bas
https://2img.net/image.noelshack.com/old/up/gmzonecbna-3cfbc56d25.jpg
Bloboto
Nouveau



Messages : 8

Générateure de Map a la civilization Empty
MessageSujet: Faire une grille    Générateure de Map a la civilization EmptySam 26 Fév 2011 - 18:23

Ouf, je n'ai jamais fait de grille. Pouvez-vous m'indiquer un tuto sur les grilles qui soit assez complet. Avec le manuel, il manque d'information.

Voila ce que je tente;

lito = ds_grid_create(640,480)
lito[34,21] = "mer"

"mer" étant un backgrond utiliser en tileset.

Mais cela n'affiche rien...

Merci beaucoup de votre aide
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

Générateure de Map a la civilization Empty
MessageSujet: Re: Générateure de Map a la civilization   Générateure de Map a la civilization EmptySam 26 Fév 2011 - 18:39

Déjà utilise ds_grid_add, ds_grid_set et ds_grid_get, y a pas de grid[x,y] ou autre syntaxes.
Après tout est très bien expliqué dans la doc, et si t'as des soucis avec l'anglais la doc FR est en post-it dans la section GameMaker Wink

Aussi une grid n'est qu'une structure de données, elle ne va rien t'afficher par elle même.

_________________
Générateure de Map a la civilization Runningpotato1Générateure de Map a la civilization TvF6GED Générateure de Map a la civilization MdetltS
Revenir en haut Aller en bas
Bloboto
Nouveau



Messages : 8

Générateure de Map a la civilization Empty
MessageSujet: Re: Générateure de Map a la civilization   Générateure de Map a la civilization EmptySam 26 Fév 2011 - 19:30

Merci onilink, mais sans blague, je ne comprend pas comment faire l'index?!? Ca dit (Vous créerez une structure de données à l'aide d'une fonction qui retournera un identificateur sur la structure créée. Vous utiliserez cet id pour effectuer toutes opérations sur la structure de données)J'aimerais seulment avoir un véritable exemple complet genre un gm 6.1 avec de ds_grid fonctionelle a l'intérieur.

Merci beaucoup
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

Générateure de Map a la civilization Empty
MessageSujet: Re: Générateure de Map a la civilization   Générateure de Map a la civilization EmptySam 26 Fév 2011 - 19:37

Ben

index = ds_grid_create(640,480)
ds_grid_set(index, x, y, valeur)
[...]

_________________
Générateure de Map a la civilization Runningpotato1Générateure de Map a la civilization TvF6GED Générateure de Map a la civilization MdetltS
Revenir en haut Aller en bas
marty
Utilisateur confirmé: Rang ***
marty


Messages : 697
Projet Actuel : laby-ereinte !

Générateure de Map a la civilization Empty
MessageSujet: Re: Générateure de Map a la civilization   Générateure de Map a la civilization EmptyDim 27 Fév 2011 - 13:01

c'est vrai que c'est super compliqué ces fonctions de tableaux, grilles je n'ai rien compris non plus car il faut utiliser des boucles pour les remplir et les lire!

un petit exemple si ou plait,merci!
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

Générateure de Map a la civilization Empty
MessageSujet: Re: Générateure de Map a la civilization   Générateure de Map a la civilization EmptyDim 27 Fév 2011 - 13:23

ok, je vais manger et je vous fait un exemple de carte Wink

_________________
Générateure de Map a la civilization Runningpotato1Générateure de Map a la civilization TvF6GED Générateure de Map a la civilization MdetltS
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

Générateure de Map a la civilization Empty
MessageSujet: Re: Générateure de Map a la civilization   Générateure de Map a la civilization EmptyDim 27 Fév 2011 - 14:05

hop vala : http://www.host-a.net/u/onilink_/ds_grid.gm6

Si y a besoin d'un truc particulier dites le Wink

_________________
Générateure de Map a la civilization Runningpotato1Générateure de Map a la civilization TvF6GED Générateure de Map a la civilization MdetltS
Revenir en haut Aller en bas
Wargamer
*Excellent utilisateur*
Wargamer


Messages : 6938
Projet Actuel : Bataille de cake au fruits

Générateure de Map a la civilization Empty
MessageSujet: Re: Générateure de Map a la civilization   Générateure de Map a la civilization EmptyDim 27 Fév 2011 - 14:28

Le plus dur c'est pas de remplire une map random, c'est de faire un algo qui va faire des montagnes, des rivières, des roussources et sans que ca se superpose, là ca va être amusant :V

_________________
Générateure de Map a la civilization Wargamer3
Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

Générateure de Map a la civilization Empty
MessageSujet: Re: Générateure de Map a la civilization   Générateure de Map a la civilization EmptyDim 27 Fév 2011 - 14:38

Bof pas vraiment , y plein de techniques pour ça, mais la déjà faut savoir utiliser les fonction de base crossa

_________________
Générateure de Map a la civilization Runningpotato1Générateure de Map a la civilization TvF6GED Générateure de Map a la civilization MdetltS
Revenir en haut Aller en bas
Bloboto
Nouveau



Messages : 8

Générateure de Map a la civilization Empty
MessageSujet: Re: Générateure de Map a la civilization   Générateure de Map a la civilization EmptyDim 27 Fév 2011 - 15:35

Merci, beaucoup Onilink
Revenir en haut Aller en bas
Bloboto
Nouveau



Messages : 8

Générateure de Map a la civilization Empty
MessageSujet: Re: Générateure de Map a la civilization   Générateure de Map a la civilization EmptyDim 27 Fév 2011 - 16:36

Je ne comprend pas, j'ai fait une map de 8000 par 5000, avec des cases a 50 par 50 et le CPU monte aussi haut qu'avec mon système avec 16 000 objets?!?

Cette technique ne semble pas vraiment plus optimisé. Suis-je dans l'erreur?
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

Générateure de Map a la civilization Empty
MessageSujet: Re: Générateure de Map a la civilization   Générateure de Map a la civilization EmptyDim 27 Fév 2011 - 16:44

ben 8000x5000,ça nous donne donc 500x312 tiles (pour des tiles de 16x16) et cases dans la grid, chaque case de la grid fait 8 octets, ce qui donne 1218ko rien que pour stocker la grid, ce qui n'est pas énorme.
Par contre pour le cpu je vois pas, une grid c'est juste des variables stockées en mémoire, donc normalement ça bouffe pas de cpu. Faudrait que tu fasse voir ton gmk ou que tu nous donne ton bout de code qui s'occupe de tout ça Wink

_________________
Générateure de Map a la civilization Runningpotato1Générateure de Map a la civilization TvF6GED Générateure de Map a la civilization MdetltS
Revenir en haut Aller en bas
Bloboto
Nouveau



Messages : 8

Générateure de Map a la civilization Empty
MessageSujet: Re: Générateure de Map a la civilization   Générateure de Map a la civilization EmptyDim 27 Fév 2011 - 16:57

Ok, je me suis trompé, c'est beaucoup plus rapide.

Sans vouloir abuser de votre temps. Je n'ai aucune idée comment faire l'algo pour la map... Avec mon systeme a objet, j'avais simplement a utiliser des formes géométrique, j'avais réussi a crée un systeme assez correct pour généré la map. Mais avec une grille, je sais vraiment pas quoi faire.

C'est dans le ds_grid_set ?
ds_grid_set(grid, i, j, choose(HERBE, EAU, SABLE, GLACE))

Il faut remplacer choose par l'algo?
Revenir en haut Aller en bas
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

Générateure de Map a la civilization Empty
MessageSujet: Re: Générateure de Map a la civilization   Générateure de Map a la civilization EmptyDim 27 Fév 2011 - 17:16

Dejà, un simple random donne des maps vraiment bizarres... si j'étais toi j'essayerai d'adapter l'algo de bruit de perlin, pour avoir un résultat un minimum sympa. Pas pour la hauteur forcément, mais surtout pour placer la flotte.

_________________
Générateure de Map a la civilization Control-commentTous les icones de gm utilisables sur le cbna ICI  Générateure de Map a la civilization Main1-change-sprite
Revenir en haut Aller en bas
http://www.lecbna.org
Bloboto
Nouveau



Messages : 8

Générateure de Map a la civilization Empty
MessageSujet: Re: Générateure de Map a la civilization   Générateure de Map a la civilization EmptyDim 27 Fév 2011 - 18:02

J'arrive pas a trouver assez d'info pour les algo. Je vais donc continuer mon système avec mes 16 000 cases objets. J'ai tester avec un map a 43 200 objets et mon ordi étais aissément capable.

Quelque'un sais si c'est possible de faire un room oû l'axe x est infini? Je veut dire que une fois a la limite droite on vois la limite gauche (comme un cylindre) comme a civ original?
Revenir en haut Aller en bas
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

Générateure de Map a la civilization Empty
MessageSujet: Re: Générateure de Map a la civilization   Générateure de Map a la civilization EmptyDim 27 Fév 2011 - 18:06

lol avec le système de ds_grid ce serait facile :p

Sinon, libre à toi de faire une deuxième vue accolée à la première et visible si l'on est au bout...

_________________
Générateure de Map a la civilization Control-commentTous les icones de gm utilisables sur le cbna ICI  Générateure de Map a la civilization Main1-change-sprite
Revenir en haut Aller en bas
http://www.lecbna.org
Bloboto
Nouveau



Messages : 8

Générateure de Map a la civilization Empty
MessageSujet: Re: Générateure de Map a la civilization   Générateure de Map a la civilization EmptyLun 28 Fév 2011 - 2:06

Merci beaucoup. Quelqu'un pourais m'aider a faire une ds_grid pour le broillard.
Je ne comprend pas comment placer de l'invisibilité sur une case précice. Quelqu'un peut m'aider?
Revenir en haut Aller en bas
Contenu sponsorisé





Générateure de Map a la civilization Empty
MessageSujet: Re: Générateure de Map a la civilization   Générateure de Map a la civilization Empty

Revenir en haut Aller en bas
 
Générateure de Map a la civilization
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Civilization

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Entraide confirmés-
Sauter vers: