À propos de Loreline

Loreline est développé par Jérémy Faivre, ingénieur logiciel et créateur de jeux vidéo basé à Paris. Jeux, code créatif, musique : le fil conducteur a toujours été de fabriquer des outils qui donnent vie à des idées.
Pourquoi créer un nouveau langage de script narratif ?
La création d'histoires interactives m'a toujours séduit, et mon parcours en création de jeu vidéo m'a amené à plusieurs reprises à créer des systèmes de dialogues, de l'outillage pour de la narration à embranchements, et d'autres systèmes qui racontent des histoires. J'ai notamment créé et publié des jeux vidéo avec Cyprien et Étienne Périn. Ensemble, on a aussi prototypé du jeu narratif en temps réel avec la participation de FibreTigre.
À chaque fois, les systèmes narratifs étaient faits sur mesure. Mais avec le temps, et l'ambition d'aller plus loin dans la création d'histoires interactives, le besoin d'un outil plus versatile qui ne soit pas spécifique à un seul jeu s'est imposé. Alors j'ai d'abord évalué les options existantes, comme Twine, Ink ou Yarn Spinner, pour me dire que c'était pas mal, mais pas non plus exactement ce que j'aurais voulu utiliser sur le long terme.
J'ai un historique plutôt radical lorsqu'il s'agit de s'outiller : j'ai développé un moteur de jeu open source dans son intégralité, celui-là même avec lequel on a sorti nos jeux. J'utilise aussi un langage de programmation pas très connu mais super puissant qui s'appelle Haxe, fabriqué en France 🥖. Disons que suivre les tendances, ce n'est pas ma préoccupation première* !
Alors, pour le meilleur et pour le pire, pourquoi ne pas pathologiquement récidiver en créant un outil de zéro ?
C'est comme ça que Loreline est né.
docteur: Vous êtes en train de replonger, Jérémy.
jeremy: Docteur, cette fois c'est différent, c'est narratif.
Le docteur soupire, range ses notes,
et referme la porte doucement derrière lui.
* Pas d'inquiétude, après 20 ans de développement logiciel, j'ai travaillé avec plein de technologies et langages différents : Unity, C++, Node.js, Android, iOS, React et même Flash. Faut bien vivre en société... (et d'ailleurs, Loreline est compatible avec beaucoup de ces technos !)
Ce qui a guidé la conception
Quelques choix délibérés définissent Loreline :
- L'indentation plutôt que les délimiteurs. La structure du script doit correspondre à ce qu'on voit, sans balises fermantes ni marqueurs spéciaux qui encombrent le texte.
- Les personnages comme éléments de premier plan. Les histoires centrées sur le dialogue tournent autour des personnages. Ils méritent d'être déclarés, suivis et référencés nativement dans le langage.
- Un système portable dès le départ. Loreline est écrit en Haxe et compile vers JavaScript, C#, C++, Python ou encore Lua. Il peut être branché sur n'importe quel moteur de jeu. Une seule implémentation garantit un comportement cohérent partout et des mises à jour livrées simultanément sur toutes les plateformes.
- Lisible par les autrices et auteurs, équipé pour les cas complexes. La syntaxe reste proche du langage naturel pour les cas courants, mais les variables, conditions, fonctions et imports sont là quand on en a besoin.
Une bonne odeur de café flotte dans la salle.
barista: Salut ! Comment tu vas aujourd'hui ?
choice
Je passe une excellente journée
barista: Formidable ! Le café va la rendre encore meilleure.
Besoin de caféine...
barista: N'en dis pas plus ! Laisse-moi m'en occuper.
Tu t'appelles Alex, non ?
barista.name = "Alex"
barista: Oh, je ne m'attendais pas à ce que tu t'en souviennes !
Qui utilise Loreline
Le dogfooding, c'est important. J'utilise Loreline pour le système de dialogue de mon puzzle platformer en cours de développement : Radiant Zenith, qui expose progressivement toute une trame narrative.
En rendant l'outil disponible et en créant ce site, j'espère inciter créatrices et créateurs de jeux vidéo, d'histoires interactives, à essayer Loreline, voire à l'adopter pour leurs futurs projets. Ça se fera sans doute progressivement !
Loreline vient tout juste d'être rendu public. Si vous l'utilisez dans un projet, faites-le moi savoir : j'aimerais beaucoup le mentionner ici !
La suite
Loreline est encore récent. Le langage et ses outils vont évoluer en fonction de l'usage réel et des retours. J'ai par ailleurs plein d'idées à explorer pour l'améliorer !
Envie d'explorer davantage ? Commencez par lire l'introduction à Loreline, ou bien essayez-le directement dans le navigateur.