# 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](static/screenshot.png) 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`.