NouVeL/README.md
2025-01-23 22:29:22 -05:00

1.4 KiB
Raw Permalink Blame History

NouVeL

NVL scripting engine is a visual novel engine comprising an interpreter for the DSL and a cross-platform (Windows/macOS/Linux/WebAssembly) display frontend supporting LTR Unicode (no shaping) and different renderers backends (DirectX11/12, OpenGL, Metal, Vulkan).

ADVect client displaying a game state

Here is an example of a script file (more can be found in ADVect/runtime):

BEGIN Scene1

// Set a variable
Set var 2

// Enter and exit dialogue mode with <<- and ->>
<<-
[Alex]
Hello. Welcome to dialogue mode. "Click" to proceed to the next line.
Bailey will speak in French next.

[Bailey]
Je ne suis plus Alex.
Actuellement Catherine apprend le japonais.

[Catherine]
どうもCJKテスト

[David]
I will talk about markup syntax.
Bold and italics look like [b]{this} and [i]{this}, and you can [b,i]{combine both}.
Parametrized can be used like [wiggle_y(5)]{this}.
Furigana-style ruby text can be done like [rb("that")]{this}.

[Elliot]
To grab a value from the environment, do it like this: ${var}.

[NARRATOR]
Thanks!
->>

// This will jump to another script defining "Scene2".
// JUMP Scene2

// Instead we will terminate the script here
END

Libraries

  • SDL2
  • bgfx
  • freetype
  • stb_image

They are included in the repository as git submodules. Please clone git submodules (recursively).

Building

Use CMakeLists.txt in the root directory. The default build target is Game.