Fleurir en Hiver version électronique
#1
Hello,

Je cherche des testeurs pour mon programme.

https://drive.google.com/open?id=0B1f3WtCnpg8hTmZYM2VBX1BNYW8

La 2è version de l'aventure, j'ai corrigé au moins une dizaine de bugs et il doit en rester encore au moins autant ...
Il y a à peu près tout, on ne peut pas parier parce que je dois rajouter un bouton spécial pour le montant.
Chaque matin il faut choisir d'emporter le miroir ou pas, mais ce n'est pas encore implémenté ...

Je vais tenter d'améliorer le graphisme.

N'hésitez pas à me dire si vous trouvez des bugs, et surtout si vous avez des suggestions ...

Le lien est un exécutable java, mais c'est 100% codé par moi même, donc safe Smile
Au besoin je donne les sources si vous voulez compiler vous même ..

Télécharger la dernière version
Répondre
#2
Léger problème d'encodage sur Linux (et probablement tout ce qui n'est pas Windows).

Sinon, pourquoi ce choix du Java ? Surtout que tout cela ressemble fortement à du HTML (une page web quoi) lu avec Java.
Répondre
#3
Hello Skarn,

Merci pour ton retour, je désespérais d'avoir une réponse.
J'y ai quand même passé pas mal d'heures pendant ces vacances, il y a 3800 lignes de codes pour l'aventure, même si un certain nombre sont générées de façon automatisé et surtout pas mal pour coder le moteur lui même. J'ai espoir de créer un moteur généraliste qui puisse coder rapidement des aventures différentes.
J'utilise effectivement un JEditorPane, qui lit le HTML avec Java, par contre il ne supporte pas le CSS ...

Je pense qu'avec le Java on peut plus facilement passer à la programmation d'une application sur Smartphone par exemple
Après j'aurais pu programmer quelque chose en PHP aussi, il faudra que j'y pense ...
Ca serait effectivement plus facile à mettre en ligne sur un site Internet ...

Après la visualisation est automatisée, ce n'est pas ça qui prend du temps à faire. Mais le programme gère les boutons à afficher, selon les codes que l'on possède ce ne sont pas les mêmes qui s'affichent, il gère le nombre de pièces d'argent, les scores d'intérêt ou de temps etc
J'ai temporairement fait en sorte d'afficher les codes pour pouvoir "debugger" et vérifier que tout fonctionne correctement.

Après, je ne sais pas encore comment je vais présenter les choses en définitive.

[Image: 1473332406-001.png]

[Image: 1473332408-002.png]

La première façon est plus jolie, mais demande de refaire le texte de tous les boutons à la main ...
La seconde peut s'automatiser assez facilement.
Répondre
#4
(08/09/2016, 12:03)Zamoth a écrit : Merci pour ton retour, je désespérais d'avoir une réponse.

Euh, ton message date d'hier, tard dans la soirée, aujourd'hui est une journée travaillée et l'activité du forum n'est jamais frénétique, surtout pas dans une période creuse de l'année (entre deux concours) comme celle-ci.

Citation :Je pense qu'avec le Java on peut plus facilement passer à la programmation d'une application sur Smartphone par exemple
Après j'aurais pu programmer quelque chose en PHP aussi, il faudra que j'y pense ...
Ca serait effectivement plus facile à mettre en ligne sur un site Internet ...

En fait, pour ce que j'en sais (il est compliqué d'avoir une vue exhaustive), l'approche dominante dans la littérature interactive électronique, c'est d'avoir une application « lourde » qui permet de créer un unique fichier HTML/CSS/JavaScript autosuffisant, lequel peut ensuite être lu dans n'importe quel navigateur sans installation. C'est ainsi l'approche choisie par Twine, Quest, Libro Game Creator...

Et je me demandais ce qu'apportait la couche Java ajouté par-dessus le trio de langages habituel du web ici justement. Surtout si cela t'empêche d'accéder à des fonctionnalités fondamentales comme le CSS.
Répondre
#5
Après un test rapide, je peut effectivement conclure que le HTML5 (javascript donc) suffirait amplement à gérer toutes les améliorations que tu as implémentées.
Pas forcément besoin de l'héberger en ligne, ça peut se lancer en standalone dans un navigateur.
On peut utiliser le "storage" du navigateur pour sauvegarder la partie en cours, "canvas" pour des effets visuels (j'ai fait des dés qui roulent avec par exemple), etc.
Répondre
#6
Hello,

Je réponds aux 2 posts en même temps ...
Le problème, c'est que je maîtrise HTML5, CSS, mais pas javascript, le PHP oui ...
Donc le Java ne m'apporte pas grand chose, c'est juste que je ne connais pas assez Javascript ...

Dans mon cas, le HTML me sert assez peu. Java n'est pas doué pour afficher du texte. Il n'y a absolument rien pour justifier par exemple, il faut éventuellement le faire à la main, en comptant les espaces et en les répartissant de façon uniforme, l'horreur quoi ... Donc le HTML me sert uniquement pour justifier et mettre de la couleur, je n'ai pas vraiment besoin de CSS, vu la simplicité du design ...

Merci pour les liens vers les logiciels, je regarderais quand j'aurais un peu de temps ...

@linflas,
Aurais tu un lien vers une de tes AVHs électronique ?
J'ai regardé ton blog, j'aime bien tes illustrations, et surtout cette façon de faire des hachures pour rendre la profondeur et donner un effet "encre" aurais tu des tutoriaux ? Ou un jour, n'hésite pas à faire une petite vidéo pour montrer la technique ...
Répondre
#7
Maîtriser le HTML 5, c'est maîtriser Javascript ! Et c'est vraiment surprenant que tu te débrouilles mieux en java en js : le js est est exactement la même chose que java, mais en plus simple et dédié au web exclusivement.
Le CSS est vital, vraiment j'insiste. Même pour un design simple. C'est obligatoire, point. Sinon, on reprend les (mauvais) tags du HTML des 90's.

Alors je n'ai pas d'AVH électronique, vu que je n'ai pas d'AVH tout court Smile Par contre, j'ai une FA pour un concept "maison" à la Dragon d'Or, avec dés et champs un peu dynamiques.

Pour les tuto, heu.. j'en ai fait qu'un, mais c'est pas pour du dessin Smile
Répondre
#8
Citation :le js est est exactement la même chose que java

Sans entrer dans un troll de développeur, c'est un peu comme de dire que le français et l'anglais sont la même chose parce qu'ils ont des mots en commun. Les paradigmes de programmation sont quand même fondamentalement différents (le Java est globalement orienté objet, le JavaScript plutôt fonctionnel... et je mets des adverbes en plus pour me protéger contre les inévitables contre-exemples ponctuels), de même que les écosystèmes.

Ensuite, je suis d'accord qu'une fois qu'on a les bases de la programmation, un nouveau langage, ça s'apprend vite, les fondamentaux ne changeant pas tant que cela.

Pour en revenir (un peu) au sujet, inkle, qui fait les adaptations numériques de Sorcery!, a aussi rendu public le langage qu'ils utilisent pour cela.
Répondre
#9
J'ai un peu usé de raccourci mais javascript a la même "forme" que java : même types de variables, souvent du camelCase, accolades, points-virgules et c'est de l'OOP, du pur et dur. Alors oui il est seulement interprété et pas compilé, pas autonome car exclusivement exécuté via navigateur, les objets et méthodes sont évidemment imposés par gekko ou webkit.
Si Zamoth code en java, en PHP, CSS et HTML, le js c'est vraiment du gâteau. Et on trouve toujours quelqu'un qui a déjà codé ce dont on a besoin.

Après, c'est ptet que moi, mais installer un JDK ou un .Net framework c'est beaucoup pour lire une AVH lorsqu'on a déjà un navigateur.
Répondre
#10
Sympa le moteur d'Inkle, j'essaierai de m'en inspirer pour améliorer le mien.

Après je préfère avoir mon propre environnement.
Si je trouve un peu de temps, j'aimerais faire des petites aventures type Visual Novel et puis des aventures un peu plus compliquées, j'ai revu la série des Epées de Légende hier, je me suis dit que ça serait vraiment amusant d'en faire une interprétation électronique, avec les personnages qui se déplacent sur une carte et ce genre de chose ...
Et quand j'aurais 2 ou 3 aventures sans trop de bugs, je ferais un site internet.

En tous cas merci pour vos retours Smile
Répondre
#11
Bonjour,

C'est un sacré travail que d'avoir fait ça ! C'est vrai que le java n'aurait pas été mon premier choix, car ce n'est pas forcément simple à faire fonctionner... et donc à tester sur toutes les plateformes (installation sous linux avec des messages d'erreurs, ou problèmes d'encodage que j'ai moi aussi rencontrés sous OSX : les accents et les apostrophes sont remplacés par des points d'interrogation).

Peut-être y a-t-il un moyen de modifier facilement ? Je pense que ça doit être une histoire d'UTF-8 mal assimilé par le programme.

J'ai un peu commencé l'histoire et le début me plaît beaucoup. Le plus gros du travail est clairement fait.

Quelques petites remarques :
* pourquoi ne pas mettre un bouton type "reprendre au début de l'aventure" ? Cela permettrait de ne pas avoir à quitter pour recommencer.
* Il peut y avoir quelques rares dépassements d'écrans dans les choix possibles (exemple avec : "Vous pouvez vous concentrer sur les membres de l'entourage du prince..."). Il faudrait, au-delà d'une certaine taille, autoriser l'affichage sur 2 lignes.
* Il pourrait y avoir un système de sauvegarde, mais ça c'est peut-être un choix si on ne veut pas que le lecteur teste à chaque fois toutes les possibilités.
* toutes les fins de paragraphes sont désormais inutiles (les rendez-vous au...) puisque les liens sont désormais cliquables en bas. Idem pour "effacez le code" ou "notez le code"...
Fan de Garcimore
Répondre
#12
Salut Kurt,

Merci pour ton retour,
En fait, je n'ai pas encore rajouté la page pour les crédits, l'histoire est celle d'Outremer, je ne fais que coder ... Smile
Outremer est clairement mon auteur favori avec Oiseau qui ne vient plus :'(

En fait, oui, sur Windows au début j'avais des problèmes avec les pages que je créais manuellement, du coup je rajoutais
    this.setContentType("text/html;charset=UTF-8");
Mais aujourd'hui les pages sont générées automatiquement à partir du seul fichier texte de départ et je n'ai plus ce problème.
Par contre si je rajoute l'encodage, j'ai des petits carrés à la place de tous les caractères accentués ...

Pour l'instant je me concentre sur une seule plateforme, donc désolé utilisateur de Linux ou autre, mais je note ...

* Oui, bon quand on meurt, il suffit de refermer la fenêtre et de relancer l'exécutable, je pourrais coder la réinitialisation de l'aventure, mais ce n'est pas dans mes priorités pour l'instant ...

* Pour les boutons, en fait il y a des problèmes, mais comme je compte modifier le design prochainement, je les ai laissés ...
Tu pourras quand même voir qu'au paragraphe 1, j'ai fait un test et il y a un bouton sur 2 lignes, en fait en Java on peut programmer le label d'un bouton en html avec les sauts de lignes, couleurs, gras etc
Je compte faire une présentation avec des boutons comme le fait Inkle présenté par Skarn, qui sera plus du texte clickable que des boutons. Donc des modifications sont prévues prochainement.
* Oui, le système de sauvegarde aussi, pour l'instant j'hésite entre 2 choix techniques, soit la sérialization, ou alors j'envoie juste dans un fichier l'historique des paragraphes et je refaits l'aventure du départ à chaque sauvegarde ...
* Oui, je sais, les numéros des paragraphes, je les garde encore pour m'y retrouver, de même que les codes, je les affiche uniquement pour que les retours de Bugs soient facilités ...
C'est encore une version Beta ...

La nouvelle version est quasiment jouable de bout en bout.

Télécharger Fleurir en Hiver

Pour les paris, il faut appuyer sur Entrée après avoir entré le montant du Pari, j'ai codé ça avec des check box, parce que je n'ai pas encore implémenté les radio buttons. En fait je construit mon code pour que la création d'un bouton ne prenne qu'une ligne, donc pour chaque type de bouton je dois créer plusieurs classes ...

Après j'ai pensé à d'autres solutions, créer des paragraphes supplémentaires, par exemple on peut rajouter des boutons standards "je veux voter pour le prince Ba", "je veux voter pour le prince Yon" et un paragraphe virtuel demandant le montant du pari.
Là j'ai gardé la structure exacte du livre pour m'y retrouver, mais parfois rajouter des chapitres qui n'existent pas simplifierait le code et j'étudie cette solution ...

Je pense avoir trouvé un nom pour mon programme, je pense le baptiser MaZE ...
Montrer le contenu

Et sinon, j'ai codé une autre aventure en 21 paragraphes d'un très jeune auteur avec un Dragon, il faudra quand même que je lui demande ce qu'il en pense Smile
Une histoire très courte pour tester un style plus "Visual Novel" avec des dialogues et tout ...

Je termine mon tuto sur GitHub et je mettrais mon code dessus, pour ceux que ça intéresse ...

Voila, c'est tout pour le moment, mais à suivre régulièrement ...
Répondre
#13
Oui effectivement, j'ai vu que l'auteur était Outremer, j'ai d'ailleurs fait l'aventure:-)

Bravo en tout cas pour ce boulot de développement, surtout si tout est automatisé à partir du seul fichier texte !

Pour les sauvegardes, la sérialisation me paraît plus simple à partir d'un seul objet, avec toutes les propriétés voulues (ici un entier pour le paragraphe, un entier pour les pièces, et un tableau de booléens pour les codes). De plus, cela permet d'écrire des procédures propres (des inc_pieces, set_parag etc) et c'est donc beaucoup plus simple pour continuer à développer ensuite le programme pour des histoires qui demanderaient d'autres propriétés (points d'endurance, équipement...). Il suffirait juste de compléter la classe sans rien toucher au cœur du programme.

À partir de l'historique, c'est dommage de redemander au programme d’exécuter toutes les actions effectuées, et cela risque de poser problème pour les histoires faisant intervenir le hasard.
Fan de Garcimore
Répondre
#14
C'est seulement semi automatisé, sinon ça serait trop beau ...
Le programme repère les débuts et fin de section, il repère les renvois vers d'autres paragraphes avec les "au" + numéro.
Au début je repérais les "rendez-vous" ou les "retournez" et j'avais plus de problème, c'est en lisant un post ici que j'ai eu l'astuce Smile
Donc les boutons standards sont générés automatiquement, ensuite il y a des paragraphes obligatoires si l'on possède un code ou des conditions compliquées à coder, ça je ne peux pas vraiment l'automatiser.

Il peut par exemple créer la ligne pour incrémenter le nombre de pièces d'argent quand il trouve "argent" dans le texte.
Ou celle permettant de créer un nouveau code quand il trouve "Code" dans le texte.
Mais ce n'est pas fait super proprement vu que c'est spécifique à cette aventure ci ...

Le but, c'est de faire quelque chose d'assez simple pour que tout le monde arrive à s'en servir.
Alors si l'aventure vous tente, et que vous voulez programmer quelque chose, n'hésitez pas à vous signaler Smile

En quelques lignes, difficile de tout expliquer, mais je ferais surement une Doc ou un Tuto prochainement ...

Oui, je vais voir avec la sérialisation, l'historique comme sauvegarde à l'avantage d'être lisible par un humain et de prendre peu de place, on peut enregistrer les jets de dés dans l'historique également ... Et c'est juste que je n'ai pas l'habitude de l'utiliser en Java, en Php c'est tout simple, il faut utiliser serialize et le nom de l'objet, et unserialize dans le sens inverse
, hop c'est tout ... je crois qu'en Java c'est plus dur ...
Répondre




Utilisateur(s) parcourant ce sujet : 1 visiteur(s)