Comment gérer une map en 2D d'un jeu vidéo
quentlac
Messages postés
28
Statut
Membre
-
quentlac Messages postés 28 Statut Membre -
quentlac Messages postés 28 Statut Membre -
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 :)
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:
- Comment gérer une map en 2D d'un jeu vidéo
- Comment télécharger une vidéo youtube - Guide
- Google map satellite gratuit - Guide
- Montage video windows - Guide
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Insérer une vidéo dans powerpoint - Guide
1 réponse
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.
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.
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)
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...
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.