Template
I’ve used DIISIS in several personal projects (ex1 ex2 ex3). This template will give you the same game structure as those visual novels, so you don’t have to hassle with any coding.
Get the Plugin to get started.
Setting up the visual novel template
Files
Move the template files from res://addons/diisis/templates/visual_novel into a separate folder called game (you have to create this one)
The contents of this folder already contain a minimum project so you can see how a DIISIS file controls the flow of dialogue. This script will be located at res://game/diisis_integration/demo_script.json.
Automated Setup
In the top right corner, you will find a dropdown menu.
Confirm the dialogue, and reload the editor.
Visual Novel Structure
This section explains all the different folders and scenes contained within.
autoloads
The demo project comes with some autoload singletons.
const
CONST is a simple container that holds paths to all of your assets. All asset types are defined by a root they all have to share, and their name within that root folder. If you want to add more screens, backgrounds, sounds, sfx, or stages, this is where you reference them.
If you declare new assets here, they have to be a character-exact match (but not case-exact) to the string you pass in the provided functions in DIISIS.
game_world, options and sound
These are not really meant to be drilled into. Feel free to look around, but you don’t need to adapt them.
Options determines the default behavior for settings though.
backgrounds
Backgrounds are .png or .tscn files that can be switched to with certain Instructions in DIISIS.
cg
CG is a visual novel-specific term for typically full-screen renders. Pretty!
characters
character.tscn is a class to display a character in your visual novel. A small rundown on how to add your own can be found |here.
These nodes require a character_name to be set to display their respective emotions.
These names correspond to the names declared in the character dropdown within DIISIS.
Within the sprites folder, you will find all the emotions that the characters in the demo express. They correspond to the respective stringkits too. The naming scheme for character sprites is [character name]-[emotion name], and the individual stringkits (e.g. amber-emotion) are named [character name]-emotion. The character.gd script will automatically find the correct sprites if you follow these conventions within the project.
Files:
Syntax:
screens
Screens are like menus. Only one of them can be active at a time, and they can be closed with escape or mouse input. Here you have e.g. an options menu or the content warning notice.
sounds
Folder for music and other SFX. Don’t forget to reference them in CONST.
stages
Stages are the big changes. In the demo, you get the main menu, and game stages.
game_stage
If you adapt the demo, and add more features, you might want to look into game_stage.gd. It has two functions for serialization and deserialization respectively. So if you have some game element in this stage that needs to persist between save states, this is where you handle it.
Furthermore, the game stage comes with an option between two styles of text box placement. ToBottom places the text box statically at the bottom of the screen. ToCharacter lets the text appear next to the respectively speaking character.
visuals
A folder I use for various icons, fonts, themes, etc.
DIISIS instructions
Call these with instruction lines to do typical visual novel stuff.
Learning DIISIS
Head over to the Quick Start Guide to get a feeling for the dialog editor.