Fenêtres et temps réel VS accessibilité et confort de jeu ?

Dans un de mes projets en cours, je suis en train d’expérimenter avec le temps réel et des fenêtres multiples, et j’aimerais savoir votre avis sur la question : est-ce que vous trouvez que ça nuit au confort de jeu ?

Je sais que Life On Mars a eu des critiques pour ça (aussi bien du côté anglophone que francophone). Est-ce que cela vous a dérangé ?
Personnellement, ce qui m’a surtout embêté, c’est le fait que du texte n’apparaît qu’une seule fois, et qu’il disparaît avant qu’on puisse le lire si on aime prendre son temps.

Et encore, Life On Mars ne fait qu’utiliser des pauses dans le texte ; mon projet, même s’il ne fera pas des choses comme tuer le joueur s’il ne tape pas ses commandes assez vite, utilisera le temps de manière beaucoup plus intensive (détails plus bas).

Et du côté accessibilité, est-ce que l’un de vous sait si c’est très gênant ? J’imagine que ça doit être hyper-frustrant quand le logiciel de synthèse vocale n’a pas le temps de finir de lire que le texte disparaît. Un malvoyant ne comprendrait pas trop ce qu’il se passe.

En fait, je pense que Life On Mars n’est pas accessible du tout, par exemple quand la protagoniste écrit le mail et efface des mots. Il me semble que l’écran s’efface à chaque fois pour réafficher le même texte avec un caractère en moins, donc je suppose qu’une synthèse vocale recommencerait la lecture depuis le début à chaque fois.

Alors, est-ce que vous trouvez que ça vaut le coup de sacrifier l’accessibilité pour un jeu s’il est rendu meilleur par une bonne exploitation du temps réel ?

Pour ce qui est des fenêtres multiples, je sais que ça peut être gênant pour les petits écrans, mais je me demandais surtout comment la synthèse vocale gérait ça : possibilité de lire les fenêtres autres que la principale ; si oui, dans quel ordre les fenêtres sont lues ; et si une fenêtre se met à jour, sa lecture débute-t-elle automatiquement ?
Peut-être préférez-vous que les fenêtres additionnelles soient facultatives (style l’inventaire) et qu’il soit possible de les fermer ?

Pour ceux qui sont intéressés, voici plus en détail ce que mon jeu fait. Passez votre chemin si vous ne voulez pas savoir pour garder la surprise (tant est qu’on puisse considérer ça comme surprenant). Aussi, cette FI sera peut-être au concours si j’ai le temps de bien l’avancer, mais comme la règle de l’anonymat est supposée avoir été supprimée, ça ne doit pas poser problème (si je vois que je n’aurai pas le temps de finir, je passerai à un autre projet plus court). Attention, pavé !
[spoiler]Le temps du jeu avance en temps réel. Par exemple, l’horloge du jeu avance de 1 minute toute les 3 secondes réelles (valeurs complétement bidons, je dois toujours déterminer celles qui sont les plus adaptées pour le jeu).

Du coup, les personnages vont et viennent en permanence, ramassent des objets, discutent entre eux en temps réel, même si le joueur ne tape rien et qu’aucun tour ne passe en tant que tel. Dans mes premiers tests et prototypes, je trouve que ça le fait vraiment bien, on a l’impression que le monde est vivant ; il ne reste plus qu’à savoir si ça rend véritablement le jeu plus intéressant, ou si au final ça n’apporte pas grand-chose.

Pour que le jeu soit adapté au maximum de personnes, une commande existe pour modifier le facteur de temps : les joueurs qui tapent lentement pourront augmenter le nombre de secondes qu’il faut pour faire passer une minute dans le jeu (ou l’inverse pour les joueurs impatients). Il y a aussi une commande pour mettre le jeu en pause. Il est également possible pour le joueur de taper « attendre 3 heures », et trois heures passeront d’un coup, s’il ne veut pas attendre en vrai temps.

L’interface est comme suit :

  • La fenêtre principale, qui contient le prompt et les réponses aux actions du joueur ;
  • Une fenêtre qui affiche les changements qui arrivent en temps réel (comme « Monsieur Tartempion prend la pomme. Monsieur Tartempion mange la pomme. Madame Machin arrive du nord. Monsieur Tartempion salue madame Machin », avec plusieurs secondes qui s’écoulent entre chaque phrase). Cette fenêtre est obligatoire pour ne pas interférer avec le prompt dans la fenêtre principale. Cette fenêtre s’efface à chaque changement d’endroit, pour ne pas avoir trop de texte et ne pas embrouiller le joueur ;
  • Une fenêtre qui affiche la description du lieu. Elle n’est pas strictement obligatoire mais utile pour que le joueur puisse voir ce qui est disponible à un temps donné. Quand monsieur Tartempion prend la pomme ou si madame Machin repart, le joueur voit instantanément que ces objets ont disparu de la description de l’endroit.

Pour ce qui est des dialogues, voici mon idée : une autre fenêtre s’ouvre (au passage, celle de la description de l’endroit est temporairement fermée pour ne pas prendre trop de place) quand on parle à quelqu’un, puis le(s) personne(s) parle(nt) en temps réel dans cette fenêtre, donc il y a des pauses entre les phrases et les répliques.

Une liste de sujets qu’il est possible d’aborder est aussi affichée, et le joueur peut à tout moment interrompre l’interlocuteur pour lui répondre ou lui demander quelque chose ; l’interlocuteur réagit en conséquence. J’ai même pensé à afficher les répliques caractère par caractère, comme ça on a vraiment l’impression de couper la parole à la personne si on décide de le faire, mais je ne suis pas sûr que ce serait pratique et agréable à lire.

Bien sûr, le monde continue d’évoluer pendant le dialogue, donc c’est au joueur de surveiller ce qu’il se passe en même temps, dans la fenêtre qui affiche les événements en temps réel (c’est comme dans la vraie vie : si on est captivé par les paroles de quelqu’un, on ne remarque pas forcément ce qu’il se passe autour de nous, on n’entend pas forcément quelqu’un arriver ; et si on est concentré par ce qu’il y a autour de nous, on ne suit plus forcément la conversation).

Ce système de dialogue est quand même ultra-ambitieux, alors je ne sais pas si j’aurai le temps de l’implémenter pour le concours (auquel cas je le remplacerai par quelque chose de plus simple), mais c’est quelque chose que j’aimerais vraiment essayer de faire à terme.

Je vois quand même des problèmes. Si le joueur tape lentement, il ne pourrait peut-être pas réagir à temps aux questions de son interlocuteur. On pourrait rendre les suggestions de sujet cliquables, mais ça force à passer du clavier à la souris, et en plus tous les sujets possibles ne sont pas forcément affichés, pour laisser un peu de liberté et d’investigation au joueur. Et enfin, si ça se trouve, ce système est tout simplement agaçant et pas amusant, à voir.

Voilà ! Si vous avez lu, dites-moi ce que vous en pensez (bonne idée, mauvaise idée) et ce qu’il faudrait changer pour rendre le système meilleur ou plus accessible.

Pour ceux qui se posent la question, j’ai déjà un prototype qui fonctionne (les personnes font des actions toutes seules en temps réel, mais sans IA, tout est scripté pour l’instant). Je compte faire deux extensions, une pour le temps qui passe et une pour les dialogues en temps réel, mais si quelqu’un veut tester un prototype, je pourrai en avoir un plus complet d’ici quelques jours (n’oubliez quand même pas que c’est censé être pour la comp, donc vous pouvez aussi attendre).[/spoiler]
Merci pour vos réponses ! :slight_smile:

Je crois que tu as raison malheureusement… (Eh oui, faire des effets visuels, c’est pas super pour les mal-voyants… :/)
En fait je crois que c’est pire que l’exemple que tu cites : est-ce que le logiciel de synthèse vocale est suffisamment malin pour attendre que les emails aient fini de s’afficher ? (je pense pas ; j’imagine qu’un tel logiciel lit la chose qui vient de s’afficher (mais je me trompe peut-être), donc si t’affiche un truc 1 seconde après la description peut-être que le logiciel s’interrompt et va lire le truc qui vient de s’afficher) Et comment est-ce que le logiciel lit les deux colonnes de texte ? (sans doute en mélangeant les deux, ce qui pourrait être sympa si c’était 2 voix différentes mais en vrai j’imagine que ça fait gloubi-boulga :/)
Bref, je crois que j’ai dû créer la pire FI pour les non-voyants qui existe :frowning: Et donc je sais pas si je peux te répondre sur la question du « quel est le bon équilibre entre des effets temporels cool et l’accessibilité » x)

Pour les fenêtres multiples faut faire attention à bien faire ça ; Works of Fiction de JB avait des problèmes de crash à cause de ça (je sais pas si c’était la mémoire ou si il faisait des trucs sales - si c’est raison n°2, c’est peut-être mieux avec les extensions I7). Est-ce que c’est pris en charge par Quixe, aussi ? (jouer en ligne c’est pas mal aussi)
Mais pour les questions d’accessibilité j’ai jamais essayé… à voir, essaie la synthèse vocale sur Works of Fiction ?

J’ai pas lu tout ton pavé pour pas trop me spoiler x) mais le système de conversation a l’air un peu casse-gueule ; faire des NPCs vivants c’est dur, alors si tu modèles en plus des trucs comme « ça fait trop de temps que j’ai fini ma réplique et le joueur a toujours rien dit » ou « punaise il m’a coupé la parole cet imbécile »… Mais si t’y arrives c’est une super idée, ça a jamais été fait et y’a sûrement des trucs à explorer. Peut-être juste des répliques, mais dire au joueur de les dire au bon moment ? Genre si le NPC a fait une blague tu as l’option de répondre « ha ha », mais si tu dis ça après 5 secondes ça fait comme si tu te moquais de lui… bref, prendre en compte le temps/timing dans une conversation ça rajoute pas mal de subtilité et de nuance x)

Bon courage !

Je trouve l’idée excellente et suis pressé de voir ça :slight_smile:

(et de savoir comment tu fais ça, mouahaha)

Merci pour les réponses !

Pour ce qui est du système de dialogue, ce que j’ai raconté, c’est du purement théorique. Ce serait un peu mon système idéal. Genre si on pouvait parler à l’ordinateur pour lui expliquer ce que l’on voulait, et qu’il codait tout pour nous, ce serait parfait. ^^ C’est pourquoi je laisse mijoter ça un peu, je pense vraiment pas que je pourait faire un truc ultra-vivant pour la comp. Je ferai un truc plus simple, mais en essayant de faire bien quand même.

Pour les fenêtres multiples, je suis quasi-sûr que c’est pris en charge par Quixe, la preuve, il y a bien une fenêtre graphique dans Ekphrasis, et tu l’avais fait fonctionnée (une petite recherche Google me l’a confirmé, je testerai aujourd’hui).
Pour les crash, je ne pense pas que ça arrivera, parce que tout le code est dans une extension I7, alors que JB avait tout fait lui-même il me semble. Et cette extension est écrite par des gens infiniment meilleurs que moi. :slight_smile:

Et enfin, voici les étapes à suivre pour faire la même chose que moi, Azathoth :

  1. Télécharger l’extension Glulx Real Time d’Erik Temple sur GitHub ;
  2. Installer cette extension une fois le téléchargement terminé ;
  3. Lire la documentation et tester l’exemple fourni ;
  4. Se rendre compte que ça ne fonctionne pas avec 6G60 ;
  5. Télécharger 6L38, l’installer et retourner à l’étape 3.

Désolé de t’embêter avec ça. :laughing: Pour de vrai, je n’ai pas essayé avec 6G, mais je pense qu’elle n’est pas compatible avec.

Sinon, l’extension est vraiment super : on peut lancer plusieurs timers en même temps, certains pouvant se répéter un certain nombre de fois ou indéfiniment, on peut les mettre en pause, si on veut qu’une fenêtre, on peut interrompre la saisie de la commande pour afficher les messages en temps réel. Undo et les sauvegardes sont aussi pris en charge. C’est vraiment le paradis pour les gens qui veulent du temps réel dans leur FI !

Ça a l’air cool oui, mais je suis toujours en 6G60.

Je repose la question au passage, vous pensez que si j’installe le dernier Inform sur une AUTRE session, sur mon pc, les deux versions pourront coexister sans se perturber l’une l’autre ? ça me permettrait de commencer à bosser avec 6L38 pour mes autres projets.

Je pense qu’il doit être possible d’installer plusieurs versions d’Inform su la même session, le problème étant les extensions qui sont partagées (même si au pire des cas tu peux utiliser les extensions spécifiques au projet pour ceux sur 6L38). Mais si tu les installes sur 2 sessions différentes, ça devrait fonctionner, étant donné que les extensions sont stockés indépendamment pour chaque utilisateur (c’est comme ça sur Mac en tout cas).

Au pire des cas tu essaies, et si ça ne fonctionne pas, tu réinstalle 6G60 (ne pas oublier de copier quelque part tous tes projets et extensions auparavant, bien sûr).

Sinon, j’ai essayé d’utiliser l’extension pour le temps réel sur 6G60, mais ça ne semble pas fonctionner. :frowning: