Show HN: Loreline, narrative language transpiled via Haxe: C++/C#/JS/Java/Py/Lua

HN cheers a new story tool; devs demand 'timeline or bust'

TLDR: Loreline is a new text-first tool for game dialogue that runs on many platforms by converting one codebase into many. Commenters cheered its clean design and portability, but the big debate demanded real timeline tools for animations and lip sync, a must if it’s to power larger productions.

Hacker News lit up after the creator dropped Loreline, a write-like-a-writer scripting language for branching game stories that runs basically everywhere by using Haxe to convert one codebase into many. The author jumped in with a playground link—classic HN bingo—and folks immediately started poking, prodding, and applauding.

The hype camp called the syntax clean and the “runs everywhere” promise a game-changer. One dev shouted this is “prime HN content” and vowed to upvote anything Haxe-powered. Another name-dropped the Haxe-built hit Dead Cells as proof the tech’s legit, stoking the Haxe fandom fire. And since Loreline parses plain text on the fly—and can pause/resume dialogue so games control the pace—people loved the “no precompile, just play” vibe.

But the pushback came fast: if you want real productions—animations, lip sync, flashy effects—“delays don’t cut it.” Critics argued you need a proper timeline to sync everything, not just simple waits. Others contrasted it with Ink (another story tool), saying Ink is tough to port and praising Loreline’s multi-language DNA as the killer feature.

So the thread split: writers praising smooth, natural scripts vs devs asking for deeper hooks and timelines. It’s a neat origin story—now everyone’s watching to see if Loreline stays a writer’s dream or levels up into a full-on production beast.

Key Points

  • Loreline is a narrative scripting language implemented in Haxe to transpile a single codebase across multiple platforms and languages.
  • Its processing pipeline includes a lexer, a parser producing an AST, and an interpreter that executes scripts directly from plain text without pre-compilation.
  • AST nodes receive stable 64-bit IDs encoding hierarchy position, allowing save data to remain valid across script edits.
  • Execution uses a continuation-passing style (CPS) model: the interpreter pauses at dialogue/choice points and resumes via host-provided callbacks (sync or async).
  • The lexer is optimized for performance, enabling on-the-fly loading of many files, and the one-codebase approach ensures native performance and reduced maintenance.

Hottest takes

For that you really need some kind of timeline. Delays don't cut it. — jayd16
things like Ink aren’t really amenable to porting to other languages easily. So the multitarget/multi-language focus is very attractive — dwroberts
I'll upvote anything that's using Haxe — afavour
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.