Doom en JavaScript et HTML 5
Mozilla vient de porter Doom sur JavaScript et HTML5. La démo est jouable depuis Safari ou Firefox et si nos premiers tests ont rencontré quelques problèmes, c’est tout de même une belle prouesse de la part des développeurs
Selon les explications publiées sur le site de l’éditeur, Mozilla a utilisé le code source de la démo de Doom publié par id Software. Il a d’abord utilisé Clang pour passer du code source en C à un bitcode LLVM. Il s’est ensuite tourné vers Emscripten, un compilateur LLVM vers JavaScript. Le code a ensuite été optimisé avec closure-compiler.
Doom est rendu à l’aide de l’API SDL qui est une bibliothèque multimédia implémentée en JavaScript par Emscripten. Elle offre un accès à l’audio, la souris et à la puce graphique grâce à l’OpenGL. La vidéo était affichée à l’aide de l’élément HTML5 « canvas ». Mozilla souligne aussi que l’absence d’une API universelle pour le son l’a obligé à utiliser la Mozilla Audio Data API. Cela pourrait expliquer pourquoi il n’y a pas de son lorsque la démo tourne sur Safari. Sous Firefox 4.0.1 pour Mac OS X, les choses ne sont malheureusement pas bien meilleures. Le son était saccadé et très désagréable.
Dans l’ensemble, la démo et le système de sauvegarde fonctionnaient bien et nous tournions à 25 images par seconde. Il y a tout de même certains bugs. En plus de la disparition de textures au cours du jeu, la souris n’a jamais été reconnue et de nombreuses touches étaient inactives. Le jeu a refusé de tourner sur Chrome. Mozilla reconnait qu’il y a un problème avec le moteur V8. La démo serait aussi très lente sur Opera, selon l’éditeur.
Pour mémoire, Google avait fait une démo similaire l’an dernier. Il avait porté Quake 2 en JavaScript et HTML5. Son projet avait eu le mérite d’être plus impressionnant de par son envergure et la taille de la fenêtre de jeu. Néanmoins, dans les deux cas, on apprécie surtout le travail des développeurs qui montrent ce qu’il est possible de faire avec du JavaScript et du HTML5.
- Tom's Guide : 10 sites pour remplacer Facebook
- Seasonic : "Le 80 Plus Bronze est mort"
- Intel lance son concept d'ultrafin, Ultrabook (tm)
- Quatre cores et 3D : la X-Fi (re)lancée
- HFX PowerNAS : un Core i5 et 15 To pour vos données
- AMD montre ses APU Trinity "Bulldozer inside"
- Du VIA Nano X2 dans un mini PC Zotac
- Z-01 (Desna), l’APU pour tablettes d’AMD
- Apple s'attaque enfin aux malware
- De l’Eyefinity 3 sans DisplayPort avec une Radeon HD 6970
- Les premières puces Qualcomm Atheros arrivent
- Des boîtiers, des alims et du son chez Antec
- Tom’s Guide : Wii 2, que cache le Projet Cafe ?
- L'interface de Windows 8 dévoilée
- TDJ : Enermax Modu 87+ ErP Lot6 700W
- Protogon : un nouveau système de fichiers pour Windows 8
- HP veut vendre des licences webOS
- Micron se met aux SSD PCIe pour entreprises






- Bientôt, dans tous les bacs, Assassin Creed en Qbasic !
- Ouéééééééééééééééééééééééééééééééééééééééééé !
- Par contre, il faudra se contenter de graphismes à la gorilla.bas...
- Ohhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh...
Quelques Bug de textures mais que de souvenir...
moi j'y joue sur ma calculette....
hornpipe : t'es pitoyable. Commence déjà à faire un "hello world" correct en html, après t'auras le droit de critiquer.
pas de problème à signaler sous opéra 11.11 , c'est fluide (30ips de moyenne) alors que je n'ai qu'un P4. Faudrait peut être vérifier les infos plutot que de recopier bêtement.
Super les nouvelles techno de langage arrivent à faire tourner à peu près des jeux vieux de 15 ans, on arrête pas le progrès ;-)
Mozilla aurait-il peur d'Opera pour le vilipender de la sorte ?
Sur mon laptop:
- Firefox 4: 36 fps
- Opera 11: 33 fps
Quelques Bug de textures mais que de souvenir...
C'est clair trop bon ce jeux pour l'époque,souvenir souvenir......
Je vois pas en quoi le fait de faire un Hello world en HTML me donnerait plus le droit de critiquer ce genre de projet ? Bien au contraire, vu la facilité de la tâche, qui ne nécessite pas de connaissances particulières en programmation.
Ceci étant, je reste persuadé que ce genre de projet est une contre-performance (pour être poli). Lorsqu'on met en place quelque chose qui doit apporter un progrès, on vise quelque chose d'audacieux qui a une vraie utilité pratique.
Faire tourner un jeu qui date d'il y a 20 ans sur des machines équivalentes à celles d'il y a dix ans avec un langage de programmation qui nécessite de vulgariser le code à outrance, ce n'est pas un progrès au sens où je l'admets, c'est de la pure branlette intellectuelle.
Essayez de faire tourner dosbox sur votre mobile (il en existe pour symbian, mais certainement que cela été porté aussi sur Android et que cela pourrait l'être facilement sur les autres OS mobiles) et vous aurez Doom sans bug ni limitation de FPS. Vous aurez d'ailleurs la possibilité de faire tourner tous les jeux dos que vous possédez et même des programmes x86 en 16 bits...
Alors, qu'est-ce que çà apporte que ce soit en javascript ? On ne passe pas par de l'émulation ? Bien, mais si c'est pour avoir plus de restrictions encore que l'émulation, je vois pas l'intérêt. Ah si : bientôt, on vous fera payer le Cloud qui va avec pour lancer le jeu sur votre navigateur...
@Hornpipe : toi t'as pas l'air de savoir ce que c'est javascript.
Je te laisse à ton ignorance ? Oui, je te laisse à ton ignorance. Bon "hello world" !
l'intérêt de l'exercice n'est pas de jouer à doom ....

c'est d'utiliser le HTML5 de façon originale voire impressionante
idem pour le javascript, on ne parle pas ici de java mais bien de script, du coup quand même c'est sympa comme performance à voir
enfin tout le monde l'aura compris... ou presque
"l'intérêt de l'exercice n'est pas de jouer à doom .... "
C'est pour cela que Doom a été choisi, par exemple, plutôt qu'un programme d'aide médical ou une simulation d'architecture. Le choix ne me semble pas anodin.
"c'est d'utiliser le HTML5 de façon originale voire impressionante"
Rien n'interdisait de le faire en concevant un programme de A à Z qui apporte une réelle plus-value. Certes, cela leur a moins coûté de transposer un code déjà existant et cela a peut-être aidé à cette démonstration, sauf que cela n'apporte rien sur le plan pratique et que ce n'est même pas convaincant car on fait mieux ailleurs pour la même utilisation.
La seule différence entre nous, c'est donc que nous n'avons pas la même définition de la branlette intellectuelle. Néanmoins, merci de respecter le fait que je n'ai pas le même avis que toi sur le sujet, Nicky 66.
Quant aux personnes qui s'inscrivent avec des pseudo douteux simplement pour tourner mon avis en dérision, elles devraient plutôt chercher à savoir ce que je sais ou ce que je ne sais pas avant de poster des messages. Tâtonner entre HTML et Javascript pour laisser entendre que je ne maîtrise pas le sujet ne fait que la mesure de leur médiocrité. J'attends plus de dignité et des vrais arguments de leur part, sur l'exemple de Nicky66. A moins, bien sûr, qu'ils n'en soient pas capables...
moi j'y joue sur ma calculette....
et moi sur mon grille pain ... OK je sors
Mise à part la prouesse technique que l'ont peu saluer, on se rend compte au travers des divers portages (Doom, Quake, Angry Brirds...) que le HTML 5 a du potentiel mais un gros problème persiste pour que cette norme devienne réellement compétitive: la compatibilité cross navigateurs.
Plus les projets seront imposants plus il sera difficile de les rendre compatible tout navigateur.
A moins que les navigateurs n'arrivent à accorder leurs violons, je crains que ce standard ne puisse pas passer le stade de jeux complexes en démos jouables.
sur la ti nspire avec ndless il prend l'assembleur
mais le jeu est en nuance de gris
A mon avis faudrait le développer davantage ce projet OpenGL ... dire qu'on peut jouer à Doom sur Linux cool