Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Paladin : un nouveau projet de moteur de jeux en JavaScript
Par la communauté Mozilla.

Le , par LittleWhite

0PARTAGES

5  0 
« Paladin » est le nom d'un nouveau projet Open Source de moteur de jeux pour le Web crée par la communauté Mozilla.

Paladin permet de faciliter les interactions 3D, notamment pour les jeux, en fournissant une bibliothèque de développement JavaScript.

Les objectifs sont :
- De rendre le Web (et Firefox) une plateforme plus attractive pour les jeux sur ordinateur comme sur téléphone portable ;
- D'aider les développeurs à concevoir des jeux pour internet en concevant un moteur de jeu 3D facile à utiliser ;
- D'encourager un développement amusant en utilisant les avantages des méthodes Agiles et de programmation extrême (c'est à dire: le développement conduit par les tests, la programmation par paire et la collaboration par communication vidéo).

Le moteur utilise actuellement CubicVR pour le rendu 3D et "ammo.js" (une compilation de Bullet utilisant Emscripten) pour la physique. Le chargement se fait à l'aide de "require.js". Le son est aussi d'actualité dans Paladin.

Bien que le projet n'en soit qu'à ses balbutiements, vous pouvez déjà découvrir quelques petits jeux, qui sont aussi utilisés pour tester le moteur.

Il vous est possible de participer au projet, ou simplement de communiquer avec l'équipe à travers un chat IRC ou encore par le biais d'un groupe sur Google.

Sources :

Paladin :


Quelques jeux :



Et vous :

Que pensez-vous du projet Paladin?
Pensez-vous utiliser un jour ou l'autre Paladin?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de _skip
Expert éminent https://www.developpez.com
Le 07/09/2011 à 9:19
En même temps, on peut se poser la question de savoir si de nos jours on n'essaie pas, à n'importe quel prix, de faire de javascript ce qu'il n'est pas. Peut être qu'il est plus adapté pour faire un peu de DOM plutôt que des jeux et des RIA? Question ouverte.
10  0 
Avatar de air-dex
Membre expert https://www.developpez.com
Le 07/09/2011 à 0:21
Paladin ne peut qu'être bénéfique pour Javascript. Ça peut lui donner une autre image, moins DOM et peut-être un peu plus fun. Je n'insinue pas que la manipulation du DOM est ennuyeuse à mourir, mais il faut bien avouer qu'un Pacman comme Doodle, c'est bien plus sexy que la manipulation de balises HTML.
2  0 
Avatar de Emmanuel Deloget
Expert confirmé https://www.developpez.com
Le 09/09/2011 à 11:29
Citation Envoyé par Flaburgan Voir le message
Quand j'ai lu ça, j'ai pleuré.
Faut pas Je n'ai pas dis ça au hasard non plus

JS est un langage multiparadigme (impératif, objet, dynamique, fonctionnel) supportant la méta-programmation au run-time (JS peut produire du JS au runtime, et l'exécuter via eval()), le lambda calcul et les fonctions / méthodes / objets anonymes, etc. Il est extensible, syntaxiquement bien conçu, relativement facile à lire, et supporté partout. Les récentes recherches ont montré qu'il était compilable (cf. le v8 engine de Google, ou l'équivalent dans Firefox).

Cite un seul langage qui supporte tout ça, tout en restant simple d'utilisation

Citation Envoyé par Flaburgan Voir le message

Et puis finalement, la suite n'est pas tellement vide de sens. Mais j'aimerais bien des détails quand même. JavaScript reste interprété, non ? Donc niveau performance, avant d'atteindre celles d'un langage compilé, il y a un gouffre.
Et bien, plus tout à fait. JS peut être compilé nativement (c'est ce que fait v8).

Citation Envoyé par Flaburgan Voir le message

Les compilateurs JS dont on parle sont donc intégrés dans les navigateurs, qui commencent par compiler les scripts avant de les exécuter pour palier à ça ?
Exact. Sans ça, un produit comme Gmail ou Zimbra serait difficile utilisable sur les ordinateurs récents.

Citation Envoyé par Flaburgan Voir le message

Mais tout cela ne profite pas de l'accélération matériel ? Rien ne passe par le GPU ? Comment alors faire des jeux 3D à la fois réalistes et fluides ?
L'accélération matérielle est possible via des API spécifiques - comme WebGL, qui va être retravaillé.

Histoire d'être clair : ça ne pose pas de problème de sécurité majeure (à moins d'une faille, qui peut être au niveau du concept ou au niveau de l'implémentation). La sécurité est assurée par le navigateur, qui ne propose que des API qui sont censées ne pas permettre à une application tierce de faire ce qu'elle veux. Pour simplifier, le code est exécuté dans une sandbox, et les E/S de cette sandbox sont contrôlés de manière drastique.

Après, si une faille est présente, c'est une autre histoire. Mais dans l'esprit, le fait d'accéder au hardware n'est pas un problème (après tout, on accède déjà au clavier, à l'écran (via la page web), à la souris, etc).

Citation Envoyé par Flaburgan Voir le message

Et la question finale : Est-ce que, au final, le seul logiciel ouvert dans notre ordinateur sera le navigateur ? On jouera avec, on ira voir ses mails, on aura ses photos en ligne, notre suite bureautique aussi...
Est-ce que google et Chrome OS avait raison ?!
C'est le principe de ChromeOS et des clients dit légers. Ils ne sont quand même pas prêt de s'imposer (c'est plus un retour en arrière qu'autre chose : après tout, c'est le principe d'un terminal X).
2  0 
Avatar de Floréal
Membre éclairé https://www.developpez.com
Le 07/09/2011 à 9:45
Alors, j'ai voulu voir ce que donnait recuefox et j'ai essayé avec deux navigateur (Ubuntu 11.04):
- Firefox 6.0.2 -> Page blanche
- Chromium (13.0.782.215) -> Plantage de l'onglet
Quelqu'un aurait essayé avec d'autres navigateurs? Et avec quels résultats?
1  0 
Avatar de rocel
Membre du Club https://www.developpez.com
Le 08/09/2011 à 0:22
Failed to load resource pour paladin.js et ammo.js

les fichiers sont pas dans le package zip ....

peut etre qu'un gitt clone télécharge via le lien symbolique présent dans "external"
1  0 
Avatar de Flaburgan
Modérateur https://www.developpez.com
Le 08/09/2011 à 14:15
Citation Envoyé par Floréal Voir le message
Alors, j'ai voulu voir ce que donnait recuefox et j'ai essayé avec deux navigateur (Ubuntu 11.04):
- Firefox 6.0.2 -> Page blanche
- Chromium (13.0.782.215) -> Plantage de l'onglet
Quelqu'un aurait essayé avec d'autres navigateurs? Et avec quels résultats?
Tu as essayé ça où ? Tu as download les sources et testé en local ?
1  0 
Avatar de Emmanuel Deloget
Expert confirmé https://www.developpez.com
Le 08/09/2011 à 15:36
Citation Envoyé par _skip Voir le message
En même temps, on peut se poser la question de savoir si de nos jours on n'essaie pas, à n'importe quel prix, de faire de javascript ce qu'il n'est pas. Peut être qu'il est plus adapté pour faire un peu de DOM plutôt que des jeux et des RIA? Question ouverte.
Bonne question.

Javascript est (probablement) l'un des meilleurs langages existant - multiparadigme, ouvert, remarquable du point de vue conception, et jusqu'à il y a peu souffrant de sont image de langage interprété. Avec l'avènement des compilateurs JS, il s'est débarrassé d'un poids important qui pesait sur son évolution future.

Est-il possible de faire de la 3D en JS ? Oui - j'en veux pour preuve WebGL. Est-ce que ça sera suffisant pour faire des jeux complets et intéressants ? Oui, j'en veux pour preuve Entenglement et Angry Birds (version Chrome). En 3D ? Ca reste à prouver, mais il est fortement aidé par les avancées dans le domaine des technologies de compilation et des progrès en termes de puissance des machines cible.

A l'heure actuelle, la complexité du contenu des jeux vidéos et plus limitatives que les technos qui sont utilisées pour leur développement. Les téléphones portables récents sont capables de faire tourner des jeux en 3D complexes (cf. la démo Unreal sur iPhone, ou d'autres jeux 3D comme Nova ou Nova 2 pour iPhone ou Android).

Avoir des jeux 3D dignes d'intérêt dans un navigateur n'est absolument pas impossible. Maintenant, est-ce au "vendeur" de browser de proposer un moteur de jeu complet ? je ne pense pas. Le browser doit se comporter comme un OS : proposer un accès au hardware, et laisser le programmeur décider de la marche à suivre. Dans le cas contraire, on élimine quelque chose de fondamental dans toute entreprise de développement : la créativité des programmeurs qui sont capable de tirer d'une plateforme quelque chose que cette plateforme n'est pas censé pouvoir proposer (multiples exemples de ça : le mode X des premières cartes VGA, l'effet wobbler sur Amiga (? ou pas ; j'ai pas une mémoire infaillible), ...). Plus on propose un accès complet au hardware, moins on limite le programmeur - même si on lui complique la tâche.

Un autre problème du JS (et des jeux via browser interposé) est qu'il doit être sur la machine client pour s'exécuter. Du coup, une fois tous les scripts récupérés, un "pirate" peut proposer le même jeu sur son site web. Il devient difficile de monétiser les jeux écrits en HTML5, à moins de trouver une solution pour que le jeux ne soit jamais complet sur la machine du joueur. Chrome NaCL permet probablement de limiter la casse à ce niveau, au prix d'une incompatibilité avec les autres browsers (ce qui est quand même ardu, vu le principe des technos web).
1  0 
Avatar de LittleWhite
Responsable 2D/3D/Jeux https://www.developpez.com
Le 08/09/2011 à 20:13
Alors, j'ai fait un test.
Pour récupérer les fichiers du moteur:

git clone git://github.com/alankligman/paladin.git
Du jeu:

git clone git://github.com/mozilla/rescuefox.git
(Ok, je suis sous GNU/Linux Firefox 6)

Il y a des makefile, donc je lance make.
Comme premier résultat il m'indique

Creating ./dist
Creating ./external/CubicVR.js/dist/CubicVR.js
make[1]: entrant dans le répertoire « /tmp/paladin/external/CubicVR.js »
make[1]: *** Pas de cibles spécifiées et aucun makefile n'a été trouvé. Arrêt.
make[1]: quittant le répertoire « /tmp/paladin/external/CubicVR.js »
make: *** [external/CubicVR.js/dist/CubicVR.js] Erreur 2
Bon, ok, il me manque CubicVR qui est un projet lié (je ne sais pas utilisais git, donc il peut y avoir plus simple pour faire ça).
Je vais donc dans le répertoire external et je récupère CubicVR

cd external
git clone git://github.com/cjcliffe/CubicVR.js.git
Comme je suis prévoyant, je récupère qunit qui est aussi lié par le projet Paladin.

git clone git://github.com/jquery/qunit.git
Je suis prêt à faire la compilation

cd ..
make
Nouvelle erreur:

Creating ./external/CubicVR.js/dist/CubicVR.js
make[1]: entrant dans le répertoire « /tmp/paladin/external/CubicVR.js »
Building ./dist/CubicVR.js
Building ./dist/CubicVR.min.js
Finished, see ./dist
make[1]: quittant le répertoire « /tmp/paladin/external/CubicVR.js »
Building ./dist/paladin.js
/bin/sh: node: not found
(On avance )

Il me faut installer 'node'

aptitude install node
Puis je passe à l'erreur:

axconfig: port 1 not active
axconfig: port 2 not active
Il semble que la compilation/build ne soit pas nécessaire pour faire tourner les tests. Mon navigateur les passent tous. Ok. Maintenant, le jeu
Je copie le dossier "paladin" dans le dossier "external" du jeu.

La compilation du jeu échoue immédiatement:

/bin/sh: f: not found
make: [check-lint] Erreur 127 (ignorée)
Et lorsque je tente le lancement du jeu comme cela (par la page index), j'ai une page blanche.
Chrome dit qu'il plante.

Donc, voilà, ce n'est pas très concluant pour le moment.
1  0 
Avatar de Flaburgan
Modérateur https://www.developpez.com
Le 09/09/2011 à 10:03
Citation Envoyé par Emmanuel Deloget Voir le message
Javascript est (probablement) l'un des meilleurs langages existant
Quand j'ai lu ça, j'ai pleuré.

Et puis finalement, la suite n'est pas tellement vide de sens. Mais j'aimerais bien des détails quand même. JavaScript reste interprété, non ? Donc niveau performance, avant d'atteindre celles d'un langage compilé, il y a un gouffre.
Les compilateurs JS dont on parle sont donc intégrés dans les navigateurs, qui commencent par compiler les scripts avant de les exécuter pour palier à ça ?

Mais tout cela ne profite pas de l'accélération matériel ? Rien ne passe par le GPU ? Comment alors faire des jeux 3D à la fois réalistes et fluides ?

Et la question finale : Est-ce que, au final, le seul logiciel ouvert dans notre ordinateur sera le navigateur ? On jouera avec, on ira voir ses mails, on aura ses photos en ligne, notre suite bureautique aussi...
Est-ce que google et Chrome OS avait raison ?!
1  0 
Avatar de LittleWhite
Responsable 2D/3D/Jeux https://www.developpez.com
Le 09/09/2011 à 10:42
Citation Envoyé par Flaburgan Voir le message
Mais tout cela ne profite pas de l'accélération matériel ? Rien ne passe par le GPU ? Comment alors faire des jeux 3D à la fois réalistes et fluides ?
C'est là que WebGL et WebCL intervenaient, en donnant accès au GPU pour la 3D et le calcul parallèle. Donc si, il y a accélération matérielle, et cela peut aller assez loin

Et la question finale : Est-ce que, au final, le seul logiciel ouvert dans notre ordinateur sera le navigateur ? On jouera avec, on ira voir ses mails, on aura ses photos en ligne, notre suite bureautique aussi...
Est-ce que google et Chrome OS avait raison ?!
Sachant que Google est un grand acteur d'internet (et qu'il participe aux discussions sur les évolutions du web), c'est l'idée qu'ils vont vouloir faire passer. De plus, c'est l'idée du web futur (et ça se voit) que tout sera sur Internet, et que nos PCs ne seront plus que des terminaux intégrants un client HTTP.
1  0