partage objet entre utilisateurs

Petit nouveau ! | 8 Messages

13 mai 2010, 13:24

Bonjour à tous,

Je me présente, je suis nouvelle ici. J'ai 25 ans et je suis informaticienne dans la vie, mais je programme uniquement du software dans mon travail.
Je me met un peu au développement web car je souhaite mettre au point l'adaptation d'un jeu de plateau en jeu web.
J'ai choisi d'utiliser php pour le coeur du programme, et des requêtes Ajax côté client pour avoir un truc un peu sympa et surtout pas de chargement de page tout le temps.
En gros dans le jeu il me faut "un plateau de jeu" qui sera dans un premier temps une simple image sur laquelle je viendrai mettre d'autres images (les pions etc), une zone où je vais demander les actions de l'utilisateur, une zone qui contiendra les infos sur le jeu, et un chat qui permettra aux joueurs de communiquer ce qui est primordial pour le jeu.

Voilà pour la petite présentation, maintenant voici mon problème :
Etant habituée à la prog objet je suis partie un peu tête baissée comme si je programmais du soft mais évidement j'ai omis au moins un détail de taille !
Je ne vois absolument pas comment partager une même instance d'objet entre tous les joueurs de la partie. J'ai bien sûr regardé du côté des variables de session, mais si j'ai bien compris cela permet uniquement une sorte de mémorisation de variable mais pour une unique session. Or moi il me faudrait plutôt un moyen de partager une instance d'objet entre plusieurs sessions.
Pour vous donner plus de détails, concrètement j'ai une classe "Jeu" qui va se charger d'initialiser le jeu, d'ajouter les joueurs à la partie, de faire se dérouler le tours de jeu et les différentes étapes dans un tour etc.... cette classe c'est le coeur du jeu et évidement il faudrait que tous les joueurs partagent la même instance.

Voilà donc je me demande si je n'ai pas tout faux en fait. Il faut peut être envisager les choses complètement différemment en prog objet web....
Merci de votre aide.

Logarithme.

ViPHP
fab
ViPHP | 2657 Messages

13 mai 2010, 14:38

Il y aurait bien une possibilité de faire ça en stockant l'objet sérialisé en base de données et en le récupérant à chaque exécution d'une action par un joueur mais cela risque de te poser des problèmes rapidement si l'objet "jeu" est important en taille mais aussi si ton jeu est beaucoup utilisé la probabilité que deux joueurs fassent une action au même moment va devenir de plus en plus importante ce qui serait problématique.

Mais surtout je pense la programmation web il faut penser un peu différemment, je pense que la conception dont tu parles est pas adapté. Tu devrais plutôt avoir une classe jeu qui s'occupe des actions du joueur mais qui modifie des données stockées dans une base de données, il n'y a pas de persistance dans le web simplement des actions faites les unes après les autres il faut donc concevoir les programmes en fonction.
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Petit nouveau ! | 8 Messages

13 mai 2010, 16:20

oui c'est bien ce que je pensais, je suis un eu à côté de la plaque....
C'est vraiment pas évident après des années de dev software de penser autrement, heureusement que je m'y met maintenant ^^

Merci pour ta réponse en tout cas !
Concrètement il faudrait que mes actions utilisateur envoie les requêtes au serveur et que le jeu s'active autour de ces actions si je comprend bien. C'est logique effectivement.

Je vais y réfléchir, merci !

Petit nouveau ! | 1 Messages

28 août 2010, 19:19

hello,

je suis sur la meme question en ce moment
dhabitude jutilise java(jsp tomcat) pour le web et dans ce cas pas de pb
pour php il ya des systemes de cache comme APC qui permettent le partage dinfos

http://www.php.net/manual/en/ref.apc.php