Comment gérer une map en 2D d'un jeu vidéo

Fermé
quentlac Messages postés 25 Date d'inscription mercredi 23 mai 2018 Statut Membre Dernière intervention 23 février 2019 - 19 août 2018 à 10:37
quentlac Messages postés 25 Date d'inscription mercredi 23 mai 2018 Statut Membre Dernière intervention 23 février 2019 - 19 août 2018 à 11:53
Bonjour,

Je suis entrain de créer un jeu multijoueur en réseau.
Le jeu est composé d'une map avec des cases carré de 20px de coté.
Chaque case est soit "rempli" soit "creuse" (0-1).

En fonction du nombre de joueur, la map s'agrandirait:
L = 10*nb_joueur
l = 10*nb_joueur

Ducoup si il y a 100 joueurs:
10*100 = 1000
10*100 = 1000

1000*1000 = 1 000 000 de cases

Comment stocker autant de valeur? Peut on le faire dans un simple tableau cela ne vas pas surcharger l'ordinateur?

Merci d'avance pour vos réponse :)


A voir également:

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
19 août 2018 à 10:50
Bonjour,

Une case c'est un bit (0 ou 1), donc en optimisant un peu on pourrait avoir 8 cases stockées sur un octet.
S'il y a 100 joueurs, soit 1 million de cases, cela ferait 125 000 octets, soit 122 ko en mémoire.
C'est donc largement acceptable.

Si on fait le calcul dans l'autre sens, disons que l'on ne veut pas dépasser environ 1 Go en mémoire.
1 Go, cela fait 1 073 741 824 octets, donc 8 589 934 592 cases de jeu.
Si on reprends ton calcul avec une grille de (10n)x(10n) cases, ça t'autoriserait à accepter n=9268 joueurs.

Du coup on pourrait refaire le premier calcul en disant qu'on va accepter jusqu'à 10000 joueurs.
Ce qui consommerait au maximum 1.16 Go en mémoire.
1
quentlac Messages postés 25 Date d'inscription mercredi 23 mai 2018 Statut Membre Dernière intervention 23 février 2019
19 août 2018 à 11:04
Merci pour votre réponse :D

Le seul petit soucis c'est que dans un second temps les cases prendront différentes valeurs: (-1 pour cases pleines et entre 1 et 100 pour définir le joueur qui a "creusé" la case)
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015 > quentlac Messages postés 25 Date d'inscription mercredi 23 mai 2018 Statut Membre Dernière intervention 23 février 2019
19 août 2018 à 11:44
Dans ces cas là il faut reprendre les calculs et les adapter aux vraies données du problème.
Mais tu as largement de la marge avant de surcharger l'ordinateur.

Remarque : ton agrandissement de la grille me paraît excessif, ton espace de jeu va devenir un désert.
Plus il y aura de joueurs, moins il y aura de chance de croiser quelqu'un...
0
quentlac Messages postés 25 Date d'inscription mercredi 23 mai 2018 Statut Membre Dernière intervention 23 février 2019
19 août 2018 à 11:53
Merci :) je vais essayer.

Pour ce qui est de ne croiser aucun joueurs, une zone va se rétrécir au fur et a mesure de la partie ce qui obligera les joueurs à se croiser.
0