11 août 2014

JERK - Post Mortem


Les sorties quasiment simultanées de JERK et DBZDevolution début août m'ont mises sur les rotules. Alors après de bonnes vacances, me voilà d'attaque pour une nouvelle fournée de petits jeux !
Histoire de me remettre dans le bain, je vais commencer par un post mortem sur la réalisation de JERK.

JERK, ça raconte l'histoire d'un bonhomme qui tombe amoureux...

JERK by Botibol
Si vous n'y avez pas encore joué, foncez sur http://www.botiboljerk.com
(Vous pouvez aussi le retrouver sur le Chrome Web Store)


POST MORTEM

Comme c'est mon premier projet sur Construct 2 de Scirra, je vais raconter un peu comment ça s'est passé.


Des petits écrous

La programmation sur Construct 2 se fait tout simplement en bougeant des boites et en cochant des cases. C'est ludique, il y a plein de tutoriaux pour débuter rapidement et j'ai créé mon premier ragdoll en quelques minutes. Génial, au début tout va bien...

Construct 2 logo Construct 2 logo Construct 2 logo . . . !?

Puis viennent les premiers soucis : certains événements nécessitent des réglages défiants toute logique et on termine assez rapidement sur le forum d'aide. Là, ça devient compliqué : ils font essentiellement des jeux de plateforme ou des clones de Flappy Bird. Toute question un peu plus élaborée peut prendre des semaines pour être résolue. Mais il faut s'accrocher car une fois ces difficultés techniques passées, Construct 2 devient un outil agréable et avec un peu d'inventivité, on peut aller au delà du clonage imbécile.

Le jeu était prêt assez rapidement et tout marchait plutôt bien quand je me suis heurté à deux gros problèmes. Toujours les mêmes, les deux gros boulets qui font perdre un temps infini, mais ils s'en foutent, ils sont riches : Apple et Facebook !


La pomme avariée

On se souvient de Steve Jobs annonçant avec fracas la mort de Flash en 2010 et terminant sur l'annonce d'un futur meilleur sous le bienveillant HTML5. Pourquoi pas... Mais quatre ans plus tard, le constat est amer. Outre le fait qu'HTML5 est à ce jour loin d'arriver à la cheville de Flash, qui au passage est loin d'être mort, mon coup de gueule concerne directement iOS. Car tout le monde déchiffre l'HTML5 sauf l'iPad et ses multiples dérivés... Que ce soit en utilisant Chrome ou Safari, rien ne marche car le problème vient directement d'iOS 7 !!!

Il n'y a pas si longtemps, on pouvait réaliser un jeu web en HTML5 puis créer un raccourci sur l'iPad à la manière d'une application. Cette méthode est même expliquée sur le site d'Apple.

Aujourd'hui ce n'est plus possible, les jeux web HTML5 qui fonctionnaient avant sur iOS 4 à 6 ne marchent plus sur iOS 7:

  • On ne peut lire un son que sur l’interaction directe du joueur, comme un clic sur un bouton
  • On ne peut pas lire plusieurs sons en même temps (musique + sons = niet)
  • ça rame à peu près autant que sur ma PSP qui date de 2004 et qui n'est pas du tout faite pour ça...

Le seul motif que je vois à ce terrible retour en arrière est que l'on pouvait faire des jeux pour iPad sans passer par la taxe de l'AppStore. Quand on voit la débâcle d'iOS face à Android, je suppose que tout est bon pour sauver les meubles... Alors oui, je peux convertir mon jeu en application plus ou moins native iOS en utilisant des pluggins comme PhoneGap, mais pourquoi perdre du temps avec ça ? L'HTML5 était censé fonctionner dans le browser, quel que soit le système d'exploitation, pas être volontairement bridé par une tablette hors de prix.

HTML5 you were the chosen one!
Et ben c'est pas gagné... Vivement le hotnews/thoughts-on-apple/


Big Brother in law

Idée de base, assez simple : on clique sur un bouton Facebook dans le jeu, ça partage le score avec un lien vers le jeu.

Et ben non. C'était simple, mais Facebook évolue dans l'ombre, constamment, sans prévenir... Ce qui marchait il y a une semaine ne fonctionne plus depuis... Trois jours avant la sortie du jeu en fait. J'ai passé des nuits blanches formidables à comprendre pourquoi ça ne marche plus, et à trouver une parade.

FUCK YOU FACEBOOK

En gros, on ne peut plus poster de lien sur le mur Facebook du joueur si ce lien n'est pas le même que l'URL d'où l'on poste. Vous ne comprenez rien? Moi non plus. Tout devient compliqué. La partie "developper" de Facebook ressemble de plus en plus à l'administration française.

Alors au début on se dit que ce n'est pas grave, qu'il suffit de modifier les paramètres de l'application Facebook que l'on a été obligé de créer juste pour poster un lien... Sauf qu'après modification de l'application, celle-ci est désactivée automatiquement. Motif ? Il faut fournir un document légal de Privacy Policies, un Review Instructions et quatre screenshots du jeu pour le faire valider par leurs équipes. Alors comme je n'ai pas de département légal et que je n'ai ni le temps ni l'envie de rentrer dans leur petit jeu, j'ai contourné le problème : au lieu de poster un lien, je poste un lien dans un post. Moi aussi je peux jouer au con.


PRO TIPS DU CAPITAINE

Comme on peut très bien se passer d'Apple et de Facebook pour faire des jeux, je vais terminer ce post mortem sur deux pro tips qui vont vous faire gagner énormément de temps si jamais vous utilisez Construct 2:

Évitez d'updater Construct 2 pendant le développement de votre projet : les versions beta n'ont pas volées leurs noms et elles vous causeront bien des soucis... Restez sur la même version stable du début à la fin !

Si vous faites des mises à jour de votre jeu, sachez qu'il va rester cramponné au cache de votre browser comme un morpion.
Pour éviter cela, dans l'index.html généré, remplacez la ligne <script src="c2runtime.js"></script>
par <script src="c2runtime.js?<?php echo filemtime('c2runtime.js'); ?>"></script>
Maintenant, la page va détecter la date de mise à jour du fichier c2runtime.js et forcer le rechargement si la version est plus récente.


BONUS

En plus des versions album et 8-bits de JERK, voici la version acoustique enregistrée par Sourdoreille lors du Baleapop#5 qui a récemment eu lieu à Saint Jean-de-Luz :


La prochaine fois, je parlerai de vaisseaux spatiaux !


THINK before you post:
Is it TRUE? Is it HELPFUL? Is it INSPIRING? Is it NECESSARY? Is it KIND?

Tags

Catégories

Archives