Quake 2 en javascript grâce à HTML5

J’ai d’abord cru à un bon gros poisson d’avril bien monté, mais après avoir testé, il n’en est rien. Des cinglés chez google ont bel et bien porté Quake II en HTML5. De quoi en mettre, à mon avis, plein les dents à ceux qui prétendent que HTML5 ne pourra pas concurrencer flash.

C’est cette fin d’avant midi que mon collègue m’a dit « alors, t’as testé quake II en HTML5? », me montrant une video, que vous trouverez ici http://www.youtube.com/watch?v=fyfu4OwjUEI, datée du premier avril on a bien rigolé! Forcément, qui goberait ça? Il prétendent, en utilisant GWT (permettant de faire du html/javascript en java), WebGL (présent dans HTML5) et toute une série d’autres choses arriver à porter en html la version java existante de quake II. La bonne blague!

Mais en fouinant un peu, on trouve le projet googlecode asssocié. Ok, il ont vraiment bien corsé leur poisson d’avril. Curieux comme je suis, j’ai donc suivi les instructions de téléchargement, compilé le projet avec maven, je l’ai lancé et voilà le résultat console:

/tmp/quake2-gwt-port$ ./run-dedicated-server 6060
2010-04-02 11:12:45.527::INFO:  Logging to STDERR via org.mortbay.log.StdErrLog
2010-04-02 11:12:45.592::INFO:  jetty-6.1.x
2010-04-02 11:12:45.630::INFO:  Started SocketConnector@0.0.0.0:8080
couldn't exec config.cfg
couldn't exec config.cfg
ServerWebSocketImpl(27910)
2010-04-02 11:12:46.011:INFO::Logging to StdErrLog::DEBUG=false via org.eclipse.jetty.util.log.StdErrLog
Starting Server
2010-04-02 11:12:46.013:INFO::jetty-7.0.1.v20091125
2010-04-02 11:12:46.067:INFO::Started SelectChannelConnector@0.0.0.0:27910
Server started
ServerWebSocketImpl(27901)
Starting Server
2010-04-02 11:12:46.069:INFO::jetty-7.0.1.v20091125
2010-04-02 11:12:46.070:INFO::Started SelectChannelConnector@0.0.0.0:27901
Server started
==== ShutdownGame ====
==== InitGame ====
------- Server Initialization -------
====== Quake2 Initialized ======

nextmap: demo2

Ok, bon ça affiche du beau code dans la console du serveur, bien bien. Je télécharge donc, comme indiqué, la dernière nightly build de chrome pour linux (d’après eux ça marche aussi avec le dernier build de webkit/safari sous mac os x). Je lance le navigateur et le pointe vers l’url indiquée, me demandant quand le poisson va apparaître en gros à l’écran (tout en me disant qu’un millier de classes java pour afficher un poisson, c’est pousser le vice là). J’obtiens une jolie console de démarrage quakeII animée. Jusque là rien d’interactif, le bon vieux menu « nouvelle partie, multiplayer, demo, load, save, options ». Je lance direct une partie et….. Merde, ca marche. Je joue, je teste, c’est pas une démo mais un vrai jeu qui tourne. Vous pouvez même profiter de ma mort au bout de 10 minutes…..

Quake II, mort

Grâce au navigateur chrome ou safari, vous pourrez profiter d’un moteur quake II tournant dans votre navigateur. Ma machine de bureau, pas conçue pour les jeux, arrive à faire tourner le jeu à 30 FPS plein écran. Le rendu WebGL est performant, le jeu est fluide, les IA réactives, on est vraiment dans un bon vieux quake II bel et bien porté. Seul hic, sous linux je n’ai pas de son (normalement on est censé en avoir).

Pour tous ceux qui veulent tester:
http://code.google.com/p/quake2-gwt-port/

Pour télécharger et compiler, tappez dans la console:

hg clone https://quake2-gwt-port.googlecode.com/hg/ quake2-gwt-port

assurez vous d’avoir une version java récente installé et maven installé, suivez les instructions.

Pour les commentaires, voir le forum

Laisser un commentaire