diff --git a/.gitignore b/.gitignore index d3eacb0..b929dd3 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ NVL/out .cache vs **/.DS_STORE +.gitconfig diff --git a/README.md b/README.md index 6e9b2d7..c9ca025 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,55 @@ # NouVeL -NVL Script Engine +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 Unicode and different renderers (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`. diff --git a/static/screenshot.png b/static/screenshot.png new file mode 100644 index 0000000..8160d57 Binary files /dev/null and b/static/screenshot.png differ