Comment fonctionnent les sites de jeux en ligne ?

Comment fonctionnent les sites de jeux en ligne ? - Divers - Programmation

Marsh Posté le 04-06-2006 à 15:08:53    

Bonjour !
Je regarde depuis peu mon frère s'amuser avec des jeux en ligne qui ressemblent de loin à Warcraft, Sim City....
Bref des jeux où l'on doit gérer sa ville, ses bonhommes, ses armées, etc...
 
J'aurais bien aimé savoir comment fonctionnent ses sites, qui donnent l'impression de jouer en temps réel.
- est-ce qu'un serveur tourne en permanence, et change des données dans une BD chaque seconde (ou une autre intervalle de temps) ? Si c'est ça, avec quoi peut être programmé un tel serveur ?
- est-ce qu'à chaque fois qu'un joueur charge SES pages, il modifie ses stats ?
 
Enfin.... Si vous savez...
 
 
Merci !
 :hello:  

Reply

Marsh Posté le 04-06-2006 à 15:08:53   

Reply

Marsh Posté le 04-06-2006 à 16:21:53    

Tu veux dire un jeux qui se joue via des pages web?
Si c'est bien ça tout repose sur une base de donnée dans laquelle est stocké tout ce qui concerne chaque joueur, son environement et l'environemen global.
Ensuite cette base de donnée est couplée à un langage de programmation web côté serveur (ex php,asp,etc...) pour obtennir un contenu dynamique, autrement dit qui change selon le visiteur, les infos piochées dans la base de données, etc...
 
Donc oui il y a bien un serveur qui tourne en permanence pour assurer la disponibilité du jeu!
 
Et si ton projet est d'en créer un, sache d'abord que si tu veux qu'il ait du succés il va falloir inventer quelque chose qui sort un peu de l'ordinnaire parce que tout ou presque a déjà était fait en triple version. Et de plus tu devra vraiment te familiariser avec des langages tel que php, html, css (voir js, pour un jeu ça peut servir!) et avec les bases de données.
 
Et puis ce genre de question (ou question proche) a déjà été traité plein de fois qur le forum et sans doute qu'une petite recherche t'aurait aidé à trouver la réponse toi même. Et de la doc la dessus doit bien exister sur le net.


Message édité par dwogsi le 04-06-2006 à 16:25:51
Reply

Marsh Posté le 04-06-2006 à 17:19:03    

J'ai cherché, ne t'inquiète pas, mais sans trouver :S...
En fait je me suis lancé dans un petit projet, pas du tout pour qu'il ait du succès, seulement pour me faire un petit challenge personnel...
Voilà maintenant 4 ans que j'apprend différents langages dans le cadre de mes études, et j'aime bien tester à fond ce qui se fait dans chacun.
Bref, je me suis lancé dans une sorte de kochonland, que beaucoup de monde doit connaitre.
L'inconvénient de kochonland, c'est que tu fais tes actions du jour, et tous les jours à 3h du matin (je c plus), un prog se lance, et modifie toute la BD : les champs poussent d'un cran, le cochon se salit d'un cran, etc etc....
En bref, rien n'est à "temps réel". J'aimerais bien un principe de jeu où l'on peut voir ses données évoluer en permanence.
La question est : comment le programmer ?
Connaissant plusieurs langages, je sais que le PHP n'est pas l'idéal en ce qui concerne la "qualité de programmation". On peut faire beaucoup de choses, mais c'est très gourmand en ressources. Alors, s'il faut lancer la fonction en permanence, ça va aller avec 10 joueurs, avec 100 ça va commencer à être pas tip top.
 
Pourquoi ne pas créer un prog sous C, JAVA, qui sont moins gourmands, et qui accèdent à la BD en permanence pour la modifier ?
Est-ce que ce n'est pas trop gourmand pour le serveur BD de l'autre côté ??

Reply

Marsh Posté le 04-06-2006 à 17:37:39    

On ne lance pas un fonction toute les minutes, mais on calcule depuis combien de minutes la personne n'est pas passé sur la page et on fait la maj en conséquence. Enfin ça me parait plus logique.
 
Genre si un type passe à 10h10 et que la valeur est a 5 et qu'il revient à 10h20 alors on incrémente de 10 (pour une incérmentation de 1/minute).
 
Ca revient donc à exécuter une fonction une fois au lieu de 10 fois.
 
Ce n'est pas exactement du "temp réel" mais sur le résultat c'est pareil donc c'est sans importance et la charge est considérablement amoindrie.


Message édité par dwogsi le 04-06-2006 à 17:38:36
Reply

Marsh Posté le 04-06-2006 à 18:32:42    

Je suis d'accord avec toi, mais plusieurs problèmes se posent :
Certains calculs sont difficiles à faire... Prenons un exemple simple :)
Un animal possède pour caractéristiques "faim", et "masse graisseuse".
Mettons qu'il ne perde de la masse graisseuse que lorsque sa faim est au maximum : la fonction de calcul de la masse graisseuse ne peut pas se permettre de descendre simplement d'un %tage en fonction du temps : il faut aussi qu'elle vérifie que la fonction faim est bien à 0, etc... Ca devient un bordel complet lors de fonctions encore plus compliquées.
 
C'est bien le système que tu m'expliques ici que j'avais choisi pour mon projet... L'inconvénient est aussi l'affichage d'une page avec plusieurs cochons de différents joueurs (je parle de cochons, c plus figuré...) :
il faut alors calculer l'ensemble de toutes les fonctions de tous les joueurs afin de savoir où chaque cochon en est !!
C'est pourquoi cette méthode me paraissait assez abusive (et en plus, je l'ai fait tourner, elle demande beaucoup de ressources juste pour l'affichage d'une page !)...
Voilà pourquoi je cherchais une autre méthode...

Reply

Marsh Posté le 04-06-2006 à 23:07:49    

Bon alors parlons cochons!
Je ne vois pas d'autres méthodes possible.
 
Parce que quelque soit le langage utilisé, et je veux bien admettre que php n'est pas forcément le meilleur, tu doit lancer beaucoup de fonctions à partir du moment ou tu dis que n'importe quel joueur peut voir les stats de n'importe quel autre cochon.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed