[Projet] Convertisseur Twine -> Processing -> Android

Salut à tous,

Ouverture d’un sujet pour parler de mon projet en cours : un convertisseur pour Twine permettant de convertir une aventure en un code compatible Processing.

Pour ceux qui ne connaissent pas, Processing est un langage de programmation open-source aux possibilités assez intéressantes. L’équipe à la base du projet est également celle qui a travaillé (pour certains membres) sur la création des cartes électroniques Arduino.

Mon projet consiste donc à lire une source Twine (ou plus exactement, le fichier de sauvegarde où les données du jeu sont enregistrées en XML) et à la convertir en code Processing. Vient s’ajouter ensuite une interface graphique (paramétrée et configurable) affichant le texte de la page et une série de boutons permettant de sélectionner son choix, et de poursuivre l’aventure.

Et là où c’est intéressant (et où est l’intérêt du projet), c’est que Processing est basé sur un cœur Java, et il est possible très facilement de créer…une application android ! Il suffit de venir greffer au logiciel un kit SDK de chez google (gratuit), et un un clic l’application démarre sur votre mobile/tablette. :laughing:

Le plus gros de la partie conversion est fait, je suis en train de tester l’interface graphique pour l’adapter aux « petits » écrans en cas de texte long. J’ai retenu un système de « dragging » de l’écran, les tests sont en cours. Je n’ai pas encore testé l’application sur mon téléphone, c’est pour bientôt. :stuck_out_tongue:

La moulinette de conversion est encore assez lourde à utiliser (utilisation d’excel pour créer des tableaux de grande taille) mais on obtient un jeu jouable immédiatement. Les tests sont menés avec mon jeu « L’histoire vraie de Yoruk » dont j’ai une version Twine. J’ai encore quelques soucis de rendu du texte, mais l’interface ne bugge pas trop…! :mrgreen:

La suite ? Essais sur mobile/tablette, recherche de bêtas testeurs ayant des tablettes/mobiles compatibles android et n’étant pas effrayés par un SDK et quelques lignes de code ! Il sera donc possible de créer des applications autonomes, et envisager une distribution des aventures. Certes Twine permet d’exporter facilement des aventures par exemple en HTML, mon projet propose juste une autre possibilité de jeu, avec une interface customisable. J’ignore également sous quelles conditions il est possible de rendre l’application autonome et distribuable…!

Screenshots à venir prochainement…!

Toutes suggestion est la bienvenue…!

Super !

Est-ce que tu t’es renseigné pour savoir si une chose du genre a déjà été faite ? Comme Twine est populaire, j’aurais pensé que quelqu’un a déjà fait en sorte de pouvoir exporter du Twine pour Android.

Si j’ai bien compris, tu peux créer un .apk avec un jeu Twine ? Si c’est le cas, alors c’est facile de distribuer sur le Play Store après. Tu as des projets spécifiques ou bien c’est juste pour t’amuser que tu as fait ça ?

Je veux bien testé quand ce sera prêt !

(et je ne sais pas si tu as vu, mais je m’amuse aussi avec Android et iOS en ce moment.)

Intéressant… tiens-nous au courant.

Non je ne me suis pas plus renseigné que ça. Après j’avais déjà travaillé sur la lecture de la source Twine pour un autre projet, et je me suis juste dit « Ah, ça serait sympa de sortir du code Processing avec ».

Je n’ai jamais directement travaillé avec les APK, le mode de création Android télécharge directement l’application sur la tablette/téléphone. Mais il semble possible d’exporter un APK, cf ici.

Nan, pour l’instant juste m’amuser !

Ahh non, pas vu encore !

Si ça envoie directement sur ton téléphone, c’est que ça installe en fait un .apk automatiquement je pense, donc c’est bon.

Pour ce qui est de mes expérimentations, c’est ici. C’est pas grand-chose en vrai, je ne fais qu’utiliser des trucs existants. J’ai aussi tweeté des captures du Temple nâga sur Android.

Ca me semble intéressant.
J’avoue ne pas m’y connaître en questions techniques mais j’imagine les usages possibles.

En fouillant dans les répertoires temporaires de la construction du projet, j’ai pu effectivement trouver un APK. :slight_smile: Après transfert sur mon téléphone, j’ai pu l’installer et jouer sans soucis. (sauf que le APK n’est pas signé, et j’ai dû décocher une protection sur mon téléphone interdisant l’installation de programmes sans signature :stuck_out_tongue: ).

Bon j’ai vraiment besoin de travailler sur le lien taille de texte ↔ largeur écran car c’est un peu illisible sur mon petit écran de smartphone. Screenshots à venir…!

Voici donc quelques vues de ce que donne l’adaptation. Le titre et le texte en partie haute, et des boutons permettant de sélectionner le choix.

Le choix s’affiche en surbrillance si on joue à la souris (comme sur la vue 2). En cas de jeu sur une tablette/téléphone, le choix n’est pas en surbrillance, mais ce n’est pas forcément problématique.

Si le texte est trop long pour la fenêtre, il est possible de « dragger » tout l’écran afin de faire apparaitre la suite du texte. Des petites flèches indiquent qu’il y a une suite de texte.

Le réel problème que j’ai est de déterminer la hauteur de la zone de texte centrale afin de caler correctement les boutons de choix juste derrière. (Le programme ne me permet pas de la mesurer… :frowning: ) Il faut donc en fonction du nombre de caractères, de leur taille, du nombre de retours à la ligne, du nombre de caractères par ligne… Que je détermine la hauteur de la zone de texte (en pixels). J’ai déterminé une première formule, mais qui ne marche pas à tout les coups : parfois le texte est coupé avant la fin, ou bien les boutons sont à trois kilomètres derrière le texte. Avoir du retour sur différents appareils à différentes résolutions serait un plus pour moi afin d’affiner ma formule. Si des gens ont une idée… Je n’ai pas envie d’utiliser une police à largeur de caractère fixe comme du Courrier New…!

Se posera ensuite la question de l’adaptation automatique de la taille du texte en fonction de la taille de l’écran. J’imagine mal une application conserver la même taille de caractères sur un téléphone et une tablette.

Je continue à travailler là dessus ! Si certains veulent essayer, dites le moi. J’ai juste à vous envoyer le APK de l’application, et vous n’avez plus qu’à transférer le fichier sur la cible et lancer l’installation (sur Android !!). La manipulation exacte dépend du matériel, j’ai en ce qui me concerne un gestionnaire de fichiers sur mon téléphone pour me simplifier tout cela…! Il faut juste autoriser votre apapreil à installer une application non signée.

Possibilité aussi de le tester sur ordinateur, avec Processing.

Voilà voila, toute remarque est la bienvenue !!

[attachment=0]v1.PNG[/attachment]

Je veux bien tester.

Sinon, je me suis demandé, est-ce que ça garde le style fait avec le CSS et les effets fait avec Javascript ? Si non, c’est un peu dommage…

Tu peux me donner ton mail en MP pour que je t’envoie le APK ?

Eh malheureusement non, je ne conserve pas les paramètres CSS. En fait j’ai un code qui extrait toutes les chaines de caractères de la source Twine, et qui recompile le tout en code Android. Et le souci c’est que Processing ne gère pas en natif un affichage en CSS… Toute la partie affichage graphique est faite en partant de zéro !

Hello,

je suis nouveau sur le forum (j’ai juste laissé quelques messages à droite à gauche), j’ai lu quelques threads et je dois dire qu’il y a une chouette ambiance ici :slight_smile:
Du coup, vu que ça parle de porter du Twine sur Android, et que c’est exactement ce que je suis en train de faire pour mon projet de jeu, je me permet d’intervenir pour ajouter mon grain de sel ^^

Pour ma part, j’ai fait une équation simple :
Twine génère du html5 + JS
Une application hybride se code en html5 + JS
Donc le plus court chemin pour avoir du Twine sur mobile est de l’intégrer au sein d’une appli hybride (et donc cross-platform, ce qui ne gâche rien).

Donc j’utilise Cordova pour faire tourner ça sur mobile et packager le tout pour Android et/ou iOS.
Ca marche plutôt bien, actuellement mon proto tourne sur Android et iOS. Il doit aussi tourner sous Windows Phone et autres mais je n’ai pas eu l’occasion de tester.
Alors bien sûr ça demande un peu de boulot, mais de mémoire j’avais réussi à faire tourner twine sur mobile assez rapidement.

Depuis par contre j’ai pas mal touché au moteur Twine, et j’ai écrit mon propre Story Format pour les besoins du projet.
Maintenant le tout est « enrobé » dans du ionic/angular, ce qui m’a permis d’intégrer un menu, etc…

Voilà la tête que ça a (ça date un peu, mais ça a le mérite de montrer le boot sur mobile et le menu ionic) :

a+
Aniki