Simple and portable visual novels engine with Markdown-like syntax.
|
|
2 місяців тому | |
|---|---|---|
| docs | 2 місяців тому | |
| external | 2 місяців тому | |
| src | 2 місяців тому | |
| CONVENTIONS.md | 2 місяців тому | |
| LICENSE.md | 2 місяців тому | |
| Makefile | 2 місяців тому | |
| README.md | 2 місяців тому |
Vinora Engine is a visual novels engine with focus on simplicity and
portability.
It doesn't use any script language (like Python in Ren'Py),
but instead it use Markdown dialect called Vinora Screenplay.
It's on early stage of development, so it has no use if you an
average user.
But if you are a programmer -- you are welcome to
contribute.
You have two options here: build raylib manually or get it automatically from Github. They are both easy to do, but for building you need to install additional dependencies, which is not really cool and for auto download you need to rely on Github.
It's up for you what to choose.
If you want build raylib manually, you need to prepare some dependencies:
So, you need some C99 compiler (we use gcc), make, git and wget.
sudo apt install build-essential git wget
After you installed this, run:
make fetch-raylib
It would download raylib from Github instead of building it.
Simply run:
make
It would Vinora Engine.
That's all, you've done!
Visual novel on Vinora Engine looks like this:
example
├── engine
│ ├── vinora_lin
│ ├── vinora_mac.bin
│ └── vinora_win.exe
├── game
│ ├── bg
│ │ ├── school_day.png
│ │ └── school_night.png
│ ├── cg
│ │ └── debate.png
│ ├── conf
│ │ ├── main.ini
│ │ └── options.ini
│ ├── music
│ │ ├── day.mp3
│ │ ├── home.mp3
│ │ ├── night.mp3
│ │ └── school.mp3
│ ├── sounds
│ │ ├── door.ogg
│ │ ├── exit.ogg
│ │ ├── play.ogg
│ │ └── stop.ogg
│ ├── sprite
│ │ ├── alice
│ │ │ ├── happy.png
│ │ │ └── sad.png
│ │ └── bob
│ │ ├── happy.png
│ │ └── sad.png
│ ├── ui
│ │ └── main_menu.png
│ ├── video
│ │ ├── ending.mp4
│ │ └── opening.mp4
│ ├── Chapter1.vnrs
│ ├── Chapter2.vnrs
│ └── Chapter3.vnrs
├── mods
├── translations
└── run_game.bat
A little bit overwhelming, but it's actually really simple. Let's start with root directory:
example
├── engine
├── game
├── mods
├── translations
└── run_game.bat
run_game.bat is cross-platform (Bash/Batch-compatible) script, which will
run a right engine binary from engine/ depending from which OS it was
executed.
Than this binary will look at game/ and start reading game script. If user
in-game would choose to play mods/ or switch to one of the
translations/, it will overwrite any information from mods/ in RAM.
(For example, if I switch to Russian, translations/ru/intro.vnrs
would be displayed instead of game/intro.vnrs. Same with mods.)
game/ directory has a bunch of Vinora Screenplay (.vnrs) files and
assets directories (bg, cg, conf, video, etc).
Obvious question is why we didn't make general audio/ and video/
directories?
Well, in Vinora Screenplay to play some music you write something like this:
[](music/home.mp3)
So, difference between music and sound is that music is played on loop. You can change by appending {loop} or {!loop}, but still, this is default behaviour.
And the only way how Vinora can distinguish music from sound or sprite
from bg is by parsing their directory name.