JeuWeb - Crée ton jeu par navigateur
Système de map agrandissable à souhait - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Système de map agrandissable à souhait (/showthread.php?tid=2148)

Pages : 1 2


RE: Système de map agrandissable à souhait - keke - 27-06-2008

Un simple ratio ??? je fais ça avec les villes de mon jeu ...

Le principe est simple :
les villes ont une puissance symbolique :
pA = 100 pour une ville A et pB = 200 points pour une autre B.

Je prends un point sur la carte qui soit à proximité de ces 2 villes (je peux t'expliquer ce 2eme principe si tu n'y arrives pas.)

Je calcule la distance entre ce point et les deux villes

dA = 40
et dB = 60

J'emploie une règle de gestion bidon qui prends en compte ces 4 paramètres ... et qui me dit à qui appartient cette zone.

Kéké.
(je te sens sceptique comme une fausse ...)
Exemple de règle de gestion bidon :
Si pA/dA > 2 (pB/dB) la zone appartient à A
Si pA/dA < 1/2 ( pB/dB) la zone appartient à B
dans tous les autres cas ... zone neutre.

PS : pour augmenter la zone ... tu peux considérer qu'un joueur sur la case de ta ville augmente artificiellement la puissance de la ville (et donc repousse la zone de non droit et les limites de ta ville. Quand il quitte cette case, les zones qui sont litigieuses reviennent en l'état, mais les cases qui ont été générés ne sont pas modifiées.


RE: Système de map agrandissable à souhait - P0ulp0r - 27-06-2008

Je suis pas sur que tu es globalement compris mon problème.
Le problème n'est pas de savoir si la zone est neutre/ou appartient à un peuple, mais il est de savoir comment ajouter des cases neutres à la map, sans pour autant créer un déséquilibre.

Donc ici, augmenter l'intérieur du carré, car les peuples sont dans les coins. Donc augmenter l'intérieur signifie augmenter la zone neutre.
Comme cela,
Passer de ca:
[Image: map1.jpg]
A ca:
[Image: map3.jpg]

Donc à moins de modifier toutes les coordonnées de l'ancienne map avant son agrandissement, je ne vois pas trop :/

Donc je chercher actuellement un système de map qui me permettrait d'agrandir tranquillement lorsqu'une tranche de joueur en plus s'est inscrit.

Ruz a proposé un système de 3d, mais beaucoup trop dure à mettre en place, remarque peut etre pas ^^

Je vais y cogiter :glace:


RE: Système de map agrandissable à souhait - Harparine - 27-06-2008

Tu peux très bien modifier les coordonnées de toutes les cases en conservant leur id. Si ton jeu est basé sur l'id des cases, il ne devrait pas y avoir de problème. Par exemple, lors d'un agrandissement, si une flotte est sur la case dont l'id est 12 et les coordonnées sont 23,35, elle sera toujours sur la case dont l'id est 12 (donc la même) mais les coordonnées auront changé.
Je pense que c'est un des seuls systèmes à fonctionner pour ce que tu veux faire.
@+


RE: Système de map agrandissable à souhait - Ruz - 27-06-2008

Attention à la manière de numéroter tes cases...
la distance entre tes villes augmente aussi... donc, le nombre de cases aussi...
faut donc augmenter le nombre de cases au centre, mais aussi entre les villes

Mais techniquement, un ID unique par case, c'est pas trop mal... ce que j'ai fait pour ma carte continent. (mais bon, ca n'a rien à voir, elle doit pas bouger)
Y a de l'dée à creuser dans ce chemin, je pense aussi... (et rien n'empeche la 3D ^^)


RE: Système de map agrandissable à souhait - Nakano - 28-06-2008

Hum, je vais tenter de t'aider malgrés mes faibles compétences ^-^
D'aprés ce que j'ai compris tu souhaites simplement agrandir les zones neutres entre tes villes.
Alors pourquoi ne pas définir deux axes (Y et X par exemple) qui serviront de points de repères pour l'agrandissement de ta carte, en ajoutant une colonne de chaque côté. Je m'explique :
On a ceci :

[Image: map1ny2.jpg]

On souhaite l'agrandir, pour cela, on utilise les axes :

[Image: map3bisie5.jpg]

en rajoutant une colonne de chaques côté de chaques axes.

J'espère que ce fut compréhensible ^-^
Et oui le seul problème, c'est qu'il va falloir modifier les repères de toutes tes villes.
La solution serait d'utiliser un schéma fractal mais sa risque de devenir terriblement ennuyant a utiliser. Par exemple, prenons une ville 1 de coordonnées (5;0) sur un axe (X;Y). Prenons ensuite une case B(4;0) et D(3;0).
Avec un schémas fractal, lors de la création de nouvelles colonnes on aurait toujours ville1(5;0) et B(4;0), mais la case créée entre les deux, la case A, aurait comme coordonnées (4.5;0). A ce stade il est encore aisé de les manipuler mais au bout d'un certains temps on aurait des point ayant pour coordonées : (4.00000000000000000000000000000000012354;0) ce qui est loin d'être manipulable :p

Bref j'èspère t'avoir (un peu ?) aidé, et j'espère aussi que je n'ai pas énoncé de principes faux xD


RE: Système de map agrandissable à souhait - keke - 28-06-2008

Hum ...

Et si (oulà !) en fait tu ne gérais pas 1 carte ... mais 4.

Tu définies dans une table les tailles de ces 4 maps.
[Image: map_infinie.jpg]

Lorsque tu atteins le SUD et l'EST de la carte en haut à gauche, tu vas chercher le complément d'information sur la carte adjacente.

En considérant les ID négatif, cette carte permet de rajouter autant de colonne et de ligne que tu le souhaites.

Sinon, mais bon, tu t'en fous, voilà le découpage de mon ile par zone d'influence et religion. On notera que je n'utilises pas l'algo du plus court chemin pour le calcul...
[Image: carte_decoupee.bmp]

kéké.


RE: Système de map agrandissable à souhait - P0ulp0r - 29-06-2008

Merci pour ces différentes aides Wink

Je vais essayer de mettre en application la méthode de kéké :glace:


RE: Système de map agrandissable à souhait - keke - 30-06-2008

Coucou PoulpOr ^^

Je t'ai donné une idée ... mais il me semble que tu devrais revoir le concept plutôt ...

En effet ce système en plus de pas être terrible, ne correspond à aucune réalité. Tu t'enfermes sur un système à 4 nations ... il te sera difficile de t'en sortir.

Autres solutions techniques ...
Le Maillage : tes cases sont elles même subdivisées en cellules. Le nombre de cellules dépend d'une variable que tu peux augmenter.

Ainsi les coordonnées de ta case bleue serait : (1,1) dans lequel tu aurais un maillage de 5x5 cellules.
Les coordonnées de ta case verte serait : (5,5) avec aussi ... 5x5 cellules
([Image: map1ny2.jpg])
Si tu souhaites augmenter la taille de ton univers, tu passes de 5x5 à 7x7 ... Facile ^^

A chaque fois que tu franchis la frontière du case, tu passes à la case suivante.
Avantages : Calcul de déplacement plus simple en raisonnant par case (et pas par cellule)
Facilité de mise en place (si si ! c'est pas compliqué !)
Tu peux augmenter l'univers facilement en rajoutant des cases à l'infinie ...
Désavantage :
Coordonnée un peu chiante à gérer : (caseX, caseY, celluleX, CelluleY)

Système Magdales : donjon ... (attends je vais t'expliquer ^^)
Sur mon jeu, certaines cases ont besoins que l'on fasse un zoom dessus ... alors que d'autres non. Les cases zoomées ont un donjon, c'est à dire une minimap (de taille infinie en X et Y si l'on veut) pouvant encore générer autant de donjon que l'on souhaite ... bref, un principe de zoom dans toutes les directions ...

J'utilise donc 2 systèmes : la carte générale et des donjons. (On pourrait tout regrouper en 1 seule table si on le souhaitait.)
Chaque donjon à sa propre map représenté par un id_donjon et des coordonnées.
On génère des portails qui permet de passer d'un donjon à un autre donjon, ou d'un donjon à la carte générale ou réciproquement.
Une coordonnée est ainsi représentée ainsi : X, Y, Id_donjon (=0 si on est sur la carte générale.)

J'ai de plus chiadé le système pour que les id_donjons soient tous négatif. Je me laisse ainsi une marge pour : créer une deuxième carte générale (un monde parallèle), une carte pour mes villes, et une carte pour l'intérieur de mes batiments. (géré par règle de gestion.)

Ce système n'est pas breveté, et correspond à mon besoin : Faire des petites cartes, mais avoir la possibilité à tout moment d'agrandir la carte comme bon me semble (déjà agrandi lors d'un recommencement du jeu)

Bon, tout ceci pour te présenter d'autres moyens de réflexion, et essayer de te faire comprendre que ce que tu souhaites faire est peut-être un peu trop restrictif.

kéké.