55 lines
1.4 KiB
Markdown
55 lines
1.4 KiB
Markdown
# 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).
|
||
|
||

|
||
|
||
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`.
|