Alors comme ça tu veux faire un portage Android de ton visual novel ?

Si vous nous suivez sur les réseaux sociaux, vous savez que Being Beauteous et Ambre sont tous les deux sortis sur Google Play il y a quelques jours. Au début, j’ai hésité à vous donner des détails plus techniques, mais comme la développeuse de Mystery Corgi m’a demandé des précisions sur Twitter, voici mon expérience avec les portages Android. Attention, ça va être violent !

Voir son jeu tourner sur téléphone, ça reste quand-même une sacré fierté *__*

Pour commencer
Vous avez enfin fini votre dernier visual novel en date et vous vous dites que le multi-support c’est l’avenir. Vous désirez donc le rendre disponible sur toutes les plateformes possibles pour qu’il soit lu. La bonne nouvelle c’est que RenPy met à disposition un petit guide. Vous commencez donc à télécharger une série de logiciels que vous n’ouvrirez jamais directement mais que RenPy utilisera à votre place. Vous avez besoin du Java Development Kit, d’Apache Ant et du Android SDK. Une fois que c’est fait, vous avez encore besoin de télécharger le Ren’Py Android Packaging Tool, si ce n’est pas encore fait. Celui-ci consiste en un bête dossier que vous devrez placer à la racine du SDK (le kit de développement de RenPy que vous utilisez). En ouvrant RenPy, vous pouvez désormais configurer votre projet.

L’émulation proposée par RenPy n’est pas mal mais rien ne vaut de tester directement sur le support concerné.

La configuration du compte Google Play
Et c’est là que les choses vont se compliquer. Car ça ne sert à rien de générer un build tout de suite, vous allez juste faire planter RenPy. Avant de passer à l’étape supérieure, il vous faut quelque chose d’essentiel : une clé de chiffrement. Et personne ne vous expliquera comment procéder. De ce que j’ai cru comprendre (mais c’est vraiment pas super clair), vous avez besoin de passer par Google Play, même si vous ne souhaitez pas proposer votre produit dans leur boutique (?). Pour obtenir un compte développeur Google Play, vous devez vous inscrire avec un compte Google (je pense que tout le monde en a au moins un) et payer des frais de 25$.

Une fois le précieux sésame obtenu, vous aurez tout un tas d’options à configurer. Il semble qu’il vous faut absolument un client OAuth et un compte de service (voir le menu Accès à l’API ci-dessus) et pour cela, vous devez récupérer l’empreinte SHA-1 du certificat. Ce qui s’est révélé un sacré casse-tête dans mon cas. J’ai épluché le net pour savoir comment l’extraire de android.keystore, le fichier généré par RenPy au tout début de la manœuvre, mais rien à faire, aucune manipulation ne fonctionnait. En désespoir de cause, je me suis tournée vers Keul qui m’a conseillé de télécharger l’extension HashCheck Shell. Grâce à cette astuce, il m’a suffi d’ouvrir les propriétés du fichier pour trouver l’empreinte SHA-1. Je n’ai aucune idée de l’orthodoxie ou non de la méthode mais la configuration du compte Google Play m’a profondément énervé. J’ai rarement vu plus inutilement compliqué et ça m’a fait prendre conscience d’à quel point la vie était facile avec RenPy et toute sa communauté toujours présente pour un conseil ou un tuto T_T.

Normalement à ce stade, vous pouvez enfin créer des projets et générer une clef pour chacun (à ne surtout pas perdre !).

RenPy s’occupe de tout…ou presque
De retour dans RenPy, il vous faut incorporer la clé dans votre jeu. En suivant les conseils de Sleepy Agents trouvés sur le net, j’ai copié-collé les miens dans mon fichier options.rpy.

Vous avez aussi besoin d’un autre code, et encore une fois, impossible de trouver des générateurs simples et efficaces, vous devrez donc faire à votre sauce (ou utiliser la suite basique mais complètement risquée que le tuto RenPy indique en exemple). Une fois ces deux lignes ajoutées, vous pouvez enfin générer votre build.

Une dernière remarque concernant la configuration : RenPy va vous demander si vous désirez des extensions pour votre portage Android (selon la taille du fichier). Vous aurez vraisemblablement besoin des deux versions : la version sans extension vous permettra d’installer le jeu sur un support Android pour faire des tests en toute tranquillité, alors que la version avec extension est nécessaire pour passer par Google Play. La limite de taille étant de 50MB, il est presque impossible de faire moins, même avec un projet très court.

La configuration de la page Google Play
Admettons que vous souhaitez proposer votre jeu sur Google Play, voici quelques astuces qui, je l’espère, vous seront utiles.

• Pour commencer, vous avez forcément besoin d’importer votre fichier APK. Je vous conseille de le mettre dans la catégorie Test Alpha directement, sinon Google Play refusera de vous laisser ajouter une extension (heureusement vous pouvez toujours changer le fichier de catégorie à loisir).
• En remplissant la page de description du projet, vous vous rendrez vite compte qu’il va falloir faire dans le concis. Faites attention, Google Play va essayer plusieurs fois de vous recommander de traduire le résumé grâce à leurs services. Ça semble relativement sympa mais ces services sont en fait payants et on vous demandera très vite de dégainer la carte bleue pour un montant pas si anecdotique ! A moins d’avoir des sous à perdre, je vous conseille de faire la traduction vous-même ou de passer votre tour.
• Le questionnaire pour classifier le contenu n’est absolument pas adapté à un visual novel et pas forcément très clair non plus. C’est assez difficile de savoir ce que chaque formule cache. Cette confusion m’a ainsi valu de récolter un PEGI 18 avec Garden of Oblivion dès le premier essai parce que je ne savais pas faire la différence entre la violence « lointaine » et « rapprochée ». Soyez donc attentifs et n’hésitez pas à refaire le questionnaire plusieurs fois pour comparer !
• Pour vendre le jeu au prix souhaité, il faut obligatoirement un compte marchand et celui-ci vous demande des informations relatives à votre entreprise. Sinon vous serez obligé de proposer l’application gratuitement.

Avec tout ça, votre application est normalement prête à être publiée. Mais avant d’appuyer sur le bouton fatidique, une petite vérification s’impose : votre jeu est-il adapté au format Android ?

Des problèmes d’ergonomie
Histoire de vous donner matière à réflexion, voici une série de problèmes qui se sont présentés quand j’ai donné les jeux à tester à Keul sur son téléphone.

Comme le montre le doigt de Keul, c’est compliqué de cliquer sans aménager l’interface au préalable…

• La plupart des quickmenu (les boutons de navigation au dessus de la textbox et parfois présent en mode NVL) étaient beaucoup trop petits. Il m’a donc fallu transformer certaines images en texte pour pouvoir agrandir la taille comme je le voulais (ça a été le cas pour Ambre) mais aussi rajouter de l’espacement entre les boutons.
• Il va sans dire que la taille du texte en général a dû être agrandie au maximum pour un meilleur confort de lecture.
• Là où la manipulation s’est légèrement complexifiée, c’est que certains de nos jeux utilisent beaucoup d’images. HVNCML, notamment, m’a demandé une bonne après-midi de réflexion : il a fallu que j’augmente l’image de fond pour mieux placer/agrandir les boutons du menu du haut, ce qui a entraîné des collisions avec le texte qui passait en dessous l’image. De même avec la fenêtre de MP en bas à droite. Ce n’est qu’après de nombreux tests que j’ai pu équilibrer tout ça.
• Tout aussi embêtant, les icônes de Garden of Oblivion étaient trop petites et trop proches les unes des autres, ce qui supposait de les agrandir et de modifier les placements. Nouveau problème : le bouton qui devait déclencher le menu de pause avec toutes les options du jeu étant visiblement peu utilisé, Keul m’a conseillé de faire un quickmenu. J’ai donc dû créer de nouveaux boutons en me basant sur le style existant et les placer correctement, tout en surveillant si ça ne débordait pas sur les sprites (c’était le cas du lapin). Il m’a également fallu cacher ces boutons durant les phases de puzzle pour ne pas gêner l’action du joueur.
• Vu que sur Android, le jeu est forcément en plein écran, le bouton Fullscreen/Window des options ne sert plus à rien non plus ! J’ai toutefois préférer le garder plutôt que de laisser un gros trou X).

Bref, tout ça pour dire que si le portage Android ne nécessite pas forcément de refaire complètement l’interface du jeu, il y aura forcément besoin de quelques ajustements !

Pour conclure
Ca y est, vous êtes enfin prêts à publier votre application ! Reste à attendre l’autorisation de Google Play (cela peut prendre quelques heures) et votre jeu sera disponible. Vous avez souffert mais c’était pour la bonne cause ! Heureusement pour vous, je suis là pour raconter mes déboires et essayer de vous empêcher de faire les mêmes bêtises que moi =’D.

pythonw 2015-09-15 22-39-09-79

Capture de la version Android : admirez le nouveau quickmenu à droite =’)

N’oubliez pas que HVNCML sort sur Google Play mercredi prochain et GoO la semaine suivante (en anglais et en français) ! Si vous avez le temps, testez nos portages Android et dites-moi ce que vous en pensez, ça me fera plaisir :3.

4 commentaires sur “Alors comme ça tu veux faire un portage Android de ton visual novel ?

  1. Petit retour sur vos portages « Being Beauteous » et « Ambre ».
    Les 2 applications se sont montrées très stables (pas de crash, bug, etc).
    Pour ma part je trouve que le tactile se prête particulièrement bien a ce type de jeu, aucun problème de navigation malgré mes gros doigts c’est fluide et agréable !

    N’étant pas familier des VN je me suis laissé tenter grâce à votre passion communicative ( sur le blog ou le site TM ) et je n’ai pas regretté !
    L’ensemble est de qualité et homogène (illustration, musique, texte) très surpris pour une équipe « amateur ».
    Voilà petit commentaire d’encouragement pour l’équipe et bonne continuation .

    • Merci pour ton retour, je suis rassurée de voir que tout fonctionne correctement ! Pour ce qui est de la stabilité, je pense que c’est surtout grâce à RenPy qui est quand-même super bien fait ^^.

      Héhé, ce n’est pas parce qu’on est amateurs qu’on ne peut pas faire des trucs sympas. C’est forcément plus modeste et irrégulier que si on avait eu un gros budget mais le cœur y est :3. Je suis contente de voir que tu as visiblement apprécié l’histoire. Merci beaucoup pour les encouragements donc, on espère continuer à faire de notre mieux o/.

  2. Bonjour,
    Nous avons découvert récemment et avec un vif intérêt le VN, Ren’Py et vos différents projets. Nous sommes convaincus que ce format a un vrai potentiel au croisement entre texte et image, livre, jeu vidéo et smartphone. Tous vos conseils nous ont été d’une aide précieuse pour progresser doucement (car nous sommes en équipe réduite (2 1/2)) dans nos propres travaux. Nous nous heurtons actuellement à quelques problèmes qui dépassent notre niveau technique, notre maitrise du python et de l’anglais, dont une vidéo qui saccade (mais why ?!!!) et des plantages lors des tentatives de portage androïd (en version Neither).
    Serait-il possible de vous détailler ces problèmes sur un forum ou par mail afin de bénéficier de vos conseils ?
    Merci d’avance !
    ElPoudjoy

    • Je vous remercie de l’intérêt que vous portez à la fois à notre équipe et au visual novel de manière générale. Cela me fait toujours très plaisir de découvrir de nouveaux projets donc n’hésitez pas à vous faire connaître, je serais heureuse de relayer ;).

      Concernant vos problèmes techniques, il se trouve que Google a récemment fait des modifications impactant Ren’Py et je suis moi-même en difficulté pour gérer mes portages Android. Je ne suis donc pas sûre de pouvoir vous aider là-dessus…

      Mais vous pouvez toujours m’envoyer un mail via le formulaire de contact de l’équipe pour m’exposer exactement ce qui ne va pas et je ferais de mon mieux pour y répondre ^^.
      Page disponible ici : http://traumendes-madchen.com/fr/contact/

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>