Le guide des jeux en ligne alternatifs
Comment créer son jeu et le gérer ?
Les Focus
Tech. : Le programmeur écologique
Tech. : automatisation et mails
Salon MondeDuJeu 2002
Revue de presse des JpC
Humour : 1001 raisons pour jouer
Ludique : le joueur parfait
Ludique : découverte du JpC
PHP : accès base de données
PHP : structure du site
Ludique : JpC et Temps réel
Jeux de rôles sans règles
Humour : astrologie du JpC
Tech. : Bases de données
MJ : les joueurs multiples
PHP : utilité pour un JpC
PHP : c'est quoi ?
Tech. : l'analyse des ordres
Ludique : débutants et vétérans
Tech. : archi Ultraball 2100
Ludique : les jeux de pronos
Tech. : le site Web d'un JpC
Humour : football et wargame
Présentation de TourDeJeu
par Cedric Lefebvre
INTRODUCTION
Tout d'abord, il me semble important de preciser que je ne desire pas presenter une architecture de pbem parfaite mais celle que j'ai employee pour mon jeu. D'abord, il est certainement possible de faire mieux, mais de toute maniere, je pense que chaque jeu a ses specificites et donc son architecture.
Il s'agira d'une presentation generale ou j'expliquerai mes choix. Ces choix ont ete guides par deux choses essentielles :
Ultraball 2100 est un jeu dans lequel les joueurs incarnent les managers d'equipes d'un sport futuriste. Que ce soit un sport futuriste ou du foot ne change rien au systeme mis en place.
ARCHITECTURE GENERALE
A chaque tour, les joueurs recoivent par mail un fichier de rapport de tour. Ils ouvrent ce fichier grace a un outil maison qui leur permet de rentrer
leurs ordres et de les envoyer sous forme de fichier dans un repertoire
cache de mon site web.
Ensuite, au moment de jouer le tour, je lance mon programme qui va chercher
ces fichiers d'ordres, les execute, joue le tour et envoie un fichier
de rapport de tour a chaque joueur.
PROGRAMME CLIENT
Pour que les joueurs passent leurs ordres, j'avais plusieurs possibilites :- un site web avec des pages de formulaires dynamiques PHP, fonction du joueur, faisant des acces a une base MySQL pour personnaliser ces formulaires. Solution : a la Oceane (merci au passage a ZigZag pour son excellent jeu)
- imposer aux joueurs d'utiliser un programme maison qui lit le resultat du tour du joueur et lui permet de passer ses ordres. Solution : a la United (merci a Bibi pour ses outils WFL)
La solution 1 est celle qui a ete utilisee pour la 1ere version de ce jeu (Cyberball pour ceux qui connaissaient), problemes techniques :
Pour ces raisons, je n'ai pas retenu cette solution.
La solution 2 presente aussi des desavantages :
Ceci ne m'a pas semble redhibitoire car :
Cette solution a surtout 2 gros avantages a mon avis :
PASSAGE DES ORDRES AU SERVEUR
Ou comment est-ce que le programme client passe ses ordres au programme serveur ?
Ici, la solution qui vient a l'idee de tout le monde est la meme : par mail ! Certes, mais quel est le serveur SMTP du client ? Laisser le joueur le configurer est pas mal, mais certains ne le connaissent pas ou n'en ont pas (abonnes AOL meme si ca a peut-etre change et accrocs des pbems au boulot...).
La solution que j'ai retenue n'est ni parfaite, ni definitive
(vraisemblablement) mais au moins elle fonctionne.
Le programme client se connecte par HTTP (simple acces a une page
web) a un script PHP3 sur mon serveur web et uploade sous forme
de parametre le fichier d'ordres.
La documentation sur comment implementer ce systeme est assez
floue... pourtant j'ai beaucoup cherche, mais bon j'ai desormais
un systeme qui fonctionne.
Le serveur stocke le fichier simplement dans un repetoire cache du serveur
web, accessible uniquement avec un mot de passe.
Rien n'empeche d'ailleurs (pour diverses raisons) de ne pas
stocker ce fichier mais de l'envoyer par mail a une adresse
donnee. Grace a la page PHP3, on peut faire (automatiquement)
plein de choses :
PROGRAMME D'EVALUATION
Pour ce programme, on n'a, a mon avis, aucune contrainte d'implementation si ce n'est qu'il doit etre automatique a 100 %. En pratique je n'ai qu'a ouvrir ma connexion internet et a la refermer au moment du telechargement des ordres et de l'envoi des resultats. Le reste est totalement automatique. (selon la duree du tour, je peux aller me boire un cafe, regarder la tele, aller au restau...)
Le choix retenu est une architecture classique et portable : Java avec MySQL. L'avantage c'est que si plus tard je veux me separer des taches de gestion des tours, ce programme marchera sans problemes sous Linux ou un autre Windows(mis a part 2-3 bugs). Moi je suis sous Windows Me sur un ordinateur portable.
Au passage, au moment d'envoyer les rapports de tour, le programme d'evaluation en profite pour uploader via FTP sur le site web du jeu, les statistiques / resultats du tour.
CONCLUSION
J'espere que cette courte explication aura ete interessante et vous
aura apporte quelque chose si vous desirez creer un jeu ou ameliorer
votre jeu.
Au passage, si vous developpez votre jeu en Java, je suis pret
a vous aider sur 2-3 points techniques et je suis en train de creer
un package lefebvre.tools qui contiendra certains outils qui pourraient
vous servir : envoi des fichiers a un script PHP3 par HTTP, envoi
de mails avec fichier attaches, acces a une base de donnees...
N'hesitez donc pas a m'ecrire
NOTA
Ultraball 2100 est pour moi la 2eme version de mon ancien PBEM Cyberball, (arrete pour probleme possible de Copyright) mais il est a mon avis important de preciser plusieurs choses :
Par ailleurs, Ultraball 2100 est actuellement en phase d'alpha-test et ne devrait apparaitre en version definitive que d'ici quelques mois. Pour tout renseignement n'hesitez pas a m'ecrire, mais je ne prends pas d'inscriptions pour l'instant.