JeuWeb - Crée ton jeu par navigateur
Répartition des joueurs sur une carte - 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 : Répartition des joueurs sur une carte (/showthread.php?tid=6014)



Répartition des joueurs sur une carte - mano72 - 07-03-2012

Hello,

Je conçoit et développe actuellement un jeu de stratégie MMO, basé sur une carte en 2D.

Tout nouveau joueur se voit initialement attribuer une petite portion de terrain sur la carte.

Bien évidement, 2 mêmes joueurs de doivent pas pouvoir se faire attribuer la même portion de carte.

Je me demande quelle est la meilleure méthode pour répartir équitablement les joueurs sur la carte de manière à ce que les nouveaux joueurs ne se retrouvent pas à coté des anciens (ou le moins possible) ?

Avez vous des idées ? Des retours d'expérience à partager ?



RE: Répartition des joueurs sur une carte - Maks - 07-03-2012

Si tu es sur une carte en 2D, on peut imaginer que pour un terrain il y'en a 8 autours en x+1, y+1, x-1, y-1, x+1/y-1, x+1/y+1, x-1/y+1 et x-1/y-1 dans le cas extrême (il peut y en avoir moins autour).

Bon déjà tu références les terrains libres. Tu les mets dans un tableau.

Ensuite tu parcours ce tableau et tu calcules la moyenne des terrains voisins en fonction de l'ancienneté (donc tu aurais une propriété ancienneté en jours).
Il pourrait y'en a avoir 8 comme 1 donc.

Tu mets dans un nouveau tableau puis tu le trie par ordre croissant puis tu prends l'indice 0 qui est en théorie le terrain où les voisins sont les joueurs les moins aguerris.

C'est une solution ^^


RE: Répartition des joueurs sur une carte - Ter Rowan - 07-03-2012

salut

On avait déjà parlé d'un truc comme ça de mémoire, mais il y a déjà plusieurs mois années

Une idée qui alors m'avait paru intéressante était de disposer les éléments en spirale :

le premier joueur est au milieu : (0,0)
le second en (1,0)
le troisième en (1,1)
le 4ème (en 0,1)

jusqu'au 9 eme en (1,-1)
puis tu te décales d'un (10eme en 2,0 etc...)

algo grossier :

r=1
tant que pas trouvé :
boucle sur les cases à une distance de r du centre :
si une case vide alors trouvé
fin boucle
r=r+1
fin tant que

ainsi tu as des cercles concentriques d'ancienneté (les plus anciens au centre, les plus récents sur les bords

après tu peux imaginer de laisser des "trous" (terrains vierges permettant les extensions) ou de créer plusieurs points de départ éloignés




RE: Répartition des joueurs sur une carte - djidi - 07-03-2012

Ce ne serait pas ce sujet : http://www.jeuweb.org/showthread.php?tid=7905 ?


RE: Répartition des joueurs sur une carte - mano72 - 07-03-2012

Merci pour ton approche Ter Rowan qui me semble très intéréssante. Reste à déterminer ou sera situé le premier joueur sur la carte, et quelle case choisir pour placer d'autres joueurs si plusieurs cases portent le même indice (au pif ?)

(07-03-2012, 02:55 PM)Ter Rowan a écrit : Une idée qui alors m'avait paru intéressante était de disposer les éléments en spirale :

J'ai pensé à cette idée de disposition en spirale, mais le souci est que plus la spirale s'agrandi et plus l'écart max entre deux cases voisines se creuse.

[Image: map.png]

A moins qu'il n'y ait une subtilité que je n'ai pas encore saisie ?



RE: Répartition des joueurs sur une carte - Arius Vistoon - 07-03-2012

Je vais aller à contre poil...

Certes cela dépend du jeu, mais vous n'avez jamais pensé a faire cohabiter des joueurs anciens/expérimenté/puissant avec des joueurs nouveaux/débutants/faibles ?
(c'est ce que je vais faire pour mon jeu en tout cas, jeu qui est en cours de réflexion et dont je vous en présenterai un peu plus tard).

La difficulté est de ne pas mettre en conflits les joueurs sur une notion basée sur l'ancienneté/l'expérience/la puissance...et je suis persuadé que des jeux autres que le mien le font déjà (ok, j'ai pas de nom en tête, mais le contraire serait étonnant)


RE: Répartition des joueurs sur une carte - mano72 - 07-03-2012

Tes remarques me semblent justes Arius je vais essayer d'y réfléchir...


RE: Répartition des joueurs sur une carte - Ter Rowan - 07-03-2012

(07-03-2012, 03:28 PM)djidi a écrit : Ce ne serait pas ce sujet : http://www.jeuweb.org/showthread.php?tid=7905 ?
oui certainement :p

(07-03-2012, 03:38 PM)mano72 a écrit : Merci pour ton approche Ter Rowan qui me semble très intéréssante. Reste à déterminer ou sera situé le premier joueur sur la carte, et quelle case choisir pour placer d'autres joueurs si plusieurs cases portent le même indice (au pif ?)
pas bien compris la question


(07-03-2012, 03:38 PM)mano72 a écrit : J'ai pensé à cette idée de disposition en spirale, mais le souci est que plus la spirale s'agrandi et plus l'écart max entre deux cases voisines se creuse.

[Image: map.png]

A moins qu'il n'y ait une subtilité que je n'ai pas encore saisie ?

tu as raison l'écart augmente au fur et a mesure

Par contre il augmente de manière prévisible ( 8^rayon)
Avec du bol, il augmente aussi vite, voire moins vite que l'accélération du nombre de joueurs (au début peu de nouveaux joueurs, puis de plus en plus)

je pense que c'est le meilleur moyen pour éviter des effets de bords (genre paquet uniforme en frontiere avec un autre paquet uniforme d'ancienneté bcp plus importante)

mais évidemment c'est dans l'hypothèse d'une stratégie de "protection" des nouveaux

d'ailleurs ça peut se justifier question "RP" (fonction du back ground) :

imaginons l'univers. Le centre est bien plus ancien que la bordure (enfin je crois, si c'est l inverse, ca revient au même) ^^

même principe avec la colonisation. On part d'un bord, et on colonise étape par étape (ex : far west)





RE: Répartition des joueurs sur une carte - Argorate - 08-03-2012

Sinon y a la méthode full random:

tu choisis aléatoirement un emplacement, tu fais la somme des niveaux des joueurs adjacent et tu acceptes l'emplacement que si cette somme ne dépasse pas un certain pallié (a toi de voir pour la valeur).
Cependant, il faut également vérifié l'ecart type, pour pas ce laissé abuser, car 1 +1 +1 +1 +1 +20 c'est pas la même chose que 5 + 5 +5 +5 +5.