Skip to content
Tech News
← Back to articles

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

read original get Haxe Programming Language Book → more articles
Why This Matters

Loreline is a narrative scripting language designed for cross-platform compatibility, leveraging Haxe to transpile into multiple programming languages. Its design balances intuitive syntax for writers with robust engineering to ensure consistent performance across diverse game engines and platforms. This approach streamlines development and reduces maintenance overhead for creators and developers alike.

Key Takeaways

← Documentation

Technical Overview

How does Loreline work under the hood? This article provides some answers, though not everything can be covered in detail here!

A language shaped by two disciplines

Building a narrative scripting language requires two very different skill sets working together.

On one side, there is narrative language design: the syntax must feel natural to writers, get out of the way of creativity, and provide the right mechanics for expressing narrative intent (branching, variations, characters, state) in a readable and intuitive way.

On the other side, every simplification, every design choice in the language requires real software engineering effort: the fewer symbols the writer has to type, the more the parser needs to understand the intent behind what is written. All of this must work identically across a wide range of platforms and game engines, while also providing editing tools (syntax highlighting, automatic suggestions, real-time diagnostics) that support the writer throughout the process.

Loreline reflects this dual nature at every level. The language looks simple on the surface because the underlying implementation absorbs the complexity so writers do not have to.

Written in Haxe, to transpile them all

Loreline is primarily written in Haxe, a strictly-typed programming language that transpiles to multiple targets from a single codebase.

... continue reading