TourDeJeu, le réseau des jeux en ligne alternatifs : jeux web, casual MMOs, jeux par forum ou par e-mail. En savoir +
En ligne : 754 jeux, 7129 news, 26543 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

Compactez toutes vos donnes

Compactez vos donnes
Le premier rflexe que devrait avoir un concepteur de jeu, c'est de tester son jeu sur un modem 14K. Encore que ce soit difficile trouver de nos jours, l'exprience est enrichissante. Elle permet de mesurer la quantit de donnes qui sont envoyes au joueur par le jeu.

Il faut ds prsent noncer une rgle ESSENTIELLE dans la conception d'un jeu : estimez toujours la quantit de donnes affiches en fonction du temps moyen que devra passer le joueur sur la page de jeu. S'il doit s'arrter pour rflchir deux minutes entre chaque action le temps que le jeu se charge, le niveau de rflexion stratgique du jeu a intrt tre lev. Un jeu de rflexion peut impliquer des lments graphiques plus complexes qu'un jeu d'action. Et l'efficacit du jeu impose des compromis ou des ruses de sioux pour s'accomoder de graphismes complexes.

Oubliez votre fond d'cran en 1280x1024
C'est dur vivre, mais votre fond d'cran reprsentant un dragon rouge terrassant un quelconque Saint Michel va devoir passer la poubelle. Certes il ne pse que 130ko en JPEG. Mais quand 1000 joueurs viennent jouer tous les jours, ils tlchargent grosso modo 130 mgas de ce fond d'cran par jour (en comptant le cache du navigateur). Soit 4GO par mois, plus que le plafond de 3GO qu'autorisent certains hbergeurs. Les solutions pour vivre sans image de fond gante sont multiples. La premire, c'est de dcomposer l'image, par exemple entre arrire-plan et avant-plan. Si le fond de l'image est un dgrad rouge/vert du plus bel effet, il sera sans doute intressant de compresser ce fond indpendamment en JPEG et de surimposer le dragon en GIF transparent. De toute manire, un fond d'cran n'a pas besoin de sauter aux yeux puisqu'il est destin dcorer le fond de l'cran.

La variante, c'est la texture "marbre" qui pse 30ko. Certes pour avoir un motif pas trop rptitif, l'image doit tre grande, mais il est impensable que ce fond ne se rduise pas quelques ko (en GIF 12 couleurs ou en JPEG un peu compress). C'est une question de compromis : il faut accepter une petite perte de couleur dans le fond d'cran (qui est d'ailleurs souvent cach par les boutons, cadres et autres textes) quand elle permet de diviser la taille par 6. Les joueurs vous en seront ternellement reconnaissants. Il y a plein de logiciels et d'utilitaires qui permettent de grer la compression l'octet prs (Photoshop, Paint Shop Pro, JPEG Optimizer...), ne vous en privez pas.

D'une manire gnrale, dcomposer une image en petits lments permet d'conomiser des octets parce que la compression fonctionne trs bien sur des lments simples. Il suffit de les assembler ensuite dans les pages HTML constituant le jeu. Le HTML permet de surimposer le fond d'cran du BODY, puis le fond dtour (en GIF transparent) d'un TABLE, par exemple, et enfin une IMG ventuellement transparente, elle aussi. Et encore je ne parle pas de LAYERS qui permettent d'empiler les couches d'images. De quoi dcomposer en petits morceaux la plupart des lments visuels de votre jeu. Mais l'essentiel, je vous le rappelle, c'est d'tre modestes : si le logo 3D que vous avez fait ne se compresse pas en dessous de 20ko, JETEZ-LE ! Ne surchargez pas vos pages avec cet lment encombrant, qui ne sert pas le jeu.

Le texte aussi
On a tendance penser que le texte a peu d'importance par rapport aux images, parce qu'il ne pse pas lourd et qu'on ne peut pas le compresser. Il ne mriterait pas qu'on se prenne la tte l'optimiser. Moi je dis : "Que nenni ! Dtrompez-vous !" Parce que, contrairement aux images, qui peuvent se mettre en cache sur le navigateur, le texte gnr par PHP est RECHARG ds qu'il y a un changement sur la page. Et puisqu'on cause de jeux en ligne, chaque changement de page il est cens y avoir rechargement des donnes. Ce qui signifie que la page de 30ko (et je reste modeste ; a monte vite avec quelques tableaux et une mise en page complexe) va tre charge, disons une quinzaine de fois par chaque joueur et que 1000x15x30ko par jour a fait beaucoup d'octets quand mme. Dans un jeu de plateau constitu de cases (type Nainwak), le navigateur doit charger par exemple 8x8 = 64 cases dotes chacune d'un fond d'cran et d'images, et ventuellement de liens et autres mouseover. Dans ce type de structure, le moindre caractre de texte est prcieux, puisqu'il sera envoy soixante quatre fois au navigateur du joueur chaque action.

Il y a des manires diverses de compresser le texte, dont l'efficacit dpend essentiellement du type de donnes prsentes sur la page. La premire proccupation, c'est de surveiller la taille des balises HTML. Utilisez les feuilles de style ! Il faut bannir les mises en forme de type <FONT> alors qu'il existe les <TD class="style"> (ou les <SPAN class="style"> si vous n'avez pas de tableau) bien plus conomiques. Il est trop facile de crer un code monumental partir d'une simple ligne PHP rpte 500 fois. Il est plus lgant de dfinir un style une fois pour toutes et de le rutiliser mille fois dans la page.

Autre ncessit : raccourcir les noms utiliss.
C'est vrai pour les feuilles de style : un class="d" sera plus conomique qu'un class="police_par_defaut_de_la_page_principale". Une lettre est souvent suffisante, ventuellement assortie de chiffres (d01,d02,d55...). Idem pour les images et leur rpertoire. Si vous deviez payer un euro par caractre, vous prfreriez copier 64 fois "images/image01.gif" ou "i/i01.gif" ? (ni l'un ni l'autre diront certains, mais vous avez compris l'ide : compresser ces caractres !). Pour les liens, on se retrouve dans la mme situation. Supposons que vous dsirez affecter une action chacune des 64 cases et que seul un numro varie. Le programmeur insouciant va copier gaillardement "action.php?action=deplacement&id=04" ou 05 ou 06 pour chaque case. La premire tape serait, vous l'aurez compris, d'en faire "ac.php?a=d&i=04", mais il y a encore moyen de faire mieux. Le programmeur cologiste va rduire cette ligne ce qu'elle contient d'essentiel : une action et un chiffre. Il pourra alors crer une fonction javascript qu'il nommera "d" (comme dplacement) ; le lien deviendra "d(04)" et la fonction se chargera de complter le reste de l'adresse de la page chaque appel.

Retour au sommaire de l'article