瀏覽代碼

Merge branch 'feat/readme-update' of Vinora-Project/vinora-engine into develop

Evgeniy Parfenyuk 2 月之前
父節點
當前提交
4ecaac0268
共有 1 個文件被更改,包括 103 次插入1 次删除
  1. 103 1
      README.md

+ 103 - 1
README.md

@@ -1,2 +1,104 @@
 # Vinora Engine
-*In progress...*
+
+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](CONTRIBUTING.md).
+
+
+## General design
+
+### Game structure
+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.
+
+
+### Vinora Script overview