Questions diverses sous GLULX et inform

Je continue l’écriture de mon jeu sous glulx pour le concours de cette année et j’aurais quelques questions diverses à vous soumettre.

1)- Au niveau de l’interface générale, je ne fait pas comme Ekphrasis ou Lieux communs : les images sont intégrées directement à la suite du texte du jeu (et non pas sur une fenêtre sur le coté). Pour afficher une image j’ai donc crée une sub que j’apelle genre

Affiche(3);

mais j’aimerai savoir comment centrer l’image où bien la mettre du coté droit de l’écran, car actuellement elle est calée sur la gauche.
(la sub contient un truc du genre glk(…) le truc normal quoi)

2)- Comment faire pour insérer des alinéas ?

3)- Et euh… je n’ai absolument pas compris comment utiliser le son, aussi bien pour la musique que les bruitages. Entre les canaux sonores, les variables (étranges), les formats à utiliser et l’appel des subs je galère !

Merci d’avance !s pour vos réponses. :slight_smile:

(Yoruk qui passe)

PS : je réserve le nom « L’île du vent » pour mon jeu :wink:

et voilà, on avait dit que cela serait anonyme, mais on n’y arrive jamais :wink: Pas grave…

Pour centrer une image, je ne sais pas, mais je serais curieux de l’apprendre !

C’est quoi que tu entends par alinéa ? On peut faire des retours à la ligne avec des ^

Pour les musiques et sons regarde ici ou compare avec le jeu lieux communs :
jlpo.free.fr/glulx.php

Navré je ne savait pas. On va dire que vous n’avez rien vu. Et à mon avis vous auriez très bien reconnu mon style de programmation (avec très peu de trucs compliqués) et mes images de synthèses… Mais navré quand même.

Par alinéa j’entends un truc de ce genre :

Bonjour je m'appelle Yoruk et je suis en train de programmer un jeu pour le concours de cette année. Ce n'est pas facile mais bon je trouve de l'aide sur ce forum.

J’avais ajouté des espaces mais ce n’est pas génial…

Et tant que j’y suis, pour le fichier BLC, les numéros d’images et de fichiers sons sont-ils indépendants ? Genre j’ai une image avec le numéro 1. Le son d’après peut-il être du numéro 1 ou 2 ?

[Edit : merci otto pour le lien. Je ne conaissais pas cette page du site de JL]

pas grave pour le truc anonyme, de toute façon on sait toujours qui sait à chaque fois. Lorsque l’on sera 50 à participer, on sera peut être plus stricts :slight_smile:

pour les ressources, je ne suis pas certain, mais je pense qu’il faut que chaque ressource ait un n° différent, même si ce sont de types différents. Tu peux mettre les numéros en 100 pour les images, les numéros en 200 pour les sons, comme cela cela laisse de la marge.

Et je ne pense pas qu’il soit possible de faire des indentations comme tu le demandes…

Euh… je me pose 2-3 petites questions au niveau de l’écriture en général et j’aurai aimé avoir vos opinions : (on va organiser ça sous forme de sondage)

Pour l’écriture vous préférez…
-Ecrire d’abord tout sur papier et ensuite passer sur ordinateur
-Tout écrire directement sur ordinateur

Au niveau programmation:
-Vous programmez tout vos lieux, objets et personnages et ensuite vous programmez les divers « effets » (les befores et after… la programmation en plus quoi)
-Vous tapez le code de votre lieu/de votre objet et vous programmez directement tout les effets qui y sont liés.

Pour ceux qui bossent sous glulx:
-Vous dessinez vos illustrations et mixez vos sons au fur et à mesure de la programmation de la source
-Vous faites toutes les images et sons en post-production

Vous programmez en:
-Inform
-TADS
-Hugo
-Livrant
-Adrift
-Autre (précisez)

Et la question qui n’a pas trop de rapport mais qui termine bien ce sondage :
-Pourquoi programmez vous des fictions interactives et pas autre chose ?

Voilà merci d’avoir apporté 2 mins de votre temps à répondre à ceci…:slight_smile:

Sérieusement j’aimerais bien avoir l’avis de 2-3 personnes… :wink:

Hello,

Réponses au post :

Concernant l’écriture, je fais tout d’abord dans ma tête, c’est à dire : le concept, l’histoire, les personnages, les répliques sympas, les scènes marquantes, et même quelques énigmes bien cool.

Ensuite j’attaque direct le code en reprenant un code précédent. Ce n’est qu’exceptionnellement dans des passages très difficiles que j’ai recours au crayon (par exemple dans les égouts de varsovie) mais même là j’ai tendance à faire dans le code source un petit dessin en ascii.

Concernant la programmation, il est important je pense de tout faire de front, c’est à dire : lieux, perso, images, sons et énigmes au fur et à mesure que le travail avance, même si c’est beaucoup plus rapide en général de se taper 100 lieux d’un coup. L’interêt de progresser comme cela c’est qu’à chaque compilation on est proche d’un jeu inachevé, ce qui est trés motivant car on a de la substance dans les mains. On en est fier et c’est une bonne raison de s’y remettre le soir.
Tandis que dans l’alternative la compilation produit ni un jeu ni autre chose et c’est difficile d’imaginer pourquoi parfois on bosse…
Et la motivation est la composante ESSENTIELLE d’un projet réussi.

Je programme en Glulx / Inform 6, des fictions interactives parce que je suis pas assez bon pour faire des jeux AGS :slight_smile:

JB

Bonnes questions…

je pense que la méthode la plus « professionnelle » est de faire :

-Ecrire d’abord tout sur papier et ensuite passer sur ordinateur
-Vous tapez le code de votre lieu/de votre objet et vous programmez directement tout les effets qui y sont liés.
-Vous faites toutes les images et sons en post-production

(j’imagine que Infocom, Legend, Magnetic Scrolls faisait plutôt dans ce style là)

Mais pour ma part je suis plutôt :

-Tout écrire directement sur ordinateur
-Vous tapez le code de votre lieu/de votre objet et vous programmez directement tout les effets qui y sont liés.
-Vous dessinez vos illustrations et mixez vos sons au fur et à mesure de la programmation de la source

en fait c’est un peu un mix des deux, mais je défini plutôt une trame générale de l’histoire, soit dans ma tête, puis dans quelques notes rapides pour m’en souvenir, soit sur un papier je note des plans et la trame générale, puis je code l’histoire en brodant dessus. Pour moi, je trouve que cela me démotive assez rapidement, je suis facilement agacé par 2 ou 3 trucs qui me prennent tout mon temps à implémenter, et ensuite cela me dégoûte pour la soirée de continuer l’écriture…
Apparemment JB s’en sort mieux que moi, et sa méthode de travail me semble efficace !

Il doit également être possible de faire cela :

-Vous programmez tout vos lieux, objets et personnages et ensuite vous programmez les divers « effets » (les befores et after… la programmation en plus quoi)

cela me semble intéressant, mais comme disait JB, on n’a pas de jeu en cours et on ne voit pas trop ce que l’on fait, aussi cela peut être démotivant. Pour le jeu qu’à réalisé ma femme, dans un premier temps elle avait réalisé un long « transcript » de ce qu’elle voulait qui arrive, avec les descriptions, les personnages etc. Avec Inform 7 j’ai tout codé, et cela a été étonnament rapide à faire, donc je pense que cela doit être une bonne méthode. Mais ceci n’était qu’une petite partie du jeu, et pour la suite elle a appris la programmation Inform 7 et à tout codé au fur et à mesure, et je pense qu’elle a été un peu démotivée comme j’ai pu l’expliquer plus haut pour moi. Mais elle a quand même réussi à terminer son jeu :slight_smile:

Pour la partie :

Vous programmez en:
-Inform : 6 et 7, cela me semble le plus logique.
-TADS : n’existe pas en français autrement qu’en ébauche
-Hugo : semble puissant, j’ai voulu le traduire en français, mais c’était un travail énorme.
-Livrant : système sympa, j’ai débuté un jeu avec, mais l’ai refait en inform 7
-Adrift : je n’aime pas le système adrift, car il n’y a pas de code source, c’est seulement binaire. La seule chose intéressante, c’est qu’il permet de proposer de taper des phrases telle quelles, si on est certain que le joueur aura à taper cela et que c’est logique, cela permet de faire en 2 minutes ce qu’il aurait fallu bidouiller en très longtemps avec inform

Tu n’as pas parlé de Quest, qui est un système intéressant aussi (j’ai commencé un jeu avec), assez limité, mais qui permet également d’entrer des constructions de phrases toutes faites. Le problème c’est que des débutants en abusaient un peu.

Merci pour vos réponses…

Effectivement je n’ai pas parlé de Quest… si on parle du même système j’avais utilisé il y a quelques années un programme Quest qui comprenait un éditeur pas trop mal réalisé. Tout était en anglais mais je me souviens que le compilateur était payant… :confused: Mais le kit comprenait une sorte d’interpréteur qui lisait le code source donné par l’éditeur… mais je n’avait pas trop accroché à l’époque, c’est pourquoi j’avais développé mon propre système editeur-interpréteur sous Qbasic (c’était le bon temps… :slight_smile: C’est d’ailleurs avec ce système que j’avais réalisé la première version d’Interra…)

C’est pas évident de trouver la force. En fait, souvent je suis dégouté avant même de m’y mettre, je fais la technique de la « locomotive » : je SAIS que si je fais un tout petit object, au pire j’aurais avancé, au mieux j’aurais envie de poursuivre, et généralement comme c’est assez stimulant, je poursuis pendant une heure.

Donc je me force à faire 1 object (ou écrire 10 lignes de texte, c’est selon :slight_smile: ) et parfois rien que ca ca prend une heure entière, parce que je regarde mes mails, je regarde la tv…etc… mais la machine est lancée et le reste suit bientôt.

Après, il y a un contexte (besoin de reconnaissance, besoin de s’exprimer, vie morne…) qui poussent à s’abstraire dans ce type de création.

Enfin, il faut aussi resister aux sirènes : bien sûr, rien ne vous empeche de faire un jeu vidéo en marge de projet créatif, au contraire, mais il ne faut pas en entamer un « juste pour voir ».

Généralement, ca ne manque pas, cela sonne le glas pour toujours de votre projet en cours, car le temps que vous y reveniez, vous aurez tant changé de disposition d’esprit qu’il faudra tout reprendre à 0.

JB

Je réponds moi aussi au post de Yoruk…

Pour la programmation, j’écris en général rien sur le papier, je garde les idées dans la tête, je m’écris une bribe sur l’ordinateur, puis je commence, lentement…

Je préfère coder les objets en rajoutant les effets après, parce qu’en général je ne sais pas quels effets je mets ; j’ai en général quelques idées, mais ça vient parfois en cours de route, alors que je fais autre chose…

J’expérimente en ce moment le « mock transcript » : faire la « transcription idéale » du jeu avant de le coder. J’avoue trouver ça très chouette, parce que ça permet de se concentrer uniquement sur l’écriture ; seul point négatif pour moi, il faut envisager les réponses possibles pour chaque objet, et ça peut prendre du temps…

Et pour la programmation, pour moi, c’est inform 6.

Voilà voilà…

Au niveau de l’interface de lieux communs et d’ekphrasis, les images affichées à gauche sont elles redimentionnées en fonction de la résolution ? L’affichage est-il indentique avec un affichage 800x600 où un affichage 1800x1024 ?

non malheureusement, la résolution est minimum 1024 x 768, il devrait y avoir un moyen d’adapter les images en fonction de la résolution, mais cela ne semble pas très évident à faire.

Euh… dans la source de lieux communs j’ai pas été f****u de trouver la sub qui gère la double fenêtre graphiques-textes…

Et comment fait-on pour superposer 2 images ? (genre celle avec la sorcière)

Hello

  1. les fenetres sont splittées dès l’initialize

  2. il est par ailleurs possible de les fusionner pour afficher une cutscène en plein écran (ce qui arrive parfois dans Ekphrasis).

  3. Pour superposer deux images, c’est très simple, tu en affiches une et ensuite l’autre. Evidemment, il faut que la 2ème ait des endroits transparents si tu veux voir ce qu’il y a derrière !

JB

ps : attention, créer en split screen implique des contraintes lors de la gestion de la sauvegarde / chargement.

Aahhh tu peux m’en dire plus ?

C’est pas trés compliqué. Je te conseille de faire ton jeu en split screen comme tu l’avais prévu. Lorsque tu le testeras, tu auras un pb de sauvegarde/restoration. Alors on te donnera les lignes de code à ajouter et ca marchera.

JB

Et d’après les problèmes qu’on avait eu dans « Lieux communs », il y a aussi des risques de bugs quand on fait « recommencer », non ? Ou est-ce que ça n’a rien à voir ?

Ok je cherche cette fameuse fonction à rajouter dans initialise et je vous tiens au courant…

Et en ce qui concerne la transparence, moi j’utilise le jpg pour mes images mais à ma connaissance seul le GIF gère la transparence… Comment puis-je faire ?

Et tant qu’on cause de gif, glulx gère t-il les gif animés ?

je rappelle également que j’avais fait ce petit kit pour démarrer la création d’un jeu avec glulx / inform 6 :

ifiction.free.fr/fichiers/inform … butant.zip

cela fait déjà un écran séparé en deux.

Par contre je ne crois pas que cela gère la sauvegarde. Je vais vérifier.
(apparemment c’est bon, mais vu qu’il n’y a qu’une image ce n’est pas gagné)

Bon j’ai pas réussi à compiler la source du kit de démarrage d’otto… je vais revoir cela.

J’ai passé ma soirée d’hier à faire du copier-coller à partir de la source de lieux communs, et après pas mal de tatonnements, je n’avait plus qu’une seule erreur de compilation…

alors voilà la tête de ma source (extraits)

le début:

[code]!Constant GG_MAPWIN_ROCK 210; !lieux Communs

!MISE EN PAGE A VOIR
!recup interface lieux communs

Include « Parser »;

Include « VerbLib »;
Include « infglk »;
Include « FrenchG »;

!Lieux Communs

[InitGlkWindow winrock; !*
switch (winrock) {
GG_STATUSWIN_ROCK: rtrue;
}
rfalse;
];[/code]

Extrait de la sub initialise

[code]

Pause();

!tests lieux communs

glk_window_clear(gg_mainwin);
glk_image_draw(gg_mainwin,3,0,0);
!gwin_image_draw_auto(13,13,13,gg_mainwin,3,3,3);
attend();
glk_window_clear(gg_mainwin);
gg_mapwin = glk_window_open(gg_mainwin,
(winmethod_Left+winmethod_Fixed),500,
wintype_Graphics, GG_MAPWIN_ROCK);

!fin tests[/code]

et enfin la sub qui est sencée afficher une image… (située a la toute fin du fichier inf)


!TEST D'AFFICHAGE EN MULTI screen


[Affiche k;
    #ifdef TARGET_ZCODE;
    k=0; !pour retirer le warning de compilation
    #ifnot; ! TARGET_GLULX;
        if (modeimages == 1 || modeimages == 2)
            { if (gg_mapwin) {} 
                else {
                    gg_mapwin = glk_window_open(gg_mainwin, (winmethod_Left+winmethod_Fixed),500, wintype_Graphics, GG_MAPWIN_ROCK); }
                    image_actuelle = k; 
                    glk_image_draw(gg_mapwin,k, 0, 0);
                    if (sepia == 1)
                        {glk_image_draw(gg_mapwin,100, 0, 0);} ! pour image sepia
                    if (modeimages == 2)
                        {glk_image_draw(gg_mapwin,110, 0, 0) ; glk_image_draw(gg_mapwin,120, 0, 0) ;} ! banniere + sep
        }
    #endif; ! TARGET_
]; 

et enfin l’erreur :

(a la ligne marquée d’un *)

Voila voila… je sais pas trop ce qui pose problème… je vais chercher avec la source d’otto qui me semble moins compliquée…