Créer un jeu avec Mozilla, Partie 2
Note du traducteur : Les articles de cette série datent maintenant d’à peu près deux ans, il se peut donc que, compte tenu des évolutions récentes de Mozilla, certaines implémentations ne fonctionnent plus. Cependant, après avoir questionné directement les auteurs, il s’avère que la plupart des propos tenus dans ces articles soient toujours pertinents. Brian King a affirmé : “The only obvious thing that jump out at me is the use of the <bulletinboard> element in one of the examples which is now obsolete.“. Ce qui veut dire que seule l’utilisation de l’élément <bulletinboard> dans l’un des exemples est maintenant obsolète. Brian a ajouté : “I think its fine to publish them as is, but add a disclaimer saying they were published over 2 years ago and to go to games.mozdev.org for the latest games.“. En clair, les articles peuvent être publiés dans leur état actuel, mais qu’il est de mon devoir de vous conseiller d’aller sur games.mozdev.org pour récupérer la toute dernière version des jeux.
Dans notre précédent article, Créer un jeu avec Mozilla, Partie 1, nous avons ébauché les étapes que nous allions suivre pour créer un jeu à partir des nouvelles technologies que le projet Mozilla a inventées. Cette article a suscité beaucoup de réactions (NdT : La version anglaise) y compris un article sur Slashdot et un monceau d’e-mails. La plupart des réactions étaient positives mais il y a quelques préoccupations dont nous voulons parlé.
Beaucoup de gens étaient préoccupés par le fait que Mozilla devienne un logiciel boursoufflé et que ce jeu semblait n’être rien d’autre qu’un truc de plus jeté dans ce projet open source. Beaucoup de ces commentaires disaient clairement que Mozilla devrait plutôt être un bon navigateur rapide au lieu d’une plate-forme de jeu. Nous comprenons ces inquiétudes, mais nous croyons aussi que nous pouvons clarifier les choses avec un peu plus d’informations en rapport avec notre projet ludique.
PAGMAN ne sera pas inclus dans les distributions de Mozilla. C’est un programme à part entière qui a été créé par une tierce partie indépendante (nous) en guise d’exercice d’écriture d’une application faisant montre des fonctionnalités des nouvelles technologies de Mozilla. Il y plusieurs autres organisations externes à Netscape qui explorent les mêmes genres de possibilités. Un des meilleurs exemples est l’IDE Perl et Python Komodo multi-plateforme récemment annoncé par ActiveState et qui est développé à base des technologies de Mozilla.
Mozilla est une plate-forme de développement, comme le sont les autres navigateurs. Nous avons déjà commencé à voir une nouvelle race d’applications, telles que Amazon, eBay et Yahoo Mail, qui sont construites pour fonctionner en se reposant sur les navigateurs existants. Beaucoup des technologies qui composent Mozilla aideront ce nouveau modèle applicatif à proliférer en permettant à des applications encore plus fonctionnelles d’être bâties sur le Web.
Lynx est un navigateur rapide et simple, mais le Web est maintenant capable beaucoup plus que de simples textes avec des hyperliens. La plupart des gens veulent avoir une expérience de contenus multimédia interactifs et riches, et nous souhaitons montrer comment Mozilla peut être utilisé pour délivrer cela.
Céer une communauté
Les retours positifs que nous avons reçus nous ont montré que beaucoup de gens sont intéressés par notre projet, nous créons donc un environnement qui permettra à chacun d’apprendre ce que nous faisons et de contribuer au projet en même temps.
Nous avons créé une page sur la création d’un jeu sous Mozilla qui contient toutes les informations pertinentes à propos de ce que nous faisons. Une liste de diffusion mozilla-gaming mailing list a aussi été créée rapidement après le premier article que nous avons publié pour permettre aux gens de parler du projet. Depuis, à peu près une vingtaine de personnes discutent du gens tout comme d’autres sujets se rapportant aux jeux basés sur Mozilla.
Alors que nous créions cette communauté, nous avons appris qu’il y avait déjà un autre projet de jeu Mozilla sur les rails. Andrew Wooldridge, un développeur de Netscape qui travaille sur le code de Mozilla tous les jours, est à l’oeuvre sur le moteur Amoeba. C’est une infrastructure de jeu de rôle (RPG–Role Playing Game) qui a été créée pour être lancé au-dessus de Mozilla et qui a été conçue pour recréer des jeux similaires à ceux de la série des Final Fantasy. Bien que le projet n’en soit qu’à des phases peu avancées de développement, il nous a fourni une esquive de ce à quoi cela ressemblera.
![]() |
|
Figure 1. Un petit aperçu du moteur Amoeba. |
Nous avons aussi reçu des retours relatifs à des imperfections du code original de notre grille XML et qui suggéraient de meilleures manières de résoudre le problème de la création des fondations de notre jeu. Et c’est ce que nous avons fait.
Repenser la structure de la grille
Nous avons repensé l’implémentation de la grille en nous basant sur les remarques des lecteurs. Au début, nous aimions l’idée d’avoir une grille XML, mais il est devenu clair que ce n’était pas une bonne idée, et depuis nous avons découvert que le fait de construire une gille avec XUL était plus sensé. XUL est un langage basé sur XML, cela n’a donc pa été trop dur de changer notre code, en plus nous avons pu tirer profit de mises en pages existantes baties avec des éléments XUL. La nouvelle structure de la grille ressemble maintenant à cela :
<stack>
<grid>
<columns>
<column/>
<column/>
</columns>
<rows>
<row>
<image class="horizontal-wall"/>
<image class="horizontal-wall"/>
</row>
</rows>
<!-- more rows -->
</grid>
<bulletinboard>
<image class="ghost1"></image>
<-- more characters -->
</bulletinboard>
</stack>
Le code complet de la grille XUL est ici.
Ce code nécessite quelques explications. L’élément <stack> rend possible le positionnement de contenu au dessus d’autres contenus. Dans cet exemple, nous avons créé un nombre de colonnes et de lignes pour que les fantômes et les gloutons se promènent. Les colonnes et les lignes peuvent être agrandies ou réduites en fonction de la taille que vous appliquez à la grille. Chaque ligne contient un ensemble d’images qui une fois assemblées forment la grille. Celles-ci sont placées à l’intérieur de l’élément nommé de façon appropriée : <grid>.
Une nouvelle couche XUL est placée au dessus de la grille XUL. Cette fonctionnalité de <bulletinboard> (NdT : Se rapporter à la remarque faite au début de l’article) a été écrite quelques jours avant cette implementation. XUL est encore un langage en cours d’évolution, il présente donc encore des surprises comme celle là presque tous les jours. Le terme container est mieux approprié pour décrire le bulletin de bord. Chaque élement fils du tableau d’affichage peut être positionné sur chaque coude haut et gauche. A partir de cette position, ils peuvent être déplacés. C’est idéal pour que les personnages PAGMAN puissent se déplacer en étant au dessus de la grille.
La nouvelle fonction de tableau d’affichage a été portée à notre attention par un membre de l’équipe XPFE, Eric Vaughan. Eric nous a envoyé un exemple de grille écrite en XUL qui fonctionnait dans les récentes sorties nocturnes de Mozilla.
![]() |
|
Figure 2. Une grille écrite avec XUL |
Il y a un peu de JavaScript agraphé pour que les fantômes puissent se déplacer, mais cela n’est pas le moins du monde un jeu de travail. C’est tellement flexible que cela peut être ouvert dans une fenêtre de navigateur ou séparé dans une fenêtre séparée. Les éléments de contrôle d’interface de chaque jeu individuel devront être compris dans le jeu, ou ils peuvent être dans un fichier différent introduit dans le jeu tout comme l’est une couche XUL.
Pour voir cette grille XUL dans Mozilla :
- Procurez vous une nightly build de Mozilla, sortie après le 7/10/2000.
- Téléchargez le fichier
pagman.zip. - Décompressez et oouvrez
pagman.xuldans Mozilla.
Prochaines étapes
Pour faire en sorte que ce fichier devienne un jeu, nous devrons programmer quelques fonctionnalités dans ce cadre de travail (framework), dont la détection des collisions, la gestion des scores, l’intelligence des fantômes et le contrôle du mouvement des personnages. Dans le prochain article, nous passerons à la façon dont nous avons pu mettre tout ça en place et aux problèmes que nous avons rencontrés lors de cette phase.
Quand ce jeu sera fini, nous espérons être capables de fournir un cadre de travail général qui permettra à d’autres personnes d’écrire plus facilement des jeux basés sur Mozilla pour que l’on puisse jouer à autre chose qu’à PAGMAN. Cela supposera de travailler conjointement avec le projet Amoeba pour créer un environnement de création de jeu en tout genre pour Mozilla. Mais avant de faire tout cela, cependant, nous devrons faire en sorte que ce premier jeu fonctionne. Lisez notre prochain article pour savoir comment nous y sommes arrivés.

Textes originaux en anglais sur O’Reilly : http://www.oreillynet.com/pub/au/64


Chargement
Commentaires récents