Moteurs de jeu et bibliothèques

  • Raccourci de la révision : Apps/Game_engines_and_libraries
  • Titre de la révision : Moteurs de jeu et bibliothèques
  • ID de la révision : 295624
  • Créé :
  • Créateur : Goofy
  • Version actuelle ? Non
  • Commentaire Moved From Applications/Moteurs_de_jeu_et_bibliothèques to Apps/Game_engines_and_libraries

Contenu de la révision

statut : premier jet de traduction réalisé, révision nécessaire

{{ draft() }}

Moteurs de jeu en HTML5

La liste suivante donne quelques exemples de moteurs de jeu implémentés avec HTML5 et JavaScript :

  • Construct 2 : Un des premiers moteurs en HTML5 avec WebGL activé.  Il exporte simplement en HTML5 et JavaScript. Il utilise seulement Canvas et il est extensible avec des modules en JavaScript.
  • Isongenic Engine : Un des moteurs les plus prometteurs disponibles aujourd'hui. Avec une prise en charge du multi-joueur massif en réseau, il repose sur Node.js et MongoDB, et permet d'utiliser Canvas ou les graphismes basés sur le DOM.
  • Impact
  • Crafty
  • Rocket Engine

Bibliothèques pratiques

Les bibliothèques suivantes peuvent être pratique lors du développement de jeux basés sur les technologies Web.

  • Canvas : graphismes 2D
  • WebGL : graphismes 3D
  • Audio : l'élément HTML5 <audio>, Mozilla Audio Data API
  • WebSockets : peuvent être utilisés pour une communication en temps réel entre un joueur et un un serveur de jeu, pour la prise en charge de jeux multi-joueurs.
  • Node.js: Node est souvent utilisé comme serveur multijoueur, en contrôlant la logique et en prenant en charge les connexions WebSockets aux joueurs. Il peut être utilisé pour l'authentification et le stockage de données, ce qui permet de conserver les parties des joueurs lors de plusieurs sessions de jeu. Ceci est possible assez facilement grâce aux modules tiers comme Socket.IO et WebSockets et d'autre qui gèrent Redis et MongoDB pour le stockage par exemple.
  • Local storage est génial pour stocker des données en local sur l'appareil du joueur. De cette manière, vous pouvez mettre en cache les données du jeu et permettre au jeu de les récupérer lorsque le joueur reprend sa partie.
  • La Full Screen API permet d'étendre n'importe quel élément HTML pour remplir l'écran de l'utilisateur, même si le navigateur n'est pas déjà en plein écran. L'implémentation de Mozilla n'est pas encore parfaite car vous ne pouvez pas encore utiliser l'ensemble du clavier en mode plein écran, mais c'est dans la dernière compilation Nightly et cela fonctionne pour ce qui est du reste.
  • Application cache : Une des principales différences entre les applications Web et les applications natives est le fait que les applications natives peuvent être éxécutées hors-ligne. Les nouvelles technologies comme le cache application permettent à un site web ou une application web de mettre en cache les ressources nécessaires à l'exécution même hors-ligne. Cela inclut les fichiers JavaScript, CSS et les images. Combiner cette technique avec une utilisation intelligente de choses comme  localStorage permettra à votre jeu de fonctionner même si la connexion Internet tombe. Vous synchroniserez tous les changements lorsque la connexion reviendra.

Tous les navigateurs ne prennent pas encore en charge chaque partie d'HTML5. Par exemple, Canvas n'est pas pris en charge par défaut par n'importe quel IE avant la version 9. Cependant, vous pouvez utiliser Explorer Canvas pour reproduire la fonction Canvas, mais cela n'est pas idéal et ne fonctionne pas aussi bien. Les WebSockets sont pris en charge par IE seulement à partir de la version 10, et ne sont pas pris en charge par le navigateur de base d'Android. Encore une fois, vous pouvez contourner cette limitation en utilisant Flash pour les sockets, comme avec Socket.IO. WebGL possède aussi une prise en charge suppléante sans aucun support pour IE, Safari et Opera nécessitant une version de développement.

APIs futures

  • La Gamepad API est une des améliorations majeures arrivant pour les manettes de jeux. Google et Mozilla travaillent ensemble sur l'implémentation de cette fonctionnalité et il existe une compilation expérimentale de Firefox disponible au public avec cette fonctionnalité pris en charge. Ce qui est le plus intéressant à propos de l'API Gamepad est qu'elle va peut-être démocratiser les jeux HTML5 sur TV ou consoles. Qui veut utiliser un clavier et une souris assis sur son canapé ?
  • La Mouse Lock API est une tentative d'amélioration de la souris comme périphérique d'entrée. Elle serait utilisée dans des situations comme les jeux et les affichages 3D où la position de la souris est utilisée pour pivoter ou effectuer des rotations dans un espace 3D. Pour le moment, le curseur peut toujours sortir de l'écran provoquant des problèmes lorsque vous souhaitez cliquer sur quelque chose dans votre jeu. Avec cette nouvelle API, vous pourrez verrouiller la position de la souris et ainsi éviter qu'elle sorte de l'écran.

{{ languages( { "en": "en/Apps/Game_engines_and_libraries" } ) }}

Source de la révision

<p><span style="background-color:#ffff00;">statut : premier jet de traduction réalisé, révision nécessaire</span></p>
<p>{{ draft() }}</p>
<h2 id="Moteurs_de_jeu_en_HTML5">Moteurs de jeu en HTML5</h2>
<p>La liste suivante donne quelques exemples de moteurs de jeu implémentés avec HTML5 et JavaScript :</p>
<ul>
  <li><a class="external" href="http://www.scirra.com" title="Make games">Construct 2</a> : Un des premiers moteurs en HTML5 avec WebGL activé.&nbsp; Il exporte simplement en HTML5 et JavaScript. Il utilise seulement Canvas et il est extensible avec des modules en JavaScript.</li>
  <li><a class="external" href="http://www.isogenicengine.com" title="http://www.isogenicengine.com">Isongenic Engine</a> : Un des moteurs les plus prometteurs disponibles aujourd'hui. Avec une prise en charge du multi-joueur massif en réseau, il repose sur Node.js et MongoDB, et permet d'utiliser Canvas ou les graphismes basés sur le DOM.</li>
  <li><a class="external" href="http://impactjs.com" title="http://impactjs.com">Impact</a></li>
  <li><a class="external" href="http://craftyjs.com" title="http://craftyjs.com">Crafty</a></li>
  <li><a class="external" href="http://rocketpack.fi/engine/" title="http://rocketpack.fi/engine/">Rocket Engine</a></li>
</ul>
<h2 id="Biblioth.C3.A8ques_pratiques">Bibliothèques pratiques</h2>
<p>Les bibliothèques suivantes peuvent être pratique lors du développement de jeux basés sur les technologies Web.</p>
<ul>
  <li><a href="/en/HTML/Element/canvas" title="canvas">Canvas</a> : graphismes 2D</li>
  <li><a href="/en/WebGL" title="WebGL">WebGL</a> : graphismes 3D</li>
  <li>Audio : l'élément HTML5 <a href="/en/HTML/Element/Audio" title="audio">&lt;audio&gt;</a>, Mozilla <a href="/en/Introducing_the_Audio_API_Extension" title="Introducing the Audio API extension">Audio Data API</a></li>
  <li><a href="/en/WebSockets" title="WebSockets">WebSockets</a> : peuvent être utilisés pour une communication en temps réel entre un joueur et un un serveur de jeu, pour la prise en charge de jeux multi-joueurs.</li>
  <li><a class="external" href="http://nodejs.org/" title="http://nodejs.org/">Node.js</a>: Node est souvent utilisé comme serveur multijoueur, en contrôlant la logique et en prenant en charge les connexions WebSockets aux joueurs. Il peut être utilisé pour l'authentification et le stockage de données, ce qui permet de conserver les parties des joueurs lors de plusieurs sessions de jeu. Ceci est possible assez facilement grâce aux modules tiers comme Socket.IO et WebSockets et d'autre qui gèrent Redis et MongoDB pour le stockage par exemple.</li>
  <li><a href="/en/DOM/Storage" title="en/DOM/storage">Local storage</a> est génial pour stocker des données en local sur l'appareil du joueur. De cette manière, vous pouvez mettre en cache les données du jeu et permettre au jeu de les récupérer lorsque le joueur reprend sa partie.</li>
  <li>La <a href="/en/DOM/Using_full-screen_mode" title="Using full-screen mode">Full Screen API</a> permet d'étendre n'importe quel élément HTML pour remplir l'écran de l'utilisateur, même si le navigateur n'est pas déjà en plein écran. L'implémentation de Mozilla n'est pas encore parfaite car vous ne pouvez pas encore utiliser l'ensemble du clavier en mode plein écran, mais c'est dans la dernière compilation Nightly et cela fonctionne pour ce qui est du reste.</li>
  <li><a href="/en/HTML/Using_the_application_cache" title="Using Application Cache">Application cache</a> : Une des principales différences entre les applications Web et les applications natives est le fait que les applications natives peuvent être éxécutées hors-ligne. Les nouvelles technologies comme le cache application permettent à un site web ou une application web de mettre en cache les ressources nécessaires à l'exécution même hors-ligne. Cela inclut les fichiers JavaScript, CSS et les images. Combiner cette technique avec une utilisation intelligente de choses comme&nbsp; localStorage permettra à votre jeu de fonctionner même si la connexion Internet tombe. Vous synchroniserez tous les changements lorsque la connexion reviendra.</li>
</ul>
<p>Tous les navigateurs ne prennent pas encore en charge chaque partie d'HTML5. Par exemple, Canvas n'est pas pris en charge par défaut par n'importe quel IE avant la version 9. Cependant, vous pouvez utiliser Explorer Canvas pour reproduire la fonction Canvas, mais cela n'est pas idéal et ne fonctionne pas aussi bien. Les WebSockets sont pris en charge par IE seulement à partir de la version 10, et ne sont pas pris en charge par le navigateur de base d'Android. Encore une fois, vous pouvez contourner cette limitation en utilisant Flash pour les sockets, comme avec Socket.IO. WebGL possède aussi une prise en charge suppléante sans aucun support pour IE, Safari et Opera nécessitant une version de développement.</p>
<h2 id="APIs_futures">APIs futures</h2>
<ul>
  <li>La <a class="link-https" href="https://wiki.mozilla.org/GamepadAPI" title="https://wiki.mozilla.org/GamepadAPI">Gamepad API</a> est une des améliorations majeures arrivant pour les manettes de jeux. Google et <a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=633602" title="https://bugzilla.mozilla.org/show_bug.cgi?id=633602">Mozilla travaillent ensemble sur l'implémentation</a> de cette fonctionnalité et il existe <a class="external" href="http://people.mozilla.com/~tmielczarek/gamepad/" title="http://people.mozilla.com/~tmielczarek/gamepad/">une compilation expérimentale de Firefox</a> disponible au public avec cette fonctionnalité pris en charge. Ce qui est le plus intéressant à propos de l'API Gamepad est qu'elle va peut-être démocratiser les jeux HTML5 sur TV ou consoles. Qui veut utiliser un clavier et une souris assis sur son canapé ?</li>
  <li>La Mouse Lock API est une tentative d'amélioration de la souris comme périphérique d'entrée. Elle serait utilisée dans des situations comme les jeux et les affichages 3D où la position de la souris est utilisée pour pivoter ou effectuer des rotations dans un espace 3D. Pour le moment, le curseur peut toujours sortir de l'écran provoquant des problèmes lorsque vous souhaitez cliquer sur quelque chose dans votre jeu. Avec cette nouvelle API, vous pourrez verrouiller la position de la souris et ainsi éviter qu'elle sorte de l'écran.</li>
</ul>
<p>{{ languages( { "en": "en/Apps/Game_engines_and_libraries" } ) }}</p>
Revenir à cette révision