Vnefall is a simple, no-nonsense visual novel engine. It's built in Odin using SDL2 and OpenGL 3.3.
- Branching Dialogue: Full support for labels, jumps, and player choices.
- Configuration System:
demo/config.vneffor engine settings,demo/ui.vneffor UI styling + transitions, anddemo/char.vneffor per-character colors. - Virtual Resolution: Design once, it scales automatically to any screen.
- Simple Syntax: Commands like
say,bg,char,choice,set, andif. - Audio Support: Background music with looping support.
- Sthiti Persistence: Fast, native Save/Load system for story progress.
- Character Stacking: Responsive scaling and Z-index control for sprites.
- Cinematic Transitions:
with fade|wipe|slide|dissolve|zoom|blur|flash|shake|nonefor backgrounds + character fades/slides. - Text Effects: Inline
{color=...}tags,{shake}, and per-line[speed=...]overrides.
If you're on Linux, grab the vnefall binary from the Releases page. Run the new high-quality demo:
chmod +x vnefall
./vnefall demo/assets/scripts/demo_game.vnef(Note: Windows and Mac versions are currently untested).
You'll need the Odin Compiler and SDL2 libraries.
Linux (Ubuntu/Debian):
# Install dependencies
sudo apt install libsdl2-dev libsdl2-mixer-dev libsdl2-ttf-dev
# Build (v1.2.0)
./build.sh
./vnefall demo/assets/scripts/v120_char_pro.vnefWindows: Install Odin, download the SDL2 development libs, and run:
odin build src -out:vnefall.exe
./vnefall.exe demo/assets/scripts/demo.vnefMac:
brew install sdl2 sdl2_mixer
odin build src -out:vnefall
./vnefall demo/assets/scripts/demo.vnefScripts are just simple text files ending in .vnef. You can change backgrounds, play music, and write dialogue without touching a single line of code.
See the detailed command guide for all available commands.
Project layout (demo-style):
demo/config.vnef(engine paths, entry script, resolution)demo/ui.vnef(textbox, choice UI, transitions)demo/char.vnef(per-character name/text colors)demo/assets/(images, audio, scripts)
Here's what a script looks like:
bg room.png
say Alice "Welcome to the new Vnefall!"
choice_add "Go to the Night" see_night
choice_add "Stay in Day" stay_day
choice_show
label see_night:
bg night.png
say Alice "The night is cool."
jump end_story
label stay_day:
say Alice "Sunlight is nice too."
label end_story:
say Alice "Thanks for playing!"
end
- Click / Space / Enter: Next line.
- Escape: Quit.
Check out CONTRIBUTING.md for the guide. We like clean, readable code with simple logic.
This project is licensed under the MIT License.
I am also planning to transition to a dual-licensing model in the future to support long-term development.
