JeuWeb - Crée ton jeu par navigateur
[Conseil et optimisation] Système de carte(map) fixe. - 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 : [Conseil et optimisation] Système de carte(map) fixe. (/showthread.php?tid=1702)

Pages : 1 2


[Conseil et optimisation] Système de carte(map) fixe. - Pio154 - 02-09-2007

Salut à tous et à toutes, en ce moment je suis entrain créer un système de carte(map) et que je viens de tout recommencer... Bref, mon problème n'est pas ici.


Je suis peut être entrain de créer un système qui n'existe pas, ou que je n'ai jamais vue... Bon arrêtons de jacasser, je met les informations sur la construction du système de carte(map).

La carte(map) est fixe sera ainsi présenter comme ceci :
- 10 lignes
- 10 colonnes

- première ligne : 1 à 10
- deuxième ligne : 11 à 20
- troisième ligne : 21 à 30
- quatrième ligne : 31 à 40
- cinquième ligne : 41 à 50
- sixième ligne : 51 à 60
- septième ligne : 61 à 70
- huitième ligne : 71 à 80
- neuvième ligne : 81 à 90
- dixième ligne : 91 à 100

Au départ le joueur commencera dans un trou donc je présumerai la case 0 qui ne figurera pas sur la carte(map). Ensuite si il le veut, il pourra rejoindre un monde qu'il choisira.

Plusieurs carte(map) pourra être créer et le nombre x de joueur qui pourra y allez dessus et le nombre y de joueur qui pourra allez sur les cases.

Exemple :
- Nom de la carte : aucune importance
- Nombre de joueur maximum sur la carte : 100
- Nombre de joueur maximum par case : 10

Si le nombre de joueur a été dépasser, il ne pourra pas se déplacer ou ne pourra pas accéder sur l'une des cartes(maps).


Maintenant je voudrai avoir des conseils pour ne pas à avoir des charges de serveur auprès de mon hébergeur. (Parce que si il y a 300 à (400 ou 500) joueurs connectés en même tant, et qu'il y a environ 6 à 15 requêtes et 3 à 5 boucles chargé pour chaque déplacement, chaque réactualisation de la carte(map). Donc ceci représentera beaucoup de ressource auprès du serveur. Je conter faire plusieurs table pour avoir que 150 joueurs par table.

Merci à vous, pour vos conseils, astuces ...


Ps: j'ai essayé de corriger le plus de fautes d'orthographe pour faire bonne impression sur la communauté de JeuPHP.


Edit: tout les déplacements et actualisation ce fera avec Ajax pour ne pas recharger la page.



RE: [Conseil et optimisation] Système de carte(map) fixe. - Argorate - 02-09-2007

bonjour, voilà cela tombe plutot bien étant moi meme entrain de créé mon editeur de map, je suis en plein dedans.
Ma premiere remarque sera la suivante, je te conseil pas une map fixe, parceque tout ce qui est fixe est forcement un pb a un moment donnée, puisque par definition ton jeu et tes joueurs vont evolué, tout doit pouvoir evolué y compris ta carte.

Mais si tu tien vraiment a avoir une carte qui ne changera jamais il y a une bonne astuce: il te suffit de créé une image representant toute ta carte, et grace aux css tu peux réglé pour faire apparaitre que la zonne où se trouve le personnage.
cette methode est tres pratique.

voila bon courage!


RE: [Conseil et optimisation] Système de carte(map) fixe. - Pio154 - 02-09-2007

Aussi, sa peut être une idée, mes les cartes seronts différente car je ferait un petit système pour gérer l'apparence des cases. Merci à toi pour ta suggestion.

Ps: pour une carte sur une image fixe, je trouve sa un peu difficile, mes bon ces tout problème après ;p


RE: [Conseil et optimisation] Système de carte(map) fixe. - Argorate - 02-09-2007

Il suffit de savoir le nb de pixel de ton image et le nombre de case dans ton jeu, apres il suffit de faire un calcul pour savoir où se trouve le personnage, une fois faite tu affiche la partit de l'image corespondante, c'est pas si dur.

sinon peut etre que tu ne compte pas poussé ton jeu jusque la mais, si je n'aime pas une carte fixe c'est parce qu'imaginons que tu veuilles faire rentrer en éruption un volcan et que chaque jour il y est de la lave qui coule, si tu peux pas transformer tour a tour les cases que tu souhaites alors tu pouras pas faire se genre "d'evenement"...


RE: [Conseil et optimisation] Système de carte(map) fixe. - Pio154 - 02-09-2007

Si, je change l'image et j'interdit la case que je veu Wink
Merci pour ta suggestion et bonne chance à toi Smile


RE: [Conseil et optimisation] Système de carte(map) fixe. - Amrac - 03-09-2007

Pio154 a écrit :Maintenant je voudrai avoir des conseils pour ne pas à avoir des charges de serveur auprès de mon hébergeur. (Parce que si il y a 300 à (400 ou 500) joueurs connectés en même tant, et qu'il y a environ 6 à 15 requêtes et 3 à 5 boucles chargé pour chaque déplacement, chaque réactualisation de la carte(map). Donc ceci représentera beaucoup de ressource auprès du serveur. Je conter faire plusieurs table pour avoir que 150 joueurs par table.
Inutile de découper tes joueurs en plusieurs tables, je sais qu'au début on a un peu peur de chargé le SGBD, mais c'est fait pour tenir le choque et travailler sur de très grosses bases. Qu'il y est 500 joueurs ou 5 000 joueurs sur une même table, tu ne sentiras pas la différences.


Pour ta carte, il me semble plus naturel de leur données deux coordonnées: X et Y comme la lattitude et la longitude dans la vraie vie. Tu verras en programmant s'enboite plus facilement.

En supposant que tu souhaite affiché ta carte, qui est dans ta base de données, et les joueurs présents dessus, je te conseil d'essayer une requete avec jointure.

Le principe, c'est de tout selectionné en une seul requetes, émettons l'hypothése que la table de ta carte est du style:
X Y Contenu Terrain.
X et Y sont les coordonnées, Contenu est null s'il n'y as rien, ou contient l'ID d'un joueur.

A coter, tu as une table Membres de la sorte:
IDJoueur, Pseudo, Image

Je propose de commencer par une requete de la sorte:

SELECT X Y Contenu Terrain IDJoueur Pseudo Image from Carte left join Membres on Carte.Contenu=Membres.IDJoueur
Explications:
SELECT X Y Contenu Terrain: On selectionne les données de la carte.
IDJoueur Pseudo Image: On ajoute, pour chaque case de la carte, les données du joueur qui correspond. Si il n'y avait pas de joueur sur la case, ces variables seront a NULL.
from Carte left join Membres: On précise que les données viennent de la table Carte a laquel on ajoute la table Membres.
on Carte.Contenu=Membres.IDJoueur: On précise que le lien entre la table Membres et Carte se fait sur Contenu / IDJoueur.

J'ai pas trop l'habitude de me lancer dans une serie d'explications, je suis peu être pas trés claire Tongue


RE: [Conseil et optimisation] Système de carte(map) fixe. - Pio154 - 03-09-2007

Oui tu a raison, cela n'est pas clair. (teinkiète pas, moi à plusieur reprise, je n'était pas clair). Bref...


Pour le nombre de joueur dans la table ce n'est pas sa qui me fait peur, mes après dans le code quand je récupère tout les joueurs dans un array. Je sais que j'autorise entre 1 à 100 personnes par carte(map) et entre 1 à 10 par case.


Je viens de finir de coder la première partie pour avoir les informations ou sont placé les joueurs sur la carte.


Code PHP :
<?php 
/* Première partie: je selectionne tout les joueurs présent sur la carte. */

$requete1 = mysql_query('SELECT * FROM joueur');

/* Ensuite je forme une variable pour tout stoker dans un array */
$case = array();


/* la boucle : */

while ($data = mysql_fetch_assoc($requete1))
{ if (
$data['position'] >= 1)
{

$case[$data['position']][] = $data['pseudo'];

}
}

/* Ensuite je vérifie sa avec print_r */

echo '<pre>';
print_r($case);
echo
'</pre>';

/* Edit: voici la fonction :*/

function affiche($position) {

global
$case;
$case = $case[$position];

foreach(
$case as $cle => $element)
{
echo
$element.'<br />';
}

}

Après pour tout afficher, j'aurai juste à créer une fonction, récuperer l'array $case, et mettre les valeurs sur la map avec mafonction($nb+x).


Ps amrac: ici je ne peut être pas aussi claire :p


RE: [Conseil et optimisation] Système de carte(map) fixe. - Pio154 - 09-09-2007

Bon effectivement ce n'est pas très bien une map fixe :p

D'ailleur je viens de terminer ma map.

Caractéristique de la map :
- Limitation pour les nombres négatives (donc vous pouvez pas allez en -1 / 0)
- Limitation des cases (500 / 500) (vous ne pouvez pas allez au de la de 500 / 500)

Bref, je n'ai fait que sa pour l'instant et sa m'aide :p
La carte que j'ai créer à 6x6 cases Wink

Le lien : http://bwork-design.fr.nf/mapv1/index.php


RE: [Conseil et optimisation] Système de carte(map) fixe. - Pio154 - 19-09-2007

Vous pouvez téléchargez le script gratuitement sans autorisation :p

- Télécharger (WinRar Archive)
- Télécharger (WinRar Zip Archive)

Si vous avez des questions, n'hésitez pas.
Une table sql est disponible dans l'archive.


Les images proviennent d'un jeu, donc vous ne pouvez pas les utilisées pour votre jeu. (Moi j'ai le droit car ce n'est qu'un exemple) Wink


RE: [Conseil et optimisation] Système de carte(map) fixe. - lanoix - 19-09-2007

Juste une petite note, en cliquant sur l'URL d'exemple... Sous IE6, le lien correspondant à la case sur laquelle on veut se déplacer est tout petit, un point au centre de la case.