TourDeJeu, le portail des jeux en ligne alternatifs, les articles 
TourDeJeu, le réseau des jeux en ligne alternatifs : jeux web multijoueurs, jeux par forum. En savoir +
En ligne : 518 jeux, 7177 news, 26754 commentaires
 

Recherche de jeu par critères - Un jeu au hasard !

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

Architecture technique du jeu Ultraball 2100

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 :

  • avoir un jeu automatise au maximum : repondre aux mails et aux questions des joueurs prend suffisamment de temps pour ne pas avoir a gerer les tours en plus
  • faciliter la tache des joueurs : ce jeu est deja suffisamment complique pour qu'en plus les joueurs passent des heures et des heures a gerer leurs ordres
  • 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 :
    1. 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)
    2. 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 :

  • il faut un bon nombre de formulaires HTML pour passer les ordres car les navigateurs ne supportent pas les tres gros formulaires...
  • personnaliser ces formulaires demande beaucoup d'acces a la base de donnees et chez Free ca met un temps fou a s'afficher
  • en plus, il faut a chaque tour mettre a jour la base de donnees avec les nouveaux rapports. En gros, il faut envoyer 2 fois les rapports (un au joueur et un a la base) sous 2 formats differents et vu que je paie les communications...
  • Pour ces raisons, je n'ai pas retenu cette solution.

    La solution 2 presente aussi des desavantages :

  • pour que tous les joueurs potentiels puissent jouer, il faut faire un programme portable, d'ou le choix incontournable de Java comme langage de programmation
  • ca impose donc aux joueurs de telecharger un JRE ou environnement d'execution Java qui prend 5 Mo et donc pas mal de temps.
  • Ceci ne m'a pas semble redhibitoire car :

  • il ne faut le telecharger qu'une seule fois
  • ca permet de faire un tri des joueurs : les motives et les autres, ce qui resoud, au moins en partie, ce probleme classique des pbems gratuits : les joueurs fantomes
  • Cette solution a surtout 2 gros avantages a mon avis :

  • l'interface graphique est personnalisable a souhait, ce qui permet d'alleger le boulot du joueur et d'eviter ses erreurs sans trop de boulot (alors qu'en PHP...).
  • comme les rapports sont au format XML, rien n'empeche les joueurs de developper leurs propres outils, ce qui enrichit encore plus le jeu
  • un dernier avantage important : on peut implementer un systeme pour detecter les joueurs qui envoient du meme ordinateur les ordres de 2 equipes (probleme des clones). Differentes solutions sont disponibles (variables d'environnement par exemple).
  • 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 :

  • verifier le mot de passe du joueur
  • envoyer un accuse de reception
  • stocker des infos sur le joueur (style est-ce que c'est un clone) ...
  • 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 :

  • c'est un jeu totalement nouveau (autrement je l'aurais appele Cyberball 2), le moteur de jeu a ete reecrit totalement
  • les regles n'ont pas grand chose a voir et le systeme de jeu lui-meme a totalement change
  • 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.

    Cedric Lefebvre

    Précédent - Suivant

    

    (c) TourDeJeu 2000-2024