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 : 486 jeux, 7148 news, 26651 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

Devenir un développeur écologiste
Quelques règles pour optimiser ses programmes

par Le Caphar Développeur du jeu Tératogénèse

[version complète imprimable]

Métaphore botanique
Tout programmeur en herbe, alors qu'il plante les petites graines de ce qui deviendra un grand succès du jeu en ligne, conçoit un jour des arborescences interminables et des aventures merveilleuses, aux graphismes tapageurs servis par une interface d'une intuitivité inégalable. Et lorsqu'il lance ses premiers essais sur un modeste hébergeur gratuit, ébahi par la splendeur nue de son premier echo "Bonjour."; en Times noir sur fond blanc, il se rend compte - mais vaguement, sans trop vouloir y penser - que c'est assez lent quand même. Alors il fait pousser ses fonctions, arrose sa base de données, et quand il a obtenu une véritable flore, il invite quelques braves passants à venir cueillir quelques fruits. Oui mais voilà... les fruits bourrés d'OGM mesurent trois mètres et pèsent six tonnes. Et les quelques badauds qui s'aventurent dans le jardin ressortent bredouilles et passablement énervés.

Cette petite métaphore botanique, pas très rigoureuse, nous a tout de même conduit au coeur du sujet : un jeu en ligne trop lourd, si beau soit-il, si fascinante soit son intrigue, fera fuir les visiteurs, qui n'ont pas que ça à faire d'attendre le chargement de 1Mo pour déplacer leur monstre d'une case. Avec un peu de chance, vous arriverez à capturer quelques joueurs. Soit, mais les ennuis ne font que commencer. Untel va vous dire que les pages ne se chargent pas assez vite, donc il clique plusieurs fois, rechargeant systématiquement le début de la page d'action, ce qui finit - selon l'ordre dans lequel vous avez placé les évènements - par lui faire perdre tous ses points ou au contraire effectuer des tas d'actions gratuitement.

Un jour, vous réunissez enfin les fonds pour que votre jeu dispose d'un serveur. Rapide, fiable, pas cher ; c'est le rêve. Oui mais voilà : au bout d'un mois, le commercial vous appelle et vous signale que vous "abusez du trafic illimité" (rigolez pas, c'est ainsi que va le commerce) qui vous est octroyé, et que pour gérer vos 40 GO de données échangées par jour vous devrez hypothéquer la maison le mois suivant.

"Fichtre", se dit-on dans ces cas-là. "Je n'étais pas fait pour l'herboristerie virtuelle."

Et là je vous dis : "Quid de ces récriminations ? Mettez-vous au travail ! Un jeu c'est RIEN." Ou presque. En termes de données, la plupart des jeux online pourraient tenir sur une disquette, et les calculs qu'ils effectuent pourraient être faits par un enfant de CE2 (on va dire une classe de CE2 pour les plus complexes). Comment alors parviennent-ils à mettre à genoux un serveur ? Parce qu'ils sont trop expansifs. Ce que je veux inculquer aux programmeurs débutants, c'est à ALLEGER leur jeu, par diverses petites ruses que j'ai apprises au fil des nuits sans sommeil, l'oeil morne rivé sur d'impénétrables lignes de code. Et si je pouvais donner quelques trucs aux vieux routards qui traînent, je n'en serais que plus fier.

Conclusion
Il va de soi que cette présentation n'est pas exhaustive. Ecolo-développeur en herbe, je découvre chaque jour de nouvelles manières de simplifier, d'alléger le jeu et d'économiser les ressources limitées du serveur. Il y a de vastes possibilités dans les fonctions mySQL (fonctions de recherches croisées sur les tableaux, etc...) qui permettent des choses étonnantes dont je n'entrevois l'intérêt qu'après deux ans de pratique quasi quotidienne du PHP. Mais je crois avoir abordé l'élément essentiel qui s'impose dès que l'on veut alléger un jeu : rechercher systématiquement, frénétiquement, les possibilités de compacter son jeu. Je l'ai dit, et je persiste : vos joueurs vous en seront reconnaissants...

Précédent - 

Commentaires laissés par les visiteurs

  • Nazbash, le 03-11-2005
    c'est beau.
    ba voila, c'est beau, bien crit, agrable lire et plein de bon conseils que l'on ne saurai que louer. prvoyez votre jeu en avance comme le prduit Hibiki. Prenez le temps, le codage c'est long, vous aurez tout le loisir de vous y prendre la tte, alors partez en sachant ce que vous voulez faire Sur ce, felicitation l'auteur Nazbash
  • keke, le 20-07-2005
    J'aime bien la comparaison
    Etant donn que je dveloppe mon propre jeu, et en parallle je fais pousser des baobabs Paris ... j'apprecie la mtaphore. Pour ce qui est du code, je suis malheureusement du genre prfrer les choses complexes au chose simple. Et si Magdales tourne correctement, c'est peut-tre cause du manque de graphisme. Je pense que je ne met pas les serveurs de free sur les rotules, et que je ne mange pas trop de bande passante (faudrait un jour que je vrifie tout de mme !). J'ai mis des grosses images dans le jeu, mais j'ai aussi mis une option pour qu'elle ne s'affichent pas ... J'essaye tout de mme au mieux de rduire mes fonctions ... j'ai remarqu qu'il vaut mieux avoir une requte qui va chercher toutes les informations, que plein de requtes (genre une boucle while) qui se lancerait en mode automatique. Le jour ou j'aurais un serveur ddi ... ben ca marchera mieux, car je fais executer mes joueurs chaque clic, un script qui permet le dplacement des monstres, la recherche de victimes, des vnements alatoires qui peuvent se produire une fois tous les 1000000 de clic ... Tout cela pourra se grer par mon serveur en local avec une crontab ... mais comme ca coute des sous ... je prfre ne pas le faire maintenant ! C'est au dtriment du joueur, mais on pourra peut-tre me faire des dons (en argent, ou en prt d'une machine et d'une connexion.) Voil ! Bonne journe tous ! Au plaisir de vous voir un jour sur mon jeu !!! kk.
  • Hibiki, le 26-12-2004
    Je veux pas avoir l'air de critiquer mais...
    Programmer a ne s'improvise pas... Question conseils, je dirais qu'il faut commencer par une bonne analyse... a semble vident mais aujourd'hui encore de trop nombreux dveloppeurs mme expriments font l'erreur de coder leurs programmes au fur et mesure de leurs ides sous prtexte que c'est un dveloppement amateur/plaisir. C'est une grave erreur qui peut coter chre en bande passante et en ergonomie. Sur ce, vos papiers et crayons !!!
  • pascaltje, le 16-06-2004
    Vive la programmation objet!
    L'article soulve les problmes relatifs au nombre de joueurs, donc leur "cot" machine, li au volume de connection et la BP, bien vu :) ce qui manque c'est l'optimisation cot dveloppeur(s): il faut coder en objet, histoire de grer les processus et les actions de manire transparente dans les pages. les fonctions sont un bon dbut mais a ne suffit pas! A+ Pascal
  • mister.trollet@free.fr, le 04-02-2004
    Optimisation des pages : client lourd !
    Cet article est trs intressant, et donne mon avis de trs bons conseils aux dbutants dans la jungle PHP / HTML. Je rajouterais cependant une couche : crire son site en "Client lourd". Il s'agit en fait de faire faire un maximum de travail par le navigateur, notamment pour les affichages. Par exemple, les tableaux de (n x p) cases qui psent lourd avec leurs td, tr, align=machin, etc. : en JavaScript, on peut facilement diviser la taille d'une page par 4. Comment ? En crant un tableau JavaScript ("array") depuis PHP, puis en lisant ce tableau (contenu dans la page sous forme compacte, donc) depuis JavaScript (avec document.write), qui va s'occuper de gnrer la vole le tableau HTML. --- Mister Trllet
  • (c) TourDeJeu 2000-2020