TourDeJeu, le réseau des jeux en ligne alternatifs : jeux web, casual MMOs, jeux par forum ou par e-mail. En savoir +
En ligne : 724 jeux, 7090 news, 26405 commentaires
 

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

Le guide des jeux en ligne alternatifs

Comment crer son jeu et le grer ?

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 : dcouverte du JpC
PHP : accs base de donnes
PHP : structure du site
Ludique : JpC et Temps rel
Jeux de rles sans rgles
Humour : astrologie du JpC
Tech. : Bases de donnes
MJ : les joueurs multiples
PHP : utilit pour un JpC
PHP : c'est quoi ?
Tech. : l'analyse des ordres
Ludique : dbutants et vtrans
Tech. : archi Ultraball 2100
Ludique : les jeux de pronos
Tech. : le site Web d'un JpC
Humour : football et wargame
Prsentation de TourDeJeu

Devenir un dveloppeur cologiste
Quelques rgles pour optimiser ses programmes

par Le Caphar Dveloppeur du jeu Tratognse

[version complte imprimable]

Mtaphore botanique
Tout programmeur en herbe, alors qu'il plante les petites graines de ce qui deviendra un grand succs du jeu en ligne, conoit un jour des arborescences interminables et des aventures merveilleuses, aux graphismes tapageurs servis par une interface d'une intuitivit ingalable. Et lorsqu'il lance ses premiers essais sur un modeste hbergeur 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 mme. Alors il fait pousser ses fonctions, arrose sa base de donnes, et quand il a obtenu une vritable flore, il invite quelques braves passants venir cueillir quelques fruits. Oui mais voil... les fruits bourrs d'OGM mesurent trois mtres et psent six tonnes. Et les quelques badauds qui s'aventurent dans le jardin ressortent bredouilles et passablement nervs.

Cette petite mtaphore botanique, pas trs rigoureuse, nous a tout de mme 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 dplacer 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 systmatiquement le dbut de la page d'action, ce qui finit - selon l'ordre dans lequel vous avez plac les vnements - par lui faire perdre tous ses points ou au contraire effectuer des tas d'actions gratuitement.

Un jour, vous runissez enfin les fonds pour que votre jeu dispose d'un serveur. Rapide, fiable, pas cher ; c'est le rve. 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 grer vos 40 GO de donnes changes par jour vous devrez hypothquer 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 rcriminations ? Mettez-vous au travail ! Un jeu c'est RIEN." Ou presque. En termes de donnes, 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 dbutants, 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'impntrables lignes de code. Et si je pouvais donner quelques trucs aux vieux routards qui tranent, je n'en serais que plus fier.

Conclusion
Il va de soi que cette prsentation n'est pas exhaustive. Ecolo-dveloppeur en herbe, je dcouvre chaque jour de nouvelles manires de simplifier, d'allger le jeu et d'conomiser les ressources limites du serveur. Il y a de vastes possibilits dans les fonctions mySQL (fonctions de recherches croises sur les tableaux, etc...) qui permettent des choses tonnantes dont je n'entrevois l'intrt qu'aprs deux ans de pratique quasi quotidienne du PHP. Mais je crois avoir abord l'lment essentiel qui s'impose ds que l'on veut allger un jeu : rechercher systmatiquement, frntiquement, les possibilits de compacter son jeu. Je l'ai dit, et je persiste : vos joueurs vous en seront reconnaissants...

Prcdent - 

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