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

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, agréable à lire et plein de bon conseils que l'on ne saurai que louer. prévoyez votre jeu en avance comme le préduit Hibiki. Prenez le temps, le codage c'est long, vous aurez tout le loisir de vous y prendre la tête, 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 développe mon propre jeu, et en parallèle je fais pousser des baobabs à Paris ... j'apprecie la métaphore. Pour ce qui est du code, je suis malheureusement du genre à préférer 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 vérifie tout de même !). 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 même au mieux de réduire mes fonctions ... j'ai remarqué qu'il vaut mieux avoir une requête qui va chercher toutes les informations, que plein de requêtes (genre une boucle while) qui se lancerait en mode automatique. Le jour ou j'aurais un serveur dédié ... ben ca marchera mieux, car je fais executer à mes joueurs à chaque clic, un script qui permet le déplacement des monstres, la recherche de victimes, des évènements aléatoires qui peuvent se produire une fois tous les 1000000 de clic ... Tout cela pourra se gérer par mon serveur en local avec une crontab ... mais comme ca coute des sous ... je préfère ne pas le faire maintenant ! C'est au détriment du joueur, mais on pourra peut-être me faire des dons (en argent, ou en prêt d'une machine et d'une connexion.) Voilà ! Bonne journée à tous ! Au plaisir de vous voir un jour sur mon jeu !!! kéké.
  • 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 développeurs même expérimentés font l'erreur de coder leurs programmes au fur et à mesure de leurs idées sous prétexte que c'est un développement amateur/plaisir. C'est une grave erreur qui peut coûter chère en bande passante et en ergonomie. Sur ce, à vos papiers et crayons !!!
  • pascaltje, le 16-06-2004
    Vive la programmation objet!
    L'article soulève les problèmes relatifs au nombre de joueurs, donc à leur "coût" machine, lié au volume de connection et à la BP, bien vu :) ce qui manque c'est l'optimisation coté développeur(s): il faut coder en objet, histoire de gérer les processus et les actions de manière transparente dans les pages. les fonctions sont un bon début mais ça ne suffit pas! A+ Pascal
  • mister.trollet@free.fr, le 04-02-2004
    Optimisation des pages : client lourd !
    Cet article est très intéressant, et donne à mon avis de très bons conseils aux débutants 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 pèsent lourd avec leurs td, tr, align=machin, etc. : en JavaScript, on peut facilement diviser la taille d'une page par 4. Comment ? En créant 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 générer à la volée le tableau HTML. --- Mister Trõllet
  • (c) TourDeJeu 2000-2024