JeuWeb - Crée ton jeu par navigateur
2 jeux sur un serveur - 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 : 2 jeux sur un serveur (/showthread.php?tid=4536)

Pages : 1 2


RE: 2 jeux sur un serveur - Sephi-Chan - 16-01-2010

Je ne me sentais pas visé mais je n'avais pas saisi le trait d'ironie derrière la remarque (pas très aware, aujourd'hui), un coup d'œil aux récentes discussions m'a rafraîchi la mémoire. Wink


Sephi-Chan


RE: 2 jeux sur un serveur - Amrac - 04-02-2010

Vous avez de l'experience en load balancing? Car il me semble que ce n'est pas n'importe quels serveurs qui peuvent faire ça, ils doivent être proche l'un de l'autre et avoir un accès direct non?


RE: 2 jeux sur un serveur - Vorkosigan - 04-02-2010

(04-02-2010, 04:37 PM)Amrac a écrit : Vous avez de l'experience en load balancing? Car il me semble que ce n'est pas n'importe quels serveurs qui peuvent faire ça, ils doivent être proche l'un de l'autre et avoir un accès direct non?
Je ne comprends pas vraiment tous les details de ta question... mais le load-balancing est un concept et ce sont uniquement ses implementations qui recellent des contraintes.

Personnellement j'ai eu l'occasion de participer a la mise en place d'un load-balancing a l'echelle planetaire : ensemble de serveurs au Colorado, un autre ensemble en Irlande, un autre en Chine... avec load-balancing entre les serveurs d'un meme ensemble mais aussi autre les ensembles.


RE: 2 jeux sur un serveur - keke - 05-02-2010

Quand je travaillais pour FT, le load balancing d'une application sensible était le suivant :
4 salles serveurs identique (avec du Apache en entrée). Une demande pouvait aller sur n'importe laquelle des salles serveurs en fonction de la charge (d'où le terme de load, ie : charge).
Chaque salle contenait 8 serveurs apache regroupé par paquet de 2. La charge était ainsi répartie au hasard sur les 4 groupes, puis un load-balancing sur l'un ou l'autre serveur du groupe en fonction de sa charge.

Bref, pour Apache, le load-balancing est intégré ... y'a plus qu'à paramétrer le biniou. Il existe plusieurs moyen de répartir les tâches : 1 demande sur 2; au hasard; si moins de 10% de charge alors le serveur traite, sinon passe au suivant ; etc.

Je ne pense pas qu'il y ai de particularité concernant la proxymité des serveurs.

Bon courage pour la mise en place ^^

kéké


RE: 2 jeux sur un serveur - NicoMSEvent - 05-02-2010

le plus hard, c'est de synchroniser les données sur toutes les bases de données si tu as plusieurs serveurs de base de données. Mais je pense qu'avant de penser a plusieurs serveurs, si ton jeu a moins de 1000 joueurs actifs (et 100 connectés simultanés), il faudrait revoir la structure de ta BDD, et de tes requetes Smile

J'ai vu que ton jeu était en pause : http://archive.jeuweb.org/premier-empire-t-2675.html ou http://www.premier-empire.net/

Déjà l'image sur la page d'accueil qui fait +-750Ko, je trouve ça énorme... a mon avis le tout manque d'optimisation, et dans cette voie que tu devrais te diriger, sans vouloir te vexer Wink


RE: 2 jeux sur un serveur - Zamentur - 05-02-2010

Concernant les images tu peux aussi proposer un système d'installation des images. Il suffit ensuite d'enregistrer pour chaque compte l'adresse d'installation du package d'image.
Puis de faire un petit script qui met l'url du site si il n'y a pas d'url local enregistré pour le compte.

Ainsi tu as un jeu par navigateur mais qui peux être installé, en plus c'est assez facile de convaincre les joueurs en leur disant que ceux qui le feront iront plus rapidement...

Sinon, ne connaissant pas ton niveau, as tu pensé a exploré ces axes d'optimisation:
- créer des index sur les champs ou on fait beaucoup de clause de restriction SQL (WHERE) et ou la lecture&modification et majoritaire vis à vis de l'insertion&suppression
- balayer ton code pour exterminer les requête qui se trouve dans des boucles
- supprimer tous les avertissements (évidement il doit pas y avoir d'arrobase)
- revoir certains algorithme comme par exemple le pathfinding
- au niveau des représentation arborescente vérifier qu'un arbre intervallaire ne convient pas afin d'éviter des requêtes récursive
- identifier les script les plus long grâce à quelques comptes testeur
- évidement revoir le rapport poids/qualité de tes éléments graphique et sonore
- regarder les stats de mysql (ou autre sgbd)
- mettre en place un système de cache et/ou cache partiel si ton code est assez bien construit pour te le permettre simplement
- revoir certains grands principe de fonctionnement pour éventuellement trouver des solutions tierces (évidement il vaut mieux détecter avant quels sont les parties critiques)
- casser l'atomicité de ta base pour introduire des redondances judicieusement choisis (calcul extrêmement récurrents par exemple), si tu as utilisé des vues tu peux facilement transformer tes colonnes virtuels en colonnes physiques
- descendre la fréquence de tes requêtes ajax ou la faire évoluer grâce à un indicateur d'activité du joueur. Éventuellement utiliser la technologie Comet qui utilise le protocole HTTP1.1
- Déplacer tes images et sons sur un autre hébergement




Sinon tu peux aussi identifier les heures de rush et opter pour une solution Gandi Flex ou équivalent...

Le hic c'est qu'on sait pas si c'est un problème de bande passante ou de mémoire, faudrait que tu fasses des mesures. En fait on manque terriblement de donner pour pouvoir répondre efficacement.
Évidement les propositions d'optimisation que j'ai proposé prennent plus ou moins de temps. Libre à toi de juger le bon rapport temps d'optimisation/cout de l'hébergement.