{"id":3197,"date":"2026-05-28T23:51:13","date_gmt":"2026-05-28T21:51:13","guid":{"rendered":"https:\/\/j-mad.com\/blog\/?p=3197"},"modified":"2026-05-28T23:51:15","modified_gmt":"2026-05-28T21:51:15","slug":"loreline-un-nouvel-outil-pour-ecrire-de-la-fiction-interactive","status":"publish","type":"post","link":"https:\/\/j-mad.com\/blog\/2026\/05\/28\/loreline-un-nouvel-outil-pour-ecrire-de-la-fiction-interactive\/","title":{"rendered":"Loreline, un nouvel outil pour \u00e9crire de la fiction interactive."},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La cr\u00e9ation de jeux vid\u00e9os, c&#8217;est un peu un de mes dadas et ce n&#8217;est pas parce que ce sujet est moins pr\u00e9sent ici qu&#8217;il y a quelques ann\u00e9es (o\u00f9 que j&#8217;ai moi m\u00eame pris quelques ann\u00e9es de plus) que j&#8217;ai tourn\u00e9 le dos \u00e0 cette envie de faire des jeux. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mais, quand on est comme moi, totalement infoutu de dessiner que cela soit avec un crayon, une souris, un stylet ou tout autre dispositif il faut se rabattre vers autre chose. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Et parmi ces autres choses il y a la fiction textuelle interactive. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Depuis plusieurs ann\u00e9es j&#8217;alterne entre <a href=\"https:\/\/www.renpy.org\/\" target=\"_blank\" rel=\"noopener\" title=\"\">renpy<\/a> (oui je sais c&#8217;est plus un outil pour faire du VN et il faut bien utiliser des ressources graphiques du coup). Renpy que j&#8217;aime beaucoup parce que c&#8217;est du python, qu&#8217;il est multi plateforme, plein de fonctionnalit\u00e9 et que la documentation est vraiment bien faite. Je l&#8217;aime tellement qu&#8217;il y a quelques ann\u00e9es (oh boy .. Presque 10 ans , j&#8217;ai fait une <a href=\"https:\/\/www.youtube.com\/watch?v=kla0HSEUjTE&amp;list=PLetYPqNT2qjAinIBr976XSjJObaa-zUy5&amp;index=12\" target=\"_blank\" rel=\"noopener\" title=\"\">conf\u00e9rence<\/a> sur le sujet. D&#8217;ailleurs puisque je parle de pyconfr 2027 et de conf\u00e9rence, si vous ne l&#8217;avez pas vu la <a href=\"https:\/\/www.youtube.com\/watch?v=Y5xMQYw9lls&amp;list=PLetYPqNT2qjAinIBr976XSjJObaa-zUy5&amp;index=20\" target=\"_blank\" rel=\"noopener\" title=\"\">conf\u00e9rence en duo sur le packaging<\/a> est \u00e0 voir)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Entre Renpy donc et <a href=\"https:\/\/www.inklestudios.com\/ink\/\" target=\"_blank\" rel=\"noopener\" title=\"\">Ink<\/a>. Ink qui est un syst\u00e8me cr\u00e9\u00e9 par le studio Inkle qui a fait de somptueux jeux comme Heaven&#8217;s Vault ou plus r\u00e9cemment TR-49 (vous devriez y jouer, aux deux ! ) <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">J&#8217;aime beaucoup Ink. Il permet de faire plein de choses, on peut ensuite en sortir un jeu en javascript qui va entre autre g\u00e9rer nativement la sauvegarde. Il va aussi pouvoir s&#8217;int\u00e9grer dans Unity ou Unreal. Mais il faut quand m\u00eame bien le dire la syntaxe de Ink n&#8217;est pas la plus facile d\u2019acc\u00e8s du monde. Il n&#8217;y a qu&#8217;\u00e0 voir sur la capture juste en dessous (honteusement repris du site officiel de Ink)<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"461\" src=\"https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2026\/05\/CleanShot-2026-05-28-at-23.26.24@2x-1024x461.png\" alt=\"\" class=\"wp-image-3199\" srcset=\"https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2026\/05\/CleanShot-2026-05-28-at-23.26.24@2x-1024x461.png 1024w, https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2026\/05\/CleanShot-2026-05-28-at-23.26.24@2x-300x135.png 300w, https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2026\/05\/CleanShot-2026-05-28-at-23.26.24@2x-150x68.png 150w, https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2026\/05\/CleanShot-2026-05-28-at-23.26.24@2x-768x346.png 768w, https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2026\/05\/CleanShot-2026-05-28-at-23.26.24@2x-1536x692.png 1536w, https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2026\/05\/CleanShot-2026-05-28-at-23.26.24@2x.png 1936w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Et m\u00eame si Ink dispose d&#8217;un \u00e9diteur rien que pour lui (Inky) on voit rapidement les limites de celui-ci ( et travailler \u00e0 plusieurs est un peu compliqu\u00e9 &#8230; ) <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Je pourrais aussi parler de <a href=\"https:\/\/twinery.org\/\" target=\"_blank\" rel=\"noopener\" title=\"\">Twine<\/a> mais m\u00eame si j&#8217;aime beaucoup son syst\u00e8me de design visuel des histoires, en vrai je n&#8217;ai jamais r\u00e9ussi \u00e0 construire un vrai projet avec celui-ci. Mais au moins je l&#8217;aurais cit\u00e9. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Telle \u00e9tait donc ma situation il y a quelques mois, avant que je d\u00e9couvre <a href=\"https:\/\/loreline.app\/fr\/docs\/introduction\/\" target=\"_blank\" rel=\"noopener\" title=\"\">Loreline<\/a>. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Loreline est donc un nouveau moteur de fiction interactive textuelle.  Et il faut bien dire qu&#8217;il me plait beaucoup. (Disclaimer, je ne l&#8217;ai pas encore utilis\u00e9 sur un &#8220;vrai&#8221; projet de bout en bout, mais je dis bien &#8220;pas encore). <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">J&#8217;aime la syntaxe. En temps que dev python, je ne peux qu&#8217;approuver des deux mains l&#8217;utilisation d&#8217;indentation et non de d\u00e9limiteurs. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"413\" src=\"https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2026\/05\/CleanShot-2026-05-28-at-23.36.18@2x-1024x413.png\" alt=\"\" class=\"wp-image-3200\" srcset=\"https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2026\/05\/CleanShot-2026-05-28-at-23.36.18@2x-1024x413.png 1024w, https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2026\/05\/CleanShot-2026-05-28-at-23.36.18@2x-300x121.png 300w, https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2026\/05\/CleanShot-2026-05-28-at-23.36.18@2x-150x60.png 150w, https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2026\/05\/CleanShot-2026-05-28-at-23.36.18@2x-768x310.png 768w, https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2026\/05\/CleanShot-2026-05-28-at-23.36.18@2x.png 1394w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">J&#8217;aime le fait de pouvoir coder des fonctions, cr\u00e9er des objets et appeler les fonctions en mode fonction ou m\u00e9thode.  <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"687\" src=\"https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2026\/05\/CleanShot-2026-05-28-at-23.38.56@2x-1024x687.png\" alt=\"\" class=\"wp-image-3201\" srcset=\"https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2026\/05\/CleanShot-2026-05-28-at-23.38.56@2x-1024x687.png 1024w, https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2026\/05\/CleanShot-2026-05-28-at-23.38.56@2x-300x201.png 300w, https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2026\/05\/CleanShot-2026-05-28-at-23.38.56@2x-150x101.png 150w, https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2026\/05\/CleanShot-2026-05-28-at-23.38.56@2x-768x515.png 768w, https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2026\/05\/CleanShot-2026-05-28-at-23.38.56@2x-1536x1030.png 1536w, https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2026\/05\/CleanShot-2026-05-28-at-23.38.56@2x.png 1780w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">J&#8217;aime le fait qu&#8217;il soit possible de l&#8217;int\u00e9grer un peu partout. Que ce soit dans des projets en diff\u00e9rent langage Java, C#, Javascript, et surtout Python (parce que vive python) ou dans diff\u00e9rents moteurs (dont Godot, triple vive Godot). <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">J&#8217;aime beaucoup pouvoir dans un projet python d\u00e9finir du code en python qui sera ensuite appelable en Loreline. (Dans l&#8217;exemple ci-dessous, totalement pomp\u00e9 du site officiel, on va d\u00e9clarer la fonction roll en python qui sera utilisable ensuite. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"438\" src=\"https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2026\/05\/CleanShot-2026-05-28-at-23.42.06@2x-1024x438.png\" alt=\"\" class=\"wp-image-3202\" srcset=\"https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2026\/05\/CleanShot-2026-05-28-at-23.42.06@2x-1024x438.png 1024w, https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2026\/05\/CleanShot-2026-05-28-at-23.42.06@2x-300x128.png 300w, https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2026\/05\/CleanShot-2026-05-28-at-23.42.06@2x-150x64.png 150w, https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2026\/05\/CleanShot-2026-05-28-at-23.42.06@2x-768x328.png 768w, https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2026\/05\/CleanShot-2026-05-28-at-23.42.06@2x.png 1254w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">J&#8217;aime aussi \u00e9norm\u00e9ment pouvoir avoir un \u00e9diteur (dispo sur la <a href=\"https:\/\/jeremyfa.itch.io\/loreline-writer\" target=\"_blank\" rel=\"noopener\" title=\"\">page itch.io du cr\u00e9ateur<\/a>) qui permet de tester son code Loreline et d&#8217;exporter simplement en HTML son jeu. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Et enfin (et presque surtout), je me p\u00e2me devant la documentation totalement g\u00e9niale. Je n&#8217;ai pas vu une aussi bonne documentation depuis celle de Django. Elle est vraiment top. Et en plus en fran\u00e7ais. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En bref, si vous voulez vous lancer dans un projet de fiction interactive, je vous conseille vraiment de donner sa chance \u00e0 Loreline ! <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>La cr\u00e9ation de jeux vid\u00e9os, c&#8217;est un peu un de mes dadas et ce n&#8217;est pas parce que ce sujet est moins pr\u00e9sent ici qu&#8217;il y a quelques ann\u00e9es (o\u00f9 que j&#8217;ai moi m\u00eame pris quelques ann\u00e9es de plus) que j&#8217;ai tourn\u00e9 le dos \u00e0 cette envie de faire des jeux. Mais, quand on est &hellip; <a href=\"https:\/\/j-mad.com\/blog\/2026\/05\/28\/loreline-un-nouvel-outil-pour-ecrire-de-la-fiction-interactive\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Loreline, un nouvel outil pour \u00e9crire de la fiction interactive.<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[4],"tags":[],"class_list":["post-3197","post","type-post","status-publish","format-standard","hentry","category-developpement"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p12cdp-Pz","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts\/3197","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/comments?post=3197"}],"version-history":[{"count":2,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts\/3197\/revisions"}],"predecessor-version":[{"id":3203,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts\/3197\/revisions\/3203"}],"wp:attachment":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/media?parent=3197"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/categories?post=3197"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/tags?post=3197"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}