Cross Platform

Visual novels created using NVList run on Windows, Mac OS X and Linux. You can also build an Android port with the press of a button.

Simple Distribution

A packaged distribution can be created with the click of a button through the build system. This creates a single package capable of running on each of the supported platform. The build system can also create a simple Java-based installer, a Mac OS X application bundle and/or a .iso disc image.


Hardware Acceleration

NVList was designed from the ground up to take full advantage of available graphics hardware. Older engines designed for software rendering have trouble scaling up to high resolutions, but NVList can do 1920x1080 easily with any half-decent graphics card.


Vertex and pixel shaders are supported. These shader programs are executed on the graphics card allowing for complex dynamic effects.

Runtime Resolution Switching

NVList can switch between image sets based on the current display resolution/window size. This can be used to add netbook resolution (1024x576) images to a 1920x1080 visual novel. Pre-scaled lower resolution images can decrease load times and improve rendering performance on low-end hardware.

Resolution Comparison
The same image at different resolutions

Support for non-English languages

All text/script files are interpreted as UTF-8. This effectively means you can use any character in any language (just make sure the fonts you use support those characters).

Editing a non-English script
A script file containing non-English characters
Unicode Line Breaking

Different languages have different rules for line breaking. In the example below, NVList is smart enough to not break in the middle of かぁ. The line breaking algorithm also knows how to handle special whitespace like the zero-width space and non-breaking space.

Line Breaking Example
Smart line breaking

Simple Scripting Language

Scripts are written in Lua, a simple and easy to learn language. There are no special animation or user interface layout languages you are required to learn.

Hassle-free Saving

NVList can save anything, anytime. All script constructs are implicitly saveable, no additional action is required by the developer.

Lightweight Multithreading

The scripting engine supports multithreading using green threads. Multithreading makes it easy to execute multiple long-running functions simultaneously. This is especially useful for programming animations.


Loop Points

Loop points can be specified for audio files. When looping a music track, only the part between the loop points is repeated. The part prior to the loop start is played once, then the looping part, then the part after loop end.


In-Browser Gaming

NVList is capable of running as a Java applet inside a webpage.

Gamepad Support

Scripts can query the state of gamepad buttons and its directional pad.