Les jeux mobiles sont les apps les plus téléchargées sur les stores et ce sont eux qui ont le ROI le plus important. Pourtant, développer un jeu accessible sur de nombreuses plateformes est un processus qui peut s'avérer rapidement couteux et long. Si vous souhaitez développer et diffuser un jeu vidéo sur un maximum de plateformes, desktop, consoles, mobile et web, Javascript est la technologie qu'il vous faut.
La variété des systèmes existants (iOS et Android sur mobiles, Windows, macOS et Linux sur desktop) impose des compétences de développement spécifiques et oblige à se limiter à un marché restreint.
Dans le domaine des jeux, de nombreux langages de programmation sont utilisés : Objective-C sur iOS, Java sur Android, C# ou souvent C++ sur desktop, consoles et sur mobile.
Il faut alors écrire un code différent pour chaque système d'exploitation ciblé, et nécessite des développeurs spécialisés dans chaque langage.
Sur le web, Javascript est l'unique langage existant. Les avancées offertes par le support de HTML5 et de WebGL dans les navigateurs ont permis ces dernières années de créer des jeux de plus en plus avancés. En témoigne la multiplication des jeux à succès sur Facebook.
50 millions de nouveaux joueurs grâce à la version web de Clash of Kings
Les moteurs de jeux professionnels (dits "AAA") comme Unity ou Unreal Engine utilisent les langages C# et C++, et disposent d'exporteurs pour le mobile. A première vue, rendre un jeu développé avec ces moteurs disponible sur le web est difficile. Emscripten, un projet soutenu par Mozilla, est utilisé par les deux moteurs pour transformer le code C# ou C++ en Javascript. L'inconvénient est la lourdeur de la solution et la difficulté pour les plateformes mobiles à exécuter les jeux avec des bonnes performances.
En utilisant Javascript comme base pour construire un jeu, on peut s'adresser à la plupart des plateformes en même temps. En utilisant un moteur de rendu comme Pixi.js ou un moteur de jeu comme Phaser, votre jeu va pouvoir être lancé sur tous les navigateurs du marché et profiter de WebGL pour un rendu performant. Il sera également distribuable sur les marketplaces comme Facebook.
Danger Mouse, un jeu fait en HTML5 pour la BBC à l'occasion de la reprise de la série télévision du même nom
Pour Windows, macOS et Linux, Electron est une solution qui permet d'embarquer le moteur Javascript et de rendu du navigateur Chrome et le packager au sein d'une application distribuable sur PC et Mac. On obtient alors un jeu identique à la version web et déployable sur le Mac App Store, sur le Windows Store et sur la plupart des distributions récentes de Linux !
Sur mobile, Cordova permet de packager le jeu en une app distribuable sur l'App Store et le Play Store. Les performances étant moindres sur mobile, des solutions tierces comme Cocoon.js proposent des optimisations de rendu pour rendre le jeu plus rapide.
Une autre alternative est proposée par le moteur de jeu Cocos2d-JS qui embarque un moteur Javascript et un rendu optimisé en natif.
Les consoles de salon ne sont historiquement pas connues pour leur ouverture à des technologies provenant du web, mais la situation change.
Pour sa Wii U, Nintendo a mis en place le Nintendo Web Framework qui permet de développer des jeux basés sur HTML5 et Javascript.
L'export du jeu sur la XBox One de Microsoft devient également possible grâce au support des apps Universal Windows Platform (UWP).
Seule la PS4 reste encore fermée à cette technologie.
Mario vs. Donkey Kong: Tipping Stars, un jeu Wii U fait en Javascript avec le Nintendo Web Framework
Le jeu indépendant Lil BUB's HELLO EARTH a été lancé et financé avec succès sur Kickstarter, en récoltant 148000$. Le moteur du jeu est entièrement écrit en Javascript, et repose soit sur Pixi.js, pour Windows, macOS et Linux, soit sur Cocos2d-JS pour le jeu sur iOS et Android.
Lil BUB's HELLO EARTH, simultanément mis à disposition sur iOS, Android, Windows et macOS
Initialement destiné aux smartphones, le jeu a été très rapidement porté sur desktop, moyennant quelques ajustements sur les touches pour contrôler le jeu. Lors du Kickstarter permettant aux fans de Lil BUB de financer le projet, le jeu vidéo a ainsi pu être mis en ligne sous forme d'une version de démonstration sur iOS, Android, Windows et macOS simultanément. Une version Wii U est déjà très demandée par les joueurs ! Et la compatibilité du jeu avec les navigateurs web permet d'imaginer plein d'extensions ou de mini-jeux accessibles directement sur le web, sans avoir même besoin de télécharger et installer quoi que ce soit.
Chez BAM, nous avons choisi Javascript comme technologie pour créer toutes nos applications mobiles et nous sommes convaincus que les technologies web peuvent révolutionner le monde du mobile et du jeu multi-plateformes.