URL: https://linuxfr.org/news/j-ai-teste-pour-vous-la-creation-d-un-jeu-pour-firefox-os Title: J’ai testé pour vous : la création d’un jeu pour Firefox OS Authors: Maxime Davy Defaud, M5oul, BAud, Nils Ratusznik, Nÿco, palm123 et ZeroHeure Date: 2014年11月30日T15:23:40+01:00 License: CC By-SA Tags: jeux_linux, firefoxos, html5, javascript et firefox Score: 39 Profitant d’un petit moment de répit entre l’envoi de mon manuscrit de thèse et la préparation de la soutenance, j’ai décidé d’assouvir mon besoin de coder. Et, si possible, quelque chose n’ayant rien à voir avec ce que je peux faire au boulot. J’ai donc voulu coder un petit jeu en JavaScript dans le but de le faire tourner sur Firefox OS et ainsi découvrir l’envers du décors du Firefox Marketplace. Attention : cette dépêche étant à l’origine un journal, les propos qui suivent sont très subjectifs. Je vous propose ici un résumé des grandes étapes pour le développement d’un jeu pour Firefox OS, mais surtout de mes impressions. Je ne vais donc pas parler spécifiquement de mon jeu. En dépit des quelques critiques que je formule ici, j’espère que ce retour d’expérience poussera certains d’entre vous à se lancer, car le développement d’un jeu pour Firefox OS n’a rien de très compliqué. ---- [Journal à l’origine de la dépêche](http://linuxfr.org/users/mrmax/journaux/j-ai-teste-pour-vous-la-creation-d-un-jeu-pour-firefox-os) [Pweek sur Firefox Marketplace](https://marketplace.firefox.com/app/pweek?src=search) [Statistiques sur le Firefox Marketplace](https://marketplace.firefox.com/statistics) [Pweek sur le Play Store (Android)](https://play.google.com/store/apps/details?id=com.tacoid.pweek) [Liste de frameworks de jeu](http://html5gameengine.com/) [Framework Phaser comme moteur de jeu](http://phaser.io/) [Tutoriel de Phaser pour réaliser un premier jeu](https://developer.mozilla.org/en-US/docs/Games/Workflows/HTML5_Gamedev_Phaser_Device_Orientation) [Utilisation de WebIDE à partir de Firefox 34](https://developer.mozilla.org/en-US/docs/Tools/WebIDE) ---- # Développement d’un jeu pour Firefox OS # J’ai décidé de porter [Pweek](https://play.google.com/store/apps/details?id=com.tacoid.pweekmini), un jeu que j’avais développé avec un ami il y a deux ans pour Android. Ce jeu avait été développé en Java avec [libGDX](http://libgdx.badlogicgames.com/). Malheureusement, en l’absence de JVM pour Firefox OS, les applications doivent être écrites en HTML + JS. Heureusement, le JavaScript a bien évolué ces dernières années, et il y a des tonnes de _frameworks_ à disposition. ![Pweek](https://marketplace.cdn.mozilla.net/img/uploads/previews/full/157/157279.png?modified=1416147237) ## Prise en main d’un framework ## Je me suis lancé dans la recherche d’un _framework_ pour développer des jeux HTML. J’ai tapé naïvement sur mon moteur de recherche quelques mots clefs et puis je me suis lancé sur [Phaser](http://phaser.io/). Je n’ai pas pris le temps de tester les alternatives, vous trouverez une liste chez [_HTML5 Game Engine_](http://html5gameengine.com/). J’ai commencé par suivre [ce tutoriel](http://www.photonstorm.com/phaser/tutorial-making-your-first-phaser-game) qui m’a convaincu par sa simplicité de prise en main. Puis, j’ai parcouru la liste des [exemples](http://examples.phaser.io/), j’ai joué un peu avec et je me suis dit que j’avais tout le nécessaire pour faire ce que je souhaitais faire. Vous trouverez également un tutoriel sur le site de [Mozilla](https://developer.mozilla.org/en-US/docs/Games/Workflows/HTML5_Gamedev_Phaser_Device_Orientation). ## Développement du jeu ## Pour le développement, un bon petit Vim accompagné d’un navigateur font l’affaire. Les pages doivent être servies par un serveur Web ([explications](http://phaser.io/getting-started-js.php)), pour cela j’utilise simplement la commande `python3 -m http.server` dans le dossier source, ça fait le boulot. Comparé au développement pour Android, c’est quand même plus sympa que de devoir lancer un gros Eclipse ou équivalent... Pas besoin de compilation, on teste en rafraîchissant la page de son navigateur, c’est plaisant. Et pour tester sur smartphone, pour commencer on peut simplement se rendre sur l’URL du jeu. En plus, les débogueurs de Firefox et Chrome sont pas mal, ils n’ont pas grand chose à envier aux autres débogueurs que j’ai pu utiliser avec d’autres outils. Je regrette cependant de ne pas avoir pris le temps d’outiller d’avantage mon code avec un Google Closure ou équivalent (je ne connais pas trop les outils à la mode, n’ayant plus fait de JS depuis plus de 3 ans). Car, franchement, se prendre des erreurs à l’exécution qui n’auraient pas dépassé la phase de compilation en Java, c’est pénible. J’ai prévu de faire le tour des outils disponibles, ainsi que des langages qui peuvent compiler vers JavaScript. Si vous avez de l’expérience, un commentaire serait fortement apprécié. ##Création du _manifest_ et test sur ordiphone## Une fois le jeu fonctionnel dans un navigateur, il est temps de passer à l’empaquetage pour Firefox OS. Cela passe par la création d’un fichier `manifest.webapp` qui contiendra le nom, la version, la description, le chemin des icônes, le fichier index, les privilèges, l’orientation, etc. Rien de vraiment difficile, vous trouverez des infos sur les pages de [Mozilla](https://developer.mozilla.org/fr/Apps/Manifeste). Faites attention aux privilèges, c’est la partie un peu sensible, n’utilisez pas le type `privileged` si vous pouvez l’éviter. Pour vérifier que tout est bon, vous pouvez utiliser le WebIDE disponible dans Firefox 34+. Vous pourrez alors envoyer votre projet sur votre téléphone et vérifier que tout va bien. Simple, efficace, j’étais plutôt satisfait. Pour débuter, il vaut mieux lire la [documentation de webIDE](https://developer.mozilla.org/en-US/docs/Tools/WebIDE) quand même (notamment pour la partie _udev_). ##Envoi sur le Marketplace## Une fois prêt, il ne reste plus qu’à l’envoyer sur le [Marketplace](https://marketplace.firefox.com/) ! Concrètement, il suffit juste de créer une archive ZIP du projet, en incluant à sa racine le manifeste. Je regrette l’absence d’un bouton dans le WebIDE pour obtenir directement l’archive ; j’ai perdu du temps à essayer de comprendre qu’il fallait créer un fichier ZIP et que je ne devais pas faire un sous‐dossier mais tout mettre à la racine. Il y a beaucoup de documentation sur Internet, mais je trouve que l’on s’y perd. Certaines informations sont redondantes, d’autres sont devenues obsolètes, et les informations les plus importantes ne sont pas assez mises en valeur. Dans l’ensemble, je suis assez satisfait de l’interface Web pour envoyer l’application sur le Marketplace. Cependant, pour la soumission, tout n’est pas parfaitement clair, avec des _warnings_ qui font inutilement peur (ex. : je n’ai pas demandé le son car je n’en ai pas besoin, mais Phaser est capable de l’utiliser et, donc, je me suis pris des messages d’avertissement, finalement sans conséquence). Pour la publication d’un jeu, il faut remplir tout un questionnaire, c’est surprenant mais c’est pas plus mal. Comparé à Google Play, j’ai trouvé cela un peu plus long et un peu moins pratique, mais dans l’ensemble tout à fait satisfaisant. Ce qui m’a le plus surpris est le fait que l’application doit passer à travers une revue manuelle ! Comptez plusieurs jours pour que votre application puisse effectivement se retrouver sur le Marketplace, même si vous ne l’avez pas encore rendu publique. M’étant trompé sur une ligne de mon `manifest`, j’ai eu à renvoyer le jeu une seconde fois. Ça m’a pris environ 4 ou 5 jours au total. Pour les curieux, le [jeu Pweek est téléchargeable sur le Marketplace](https://marketplace.firefox.com/app/pweek) et fonctionne sur Firefox OS et Firefox Desktop. Attention avec l’installation dans le navigateur, s’il y a un affreux manque de réactivité, c’est sans doute dû à une option cachée à (dés)activer dans votre Firefox. #Mes impressions sur le Marketplace J’aimerais maintenant livrer mes impressions sur le [Marketplace](https://marketplace.firefox.com/). Dans un premier temps, j’aborderai l’expérience utilisateur, puis je parlerai des conséquences pour le développeur d’une application. ## Expérience utilisateur ## Selon moi, l’interface utilisateur du Marketplace a encore une bonne marge de progression. Je ne m’en étais pas vraiment rendu compte au début, car je cherchais juste des applications de base et, pour cela, c’est relativement correct. À noter aussi que l’interface est relativement agréable à l’œil. Lorsque vous vous rendez sur le Marketplace, vous avez une première page qui met en valeur certaines applications. Vous avez ensuite le choix entre deux onglets : « Récentes » et « Populaires » (éventuellement en se limitant à certaines catégories). L’onglet « Récentes » contient la liste des dernières soumissions sur le Marketplace, sans distinction. Ceci deviendra complètement inutilisable le jour où Firefox OS sera utilisé par un plus grand nombre de personnes. Mais, pour l’instant, en raison du faible nombre d’applications proposées, cela permet aux _geeks_ de voir les nouveautés. Pour le moment, c’est donc plutôt intéressant, mais si le nombre d’applications augmente, Mozilla devra trouver une alternative. L’onglet « Populaires » liste les applications les plus téléchargées. À vrai dire, on ne sait pas vraiment s’il s’agit des applis les plus téléchargées depuis toujours ou en ce « moment », ou s’il s’agit d’un algorithme plus complexe qui se base sur un ensemble de statistiques. Étant donné que dans les quatre premières applications, trois n’ont que 3 étoiles sur 5, ce n’est clairement pas basé sur la qualité des applications. La première question que je me suis posée est la suivante :> Mais pourquoi ils n’ont pas fait en plus un onglet « Les mieux notées » ?! Au moins, on pourrait découvrir des applications de qualité. Car, actuellement, il y a une grosse confusion entre applications populaires et applications de qualité. Et l’utilisateur lambda repart avec l’impression que les applications proposées sont de mauvaise qualité. À défaut d’un nouvel onglet, nous pourrions au moins pouvoir affiner la liste avec une liste de filtres. J’aimerais pouvoir n’afficher que les applications avec au moins 4/5, avec au moins un certain nombre de notes ou de téléchargements. Car en ne proposant qu’un choix entre « Récentes » et « Populaires », alors les applications populaires sont les plus installées et donc elles restent dans les plus populaires, etc. Il est difficile de monter dans les applications les plus populaires si l’utilisateur ne cherche pas spécifiquement notre application. C’est le cas notamment des jeux : vous cherchez un bon jeu, mais vous ne trouverez que les jeux les plus connus, ce qui n’est pas pareil ! C’est comme si dans un magasin de jouets vous demandiez conseil à un vendeur et que celui‐ci n’avait rien d’autre à vous proposer que le Monopoly et le jeu d’échecs... ## Expérience développeur ## Les problèmes dont je viens de parler ont un impact important sur le nombre de téléchargements. Afin d’illustrer ceci, voici quelques statistiques sur le nombre de téléchargements de Pweek : ![Téléchargements de Pweek](https://lut.im/EfzBoMtu/THpvayEW) Au lancement, je me suis retrouvé dans la liste des applications récentes. Donc, naturellement, j’ai eu pas mal de téléchargements. Plus de 200 installations par jour les deux premiers jours. Mais ensuite, la position de mon jeu dans la liste des nouveautés n’a cessé de chuter (normal), mais cela a eu un effet catastrophique sur le nombre de téléchargements. En l’espace d’une semaine, je suis tombé à 20-30 installations par jour. Et c’est là que j’ai remarqué un manque fondamental dans le Marketplace : les suggestions ! Lorsque vous consultez la description d’une appli, on ne vous dit pas : « Eh, regarde ces applis elles pourraient t’intéresser ! », « Eh, les gens qui ont consulté ou installé cette appli ont consulté ou installé ça » ou encore « Eh, applications du même auteur ! ». Donc, maintenant que mon appli n’est plus dans les nouveautés et qu’elle n’est bien sûr pas dans les applis les plus populaires, comment les gens vont tomber dessus ? Contrairement au Google Play, il est difficile de découvrir des applis que l’on ne cherchait pas spécialement. On ne peut pas profiter des recommandations pertinentes m’invitant à essayer telle ou telle application. Et pour ceux qui aiment les statistiques, je vous invite à consulter celles du [Marketplace](https://marketplace.firefox.com/statistics). Nous retiendrons la présence de 5 000 développeurs, avec en moyenne une appli par dev, plus de 95 % d’applis gratuites, moins de 20 nouvelles applis par jour et plus de 40 000 installations d’applications par jour. #Pour la suite# Selon moi, l’interface utilisateur du Marketplace a encore une bonne marge de progression. Je ne m’en étais pas vraiment rendu compte au début car je cherchais juste des applications de base, et pour cela c’est relativement correct. À noter aussi que l’interface est relativement agréable à l’œil. Je m’interroge également sur toute la partie monétisation. Les applis payantes ça marche sur Apple car les gens qui déboursent 700 € dans un téléphone sont capables de débourser quelques euros pour une application. Sur Android, il faut bien « marketer » le produit si l’on veut réussir à le vendre. Le plus simple est probablement de mettre de la pub ou des achats _in-app_. Sur Firefox OS je suis sceptique. Les utilisateurs d’un téléphone à moins de 100 € ne vont peut‐être pas débourser de l’argent dans une appli, et les utilisateurs de Firefox OS sont plutôt réfractaires à la pub, j’imagine... Donc, en l’état, pour moi, développer sur Firefox OS, c’est surtout pour le plaisir et enrichir la liste des applis disponibles. Mais, s’il n’y a pas d’intérêt à investir dessus, cela pourrait être un problème pour Mozilla sur le long terme.

AltStyle によって変換されたページ (->オリジナル) /