[JACL] Un nouveau système pour écrire des jeux en français

Non vous ne rêvez pas, ce ne sont pas non plus des traductions inédites de Tads, mais il est possible maintenant de créer des jeux en français avec autre chose qu’Inform 6 ou Inform 7, ce qui offre de nouvelles perspectives pour les joueurs qui ne seraient pas séduits par les 2 systèmes francophones existants.

J’ai en effet traduit les bibliothèques existantes, et l’auteur (Stuart Allen), a gentiment fait les adaptions nécessaires pour que cela soit possible (passage en utf8, création de variables pour remplacer des chaînes alors codée directement en anglais dans le code originel + divers ajustements, comme la création de macro pour définir certaines terminaisons de conjugaisons, ou l’accord féminin et / ou pluriels des adjectifs)

Parmi les points forts de ce langage, citons:

  • Support dans gargoyle (pour le moment la dernière version de jacl n’est pas encore resynchronisée avec gargoyle, mais cela ne saurait tarder), ainsi que version console simple (via glk)

  • Logiciel inclus permettant de transformer son ordinateur en serveur pour faire jouer son jeu en ligne dans un navigateur (avec a priori possibilité d’inclure des images, et peut-être même du son)

  • Langage de script, pas de compilation nécessaire, et il est même possible, sous certains réserves, de débuter une partie dans le navigateur, de modifier des éléments du jeu, et de constater les modifications directement dans la partie sans la redémarrer.

  • Assez simple (pas de codage façon C d’Inform 6)

Par exemple, si on a un objet armoire :

object armoire: armoire cupboard (et autres synonymes) has CONTAINER FEMALE LOCKED CLOSED CLOSABLE short une "armoire" definite l' long "Une armoire se trouve contre le mur opposé à l'entrée de la cuisine.^" quantity 1 capacity 20 mass 120

Si on veut dire que c’est un objet nommé « clef » précédemment défini qui l’ouvre, on utilise le verbe « unlock_with », et il suffit d’accoler le nom ensuite pour créer la condition :

{unlock_with_clef write "Vous déverrouillez l'armoire avec votre clef.^" ensure armoire hasnt LOCKED }

(ensure c’est pour faire changer un attribut d’état)

  • Simple mais puissant : On peut modéliser le monde avec de nombreux paramètres et détails que l’on n’a pas de base avec Inform : par exemple, on définit les objets avec une masse, éventuellement une contenance, et un container peut contenir autant de la somme des masses d’objets que sa contenance est grande. Cela prend également en compte de nombreux cas comme : sur l’eau, en extérieur, au dessus du vide, avec des réponses appropriées.

Bref, je ne vois pas ce que font Inform et Tads et que JACL ne ferait pas. Après, on aime ou pas la syntaxe, mais sa simplicité pourra convenir à pas mal d’auteurs.

  • Il est totalement libre (licence GPL v2)

  • Réactivité et sympathie du concepteur

La version 2.7 officielle ne devrait plus trop tarder, avec les binaires associés, mais vous pouvez déjà jeter un oeil sur un jeu / exemple que j’ai fait :
jacl.game-host.org:8080/fastcgi- … _game.jacl (oui, il y a une boussole et tout et tout…)
Ici on a la version Inform pour comparer :
ifiction.free.fr/index.php?id=jeu&j=051

J’ai mis le code des bibliothèques francophones sur le svn de tuxfamily (partie « jeux »). Le code source à compiler se trouve ici : code.google.com/p/jacl/ en attendant les binaires officiels.

Il reste sans doute des erreurs et imprécisions dans ces bibliothèques, mais le résultat est mieux que ce que je pensais pouvoir faire au départ (grâce aux ajustement et à l’aide de Stuart)

Bravo pour ce travail, en tout cas ! :smiley:

Peut-être que JACL plairait à Paparequin ? Un temps, il cherchait un langage plus simple qu’Inform, et ça a l’air d’avoir plus de possibilités que Livrant, a priori.

J’ai jeté un coup d’oeil au jeu ; j’ai vu un petit problème : les directions vers la boussole sont restées en anglais (par exemple : « Vous pouvez aller au north, south ou east. »).

effectivement, et c’est pareil l’interface « point n click » qui n’est pas traduite non plus car je ne m’étais pas encore penché sur la question.

Mais je viens de trouver d’où cela vient, et une chaîne que j’hésitais à modifier, pensant que cela allait rendre le jeu injouable, pouvait finalement se traduire, donc dans la prochaine version cela sera corrigé ! Merci de ta remarque.

Tiens, je vois que JACL n’est pas mentionné sur la page « Créer des fictions interactives » de notre site, alors que même Quest l’est…

Sinon, le lien vers le jeu d’exemple que tu as donné dans le premier message de ce fil n’a plus l’air de marcher.

Et puis, y a-t-il un lien pour JACL en français en général ? Je voudrais l’ajouter au tableau de cette page IFWiki

bien vu, je le rajoute dans ma version locale, ça sera en ligne à la prochaine mise à jour.

Pour le lien, ça fait ça quand la machine de Stuart est hors-ligne. J’espère qu’il la réactivera prochainement.

Pour la page rakonto interactiva, tu peux indiquer ici, même si c’est un peu vide : ifiction.free.fr/index.php?id=jacl
(la bibliothèque francophone est intégrée au code source d’origine de jacl)

question naïve sans doute, mais, on peut également inclure de l’aléatoire comme dans Inform ?

oui :