Quixe (et Lieux Communs)

Faites ici vos demandes de bêta-test, faites remonter des bogues, ou lancez des nouvelles collaborations et des projets à plusieurs !

Quixe (et Lieux Communs)

Messagepar Mule hollandaise le Lun Avr 27, 2015 6:27 pm

Quixe 2.1.0 est sorti : on peut maintenant jouer à des jeux Glulx avec des images en ligne !! Par contre, les sons ne sont toujours pas supportés.

Je l'ai d'ores et déjà mis sur mon site pour faire joujou avec. (Otto, si tu as un peu de temps, tu pourrais remplacer le Quixe que tu as mis il y a quelques mois sur le site par celui-là ?)

Si le jeu a des grosses images il vaut mieux faire un prétraitement pour décompresser les images ; mais zarf a inclus un script qui le fait alors tout va bien. Donc la marche à suivre si vous avez un jeu avec des grosses images :
  • Téléchargez le tar.gz et décompressez-le dans un dossier vide sur votre serveur
  • Allez dans le répertoire et lancez le script Python
    Code: Tout sélectionner
    python tools/game2js.py --giload YOURGAME.ULX > stories/glulxercise.ulx.js

    en remplaçant YOURGAME.ULX par le nom de votre jeu
  • Ouvrez play.html pour jouer au jeu !
Et bien sûr, vous pouvez toujours jouer en remote, à base de "/répertoireQuixe/play-remote.html?story=URLDUFICHIER.ULX?enter=Play+it!". (Sauf que si vous avez des images, ça ramera, ça plantera, ça fera des erreurs qu'il y a plus de place sur la pile, donc vaut mieux lancer le petit script!)

J'ai essayé pour Lieux Communs... et ça marche presque ^^ Il y a un problème parce qu'on a un bug dans la façon dont le jeu fait le son (le code est copié de chez JB, et Ekphrasis a le même problème - encore pire en fait, il se freeze après l'écran titre ^^)
Code: Tout sélectionner
    if (modesonore == 1) {
        if (gg_musicchan) {}
        else {
        gg_musicchan = glk_schannel_create(0); }
        glk_schannel_play_ext(gg_musicchan, k, 1, 0);
    }

Le jeu ne teste pas si l'interpréteur supporte le son !! Du coup il demande à Quixe de jouer le son, Quixe dit error et freeze. (Si vous me demandez mon avis, le fait de devoir tester si le terp supporte le son à l'intérieur du code est une erreur monstre de conception ; vaudrait mieux des soft/silent fail chez les interpréteurs...)

Bref, le fix est tout con :
Code: Tout sélectionner
    if (glk_gestalt(gestalt_Sound, 0) && modesonore == 1) {
        if (gg_musicchan) {}
        else {
        gg_musicchan = glk_schannel_create(0); }
        glk_schannel_play_ext(gg_musicchan, k, 1, 0);
    }


Sauf que : j'ai perdu mes identifiants SVN, et de toute façon je ne sais pas où sont les images et les sons correspondants (pas sur le dépôt...). Est-ce que quelqu'un sait ? Et est-ce que ce même quelqu'un pourrait nous rendre un fier service et rajouter ce "glk_gestalt" dans la routine "[ Joue k ;", puis recompiler et nous dire ?

Parce que si on change juste ce petit détail, on a une version de Lieux Communs qui est jouable dans un navigateur, on peut en faire la pub un peu partout en espérant ramener des lovecraftiens, etc. etc. Bref ça serait cool !
(Je dis pas qu'il faille bêta-tester/corriger Lieux Communs, mais pour 10 minutes de boulot on a un jeu qui en jette jouable en ligne :D )

Et pour ceux qui me rétorquent qu'on peut jouer en ligne avec l'applet java, mon navigateur (et je pense pas être le seul) dit que la version de l'applet est trop vieille et qu'il lui fait pas confiance (parce que Java est bourré de bugs/failles de sécurité, donc pour éviter que des petits malins s'en servent pour hacker ils désactivent).

(Et je vais demander à JB si il se sent le courage de faire pareil ^^)
Mule hollandaise
Grand Ancien
 
Messages: 1056
Inscription: Mar Aoû 29, 2006 10:57 pm

Re: Quixe (et Lieux Communs)

Messagepar Mule hollandaise le Ven Mai 22, 2015 10:18 pm

Re !

Bon, ça n'a pas pris 10 minutes......... grmbl les subtilités du blorb, les incompatibilités d'outils, etc., etc.

La bonne nouvelle, c'est que Lieux Communs est désormais jouable dans un navigateur :D :D :D

Attention par contre, il manque la musique dans le nouveau fichier .blb (mais pas grave pour Quixe) ; j'ai pas trouvé comment faire pour que les outils reconnaissent les fichiers .ogg... quelqu'un se souvient comment on fait ?

Si un jour vous vous posez la question de comment j'ai fait pour extraire les ressources puis tout recompiler, la recette de cuisine est en spoilers
Spoiler ! :
Nécessite : les outils de L. Ross Raszewski (surtout bres), gblorb.ulx, le fichier glulxe du jeu, son code source.
Blorb c'est le format pour paqueter des images et du son avec un jeu Glulx : c'est du paquetage, pas de la compilation, alors les images et les sons sont récupérables sans souci. Par contre, si vous n'avez plus le code source, c'est perdu - la dé-compilation ne marche jamais à 100% donc vous n'arriverez jamais à retrouver le code d'origine à partir du fichier de jeu.

Tout d'abord, extraire les fichiers du Blorb avec la fonction "extract" de gblorb.ulx. (Laisser gblorb.ulx ouvert)

Ensuite, il faut ré-écrire le fichier .bli, dont le jeu a besoin pour compiler. Pour cela, écrire le fichier .res. Un fichier .res est de la forme
CODE foo.z5
PICTURE White_House C:\MyPic.png
SOUND Theme_Song C:\Music\theme.mod
SOUND Bang C:\Music\Bang.aif
PICTURE Plover_Egg C:\Pictures\Nature\plover.jpg

Donc il faut écrire des lignes du genre PICTURE <nomdelaressource> <nomdufichier>. Pour Lieux Communs c'était genre "PICTURE res3 PIC3". Cette étape est super relou.

Ensuite, lancer bres, l'outil de L.R.R., en lui donnant le nom de votre fichier .res : si c'est monjeu.res, vous tapez en ligne de commande "bres monjeu". Vous obtenez un .bli et un .blc.

Le .bli c'est celui dont vous avez besoin dans le code ! Modifiez l'include pour que ça marche. Puis lancez le compilo (en n'oubliant pas le -G et tout) et vous obtenez un fichier, genre cpb.ulx pour LieuxCommuns.

La dernière étape est super relou aussi : il faut réécrire le fichier SPEC que gblorb.ulx a craché lors du dépaquetage afin que les numéros des ressources correspondent aux numéros attribués par bres ; donc ouvrez le .bli et SPEC en parallèle et modifiez SPEC en conséquence.
Toute dernière étape : remplacez STORY0 par votre fichier .ulx que le compilo vous a donné (gardez le nom STORY0, c'est plus simple).

Puis lancez gblorb.ulx, faites "load" et donnez-lui SPEC, et ensuite "create" vous donne le bon fichier !

Si quelqu'un trouve un moyen d'automatiser ça avec un script ou de faire plus simple, qu'il me le dise :)

Je vais essayer de nettoyer tout ça et de faire un repo propre sur BitBucket, pour avoir au moins un repo qui compile Lieux Communs avec toutes les images et tout... On sait jamais x)

Ah oui et du coup, ça serait peut-être mieux de l'avoir sur le site (plutôt que sur le mien). Il suffit juste de télécharger ce fichier et de le décompresser dans un répertoire sur le site. Dites-moi si vous le faites, que j'en fasse la pub :)

EDIT: merci Stormi pour le signalement d'un bug - il fallait aussi rajouter un test dans Musique (cpb.inf) et dans les verbes de musique (cpb_verbes.inf). Normalement, là, ça devrait marcher :D
Mule hollandaise
Grand Ancien
 
Messages: 1056
Inscription: Mar Aoû 29, 2006 10:57 pm

Re: Quixe (et Lieux Communs)

Messagepar Mule hollandaise le Dim Mai 24, 2015 3:01 pm

J'ai bataillé un peu plus pour mettre en place le jeu en mode "déblorbé", c'est à dire sans avoir besoin de télécharger les 14Mo d'un coup ; le jeu télécharge maintenant les images au fur et à mesure. (Ca prend genre une demi-seconde la première fois qu'on charge l'image, c'est tout - plutôt que de faire attendre le joueur quelques minutes au tout début...)

Le jeu est toujours là, et le .zip pour le mettre sur le site ici.

Bonne nouvelle aussi : j'ai réussi à faire tourner Ekphrasis :)
Mule hollandaise
Grand Ancien
 
Messages: 1056
Inscription: Mar Aoû 29, 2006 10:57 pm

Re: Quixe (et Lieux Communs)

Messagepar Natrium le Dim Mai 24, 2015 3:46 pm

J'avoue que ça rend plutôt bien !

On peut aussi avoir des instructions pour le mode déblorbé ? :)

Même si j'avoue que je préfère le tourner en local (pas de latence, plus de contrôle sur la typographie).
Avatar de l’utilisateur
Natrium
Grand Ancien
 
Messages: 939
Inscription: Mar Oct 04, 2011 11:18 pm

Re: Quixe (et Lieux Communs)

Messagepar Mule hollandaise le Dim Mai 24, 2015 4:15 pm

Ah oui, pardon ! (Je les ai mises sur intfiction mais j'ai oublié de les mettre ici.)

  • télécharger blorbtool.py (site de zarf) et le jeu blorbé. On va dire que blorbtool.py est à la racine, et le jeu blorbé (yourgame.blb) dans 'stories'
  • faire un répertoire vide (genre stories/yourgame/)
  • lancer la commande
    Code: Tout sélectionner
    python blorbtool.py stories/yourgame.blb giload stories/yourgame stories/yourgame/

    ce qui aura pour effet de dépaqueter les images, générer un fichier .ulx.js (nécessaire pour play.html), et remplir le ficher "resourcemap.js" qui dit à Quixe où sont les images (et leur numéro et leur taille).
  • modifier play.html : remplacer
    Code: Tout sélectionner
        <script type="text/javascript">
        game_options = {
          use_query_story: false,
          set_page_title: true
        };
        </script>

        <script src="stories/glulxercise.ulx.js" type="text/javascript"></script>

    par
    Code: Tout sélectionner
        <script src="stories/yourgame/resourcemap.js" type="text/javascript"></script>

        <script type="text/javascript">
        game_options = {
          image_info_map: 'StaticImageInfo',  // image data is here, not in blorb
          use_query_story: false,
          set_page_title: true
        };
        </script>

        <script src="stories/yourgame/game.ulx.js" type="text/javascript"></script>
  • y'a plus qu'à lancer play.html!

Que veux-tu dire par "en local", genre "play-remote.html?story=truc&enter=Play it!" ? Ou "python tools/game2js.py" ? Et comment tu modifies la typographie ?
C'est vrai qu'il n'y a aucune latence pour les images si tout est chargé dans le browser au début, mais si le fichier est gros ça marchera pas. Ekphrasis n'a jamais réussi à loader, et Lieux Communs prenait une vingtaine de secondes sur un ordi avec la fibre... (Je sais pas ce qui est préférable, avoir un petit delay de temps en temps ou faire attendre le joueur au début ?)
Mule hollandaise
Grand Ancien
 
Messages: 1056
Inscription: Mar Aoû 29, 2006 10:57 pm

Re: Quixe (et Lieux Communs)

Messagepar Natrium le Dim Mai 24, 2015 4:25 pm

Pardon, quand je disais en local, je voulais dire : je télécharge le fichier .blb ou .gblorb, puis je le lance dans Zoom ou Gargoyle. Là je peux changer la police, la taille, etc.
Avatar de l’utilisateur
Natrium
Grand Ancien
 
Messages: 939
Inscription: Mar Oct 04, 2011 11:18 pm

Re: Quixe (et Lieux Communs)

Messagepar Mule hollandaise le Dim Mai 24, 2015 5:00 pm

Aaah, pardon ! ^^
Oui, je préfère moi aussi, j'avoue - mais qui sait, c'est user-friendly alors ça rameutera peut-être des nouveaux joueurs :)
Mule hollandaise
Grand Ancien
 
Messages: 1056
Inscription: Mar Aoû 29, 2006 10:57 pm

Re: Quixe (et Lieux Communs)

Messagepar Natrium le Dim Mai 24, 2015 10:04 pm

Oui c'est sûr. J'ai quelques gros projets de FI (peut-être qu'un jour je pourrai les commencer…), alors je garde un œil sur ça, parce que ça reste quand même plus facile pour l'utilisateur.

Manque plus que les sons (sinon pour Noir d'encre, c'est pas la peine) !
Avatar de l’utilisateur
Natrium
Grand Ancien
 
Messages: 939
Inscription: Mar Oct 04, 2011 11:18 pm

Re: Quixe (et Lieux Communs)

Messagepar Otto Grimwald le Lun Mai 25, 2015 10:01 pm

bravo, ça rend bien (sur grand écran). À l'époque j'avais (on avait ?) regardé pour faire une version de lieux communs avec les images qui se redimensionnent selon la taille d'écran, mais je ne me souviens plus si ça fonctionnait ou si c'était juste une vaine tentative.

Dommage pour les musiques (le compositeur va sans doute s'en offusquer ;) ) mais ça viendra peut-être avec une prochaine version de quixe.

Pour le coup du plantage ça doit être parce que c'est du inform 6, avec Inform 7 ça indique juste qu'il y a de la musique à cet emplacement, mais ça a été prévu de base. Après, c'est vrai que ça aurait pu être amélioré.

J'ai mis quelques jeux de notre site avec quixe (au moins celui-ci : http://ifiction.free.fr/quixe/play-remo ... er=Play+it! mais ça charge tout sans utiliser l'astuce qui va bien présentée plus haut)

Avatar de l’utilisateur
Otto Grimwald
Très Ancien
 
Messages: 3013
Inscription: Mar Aoû 24, 2004 12:02 pm

Re: Quixe (et Lieux Communs)

Messagepar Mule hollandaise le Lun Mai 25, 2015 11:59 pm

Merci!
Oui, pour le redimensionnement des images, il me semble que la plupart du code est en commentaires (gwin_image_draw_auto et tout), alors je crois pas que c'était implanté. Dommage :/ c'est à peine trop grand pour mon écran, mais pas de beaucoup.

Dommage en effet pour les musiques, ça mettait une ambiance :) Mais je sais pas à quel point c'est une priorité pour Zarf (déjà, ça n'est pas lui qui a écrit le code pour les graphismes, alors pour les sons, dur à dire si ça viendra bientôt ou pas...) Ca serait bien, qu'on puisse avoir Lieux Communs, Les Heures du Vent, Ekphrasis, Noir d'Encre, et les autres, à 100% de leur contenu ! :)

Cool, merci pour les jeux en Quixe sur notre site :) (Pour Lieux Communs, [url=hlabrande.fr/if/hosted/lieuxcommuns.zip]voilà le zip[/url] avec tout bien fait et décompressé.)
Mule hollandaise
Grand Ancien
 
Messages: 1056
Inscription: Mar Aoû 29, 2006 10:57 pm

Re: Quixe (et Lieux Communs)

Messagepar auraes le Dim Aoû 16, 2015 6:43 pm

http://eblong.com/zarf/glulx/quixe/quixe/play-remote-onecol.html?story=stories/Advent.ulx.js
On peut utiliser Quixe avec du code I6 !? Ça rend vraiment bien, ça semble plus intéressant que Parchment.
If you're not using Inform 7 at all
If you aren't using Inform 7, you can still use this facility. Write a one-line Inform 7 game called "Game". Set the "Story File Format" to Glulx, and release it.

Now replace the Game.gblorb file in the release directory with your own game file. Also adjust the game title and author references in the release directory.

Finally, use the game2js.py script to replace the encoded game file:

python game2js.py --giload Game.gblorb > interpreter/Game.gblorb.js
Bon, reste plus qu'à déchiffrer tout ça...

***udpate***
Ok, facile... ça fonctionne.
Avatar de l’utilisateur
auraes
Grand Ancien
 
Messages: 317
Inscription: Ven Avr 11, 2008 9:15 pm

Re: Quixe (et Lieux Communs)

Messagepar Otto Grimwald le Lun Aoû 17, 2015 9:34 pm

On peut utiliser Quixe avec du code I6 !?


bien sûr, Quixe = interpréteur glulx, parchment = interpréteur zcode (je préfère parchment perso au niveau du rendu)

Avatar de l’utilisateur
Otto Grimwald
Très Ancien
 
Messages: 3013
Inscription: Mar Aoû 24, 2004 12:02 pm

Re: Quixe (et Lieux Communs)

Messagepar auraes le Mar Aoû 18, 2015 1:48 pm

Je n'ai pas compris pourquoi il évoque Inform 7.
Otto Grimwald a écrit:je préfère parchment perso au niveau du rendu
Sur une colonne, c'est plutôt sympathique ; et pour les jeux de Mule, il me semble que Quixe supporte les temporisations. J'aurais bien aimé obtenir le même rendu — sur une colonne avec Header, Footer (figé en bas de l'écran) et colonnes à droite et à gauche, avec Parchement mais je n'y suis pas arrivé.
Avatar de l’utilisateur
auraes
Grand Ancien
 
Messages: 317
Inscription: Ven Avr 11, 2008 9:15 pm

Re: Quixe (et Lieux Communs)

Messagepar Mule hollandaise le Jeu Aoû 20, 2015 1:16 am

auraes a écrit:Je n'ai pas compris pourquoi il évoque Inform 7.

Je crois que c'est parce que si tu écris "Release along with interpreter" pour un jeu I7, l'IDE te génère automatiquement ce qu'il faut pour avoir un .html avec Quixe qui lit ton jeu.

auraes a écrit: pour les jeux de Mule, il me semble que Quixe supporte les temporisations

Oh tiens, je n'y avais pas pensé : je pourrais recompiler mes jeux avec le flag -G pour avoir des .ulx et les mettre dans Quixe, pour que les gens puissent y jouer sur mon site. Ah oui mais le problème alors c'est les équivalents de gras/italique/police non-proportionnelle, qui marchent assez mal sous Glulx... en tout cas mon extension EffetsDeTexte a des petits ratés, et Glulx est moins flexible que la Z-Machine pour ça. Mmmh... à réfléchir :)
Mule hollandaise
Grand Ancien
 
Messages: 1056
Inscription: Mar Aoû 29, 2006 10:57 pm

Re: Quixe (et Lieux Communs)

Messagepar auraes le Jeu Aoû 20, 2015 9:19 am

Mule hollandaise a écrit:EffetsDeTexte
Je ne sais pas si cela peut répondre à tes besoins, mais concernant ta fonction Maj(c), il y a dans parserm.h des fonctions LowerCase() et UpperCase() :
Code: Tout sélectionner
#Ifdef TARGET_ZCODE;

[ LowerCase c;    ! for ZSCII matching ISO 8859-1
   switch (c) {
     'A' to 'Z':                            c = c + 32;
     202, 204, 212, 214, 221:               c--;
     217, 218:                              c = c - 2;
     158 to 160, 167, 168, 208 to 210:      c = c - 3;
     186 to 190, 196 to 200:                c = c - 5 ;
     175 to 180:                            c = c - 6;
   }
   return c;
];

[ UpperCase c;    ! for ZSCII matching ISO 8859-1
   switch (c) {
     'a' to 'z':                            c = c - 32;
     201, 203, 211, 213, 220:               c++;
     215, 216:                              c = c + 2;
     155 to 157, 164, 165, 205 to 207:      c = c + 3;
     181 to 185, 191 to 195:                c = c + 5 ;
     169 to 174:                            c = c + 6;
   }
   return c;
];

#Ifnot; ! TARGET_GLULX

[ LowerCase c; return glk($00A0, c); ];
[ UpperCase c; return glk($00A1, c); ];

#Endif; ! TARGET_
J’avais signalé un bogue à DavidG, donc celles-là, corrigées, sont extraites de la 6/12 (déplacées dans english.h).
Avatar de l’utilisateur
auraes
Grand Ancien
 
Messages: 317
Inscription: Ven Avr 11, 2008 9:15 pm

Re: Quixe (et Lieux Communs)

Messagepar Mule hollandaise le Jeu Aoû 20, 2015 9:42 pm

Oh, je savais pas ! J'essaierai ça ce soir. Merci !
Mule hollandaise
Grand Ancien
 
Messages: 1056
Inscription: Mar Aoû 29, 2006 10:57 pm

Re: Quixe (et Lieux Communs)

Messagepar auraes le Ven Aoû 21, 2015 6:30 am

Rien à voir, mais pour ton bogue sur Mantis avec Abbreviate, sous Linux j'obtiens :
Code: Tout sélectionner
Inform 6.33N (20th August 2014)
*** stack smashing detected ***: ./inform6 terminated
Abandon (core dumped)
Avatar de l’utilisateur
auraes
Grand Ancien
 
Messages: 317
Inscription: Ven Avr 11, 2008 9:15 pm


Retourner vers Bêta-tests et créations communes

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron