Unity DatingSim/VisualNovel template DevLog

Elvishious

Afterglow Developer
Game Developer
Mar 9, 2018
149
419
Hi guys,
I'm working on a since Jul 2018 where I use a DatingSim/VisualNovel template I made. Currently, it still misses some features to reach my standards, but I'm improving it whenever I can.
I made this post for two reason:
  1. Keeping a track of my progress on this template.
  2. Showcasing my work to people that want to build a game with similar features.
This template can be used for a visual novel with dating sim mecanics. I want to extend it more and more. That's why i want to use it on different projects to improve this template. I'm looking for someone, more likely 2D or 3D artist(s), that want to make something concrete with their ideas.
I'm aiming for a "mouse only" type of utilisation. Of course, some fields will require keyboard entries, but i'll try to keep it simple. Most of the features are just scriptable object (right click, create) and it's pretty easy to understand how to fill each field. Some features had to be made using the Scene editor, but nothing mindblowing (creating a new scene per location, modifying UI elements, ...).
You can download the current demo build here : (Only windows)
Currently everything is just placeholders (Quest, Dialogue, Artwork, UI), this preview only shows the current features I made.
I'm also looking for feedback about this build, idea for features that can be implemented.


Yellow text on UI means : Not implemented through code yet.
Features description:
You don't have permission to view the spoiler content. Log in or register now.

Change-Log:
You don't have permission to view the spoiler content. Log in or register now.

The idea with this template is to be able to make a game with minimal coding required.
Depending on your game complexity, you may only have to put art and scenario on it.
I'm willing to work on another project as long as i can use this template, that way I can improve it more and more to make it almost universal.
If you're interested to work with me, please let me know with a concise description of your project:

  • Team members
  • Summary
  • Game features needed
  • Eventually a game documentation (if you have one)
TL;DR: I can make games
 
Last edited:

Elvishious

Afterglow Developer
Game Developer
Mar 9, 2018
149
419
Rich features, I like it.

And good luck.

PS: If you do not have, please put dialogs in json or similar editable files for multi lingual support.
For now the dialogues are handled by scriptable objects in a node editor. All dialogs should be edited in Unity, the node editor seems more user friendly and pleasing for the eyes instead of a xml, csv, json file
I plan to extend the editor with sounds (FX, dub, music) that will be send to the sound manager when it will be created.
A check box will also be added so you can switch between:
  • plain background dialogs upload_2018-10-30_7-53-37.png
  • or face to face dialogs 4337_original.png
The multilingual could also be an idea, but could seems messy in the node editor, i need to find an elegant way to implement it. Thanks for the idea :)
 
  • Like
Reactions: Dr. M.O.M.

caLTD

Member
Game Developer
Feb 4, 2018
202
180
Ummm.... after 20 years of multi lingual web site development, from my point of view you are missing a point.

Let say, we had 1200 word short vn. We release it and everyone was happy and we got French fan which he was a good translator and want to translate for free.

We crate a text file, send to him then he translate it and send back us, we put a 1200 in a unity node editor ?

Or we send a json file, receive a json file. volia. job done.

For some jobs visual editing is not good.

I'm using 3rd party tools for my dialogues and they also using node based editor. I skip them and trigger dialogues from script much more easy and very flexible to rehash everything.
 

Elvishious

Afterglow Developer
Game Developer
Mar 9, 2018
149
419
Yeah I never worked with multilingual before, but i can see how it could be done now thanks to your reply.
I'm pinning it on my todo list
 
  • Like
Reactions: Dr. M.O.M.

Elvishious

Afterglow Developer
Game Developer
Mar 9, 2018
149
419
Updating OP with

This build use a brand new Trigger System.

TriggerItem.gif

Triggers will be used as "checkpoint" in the story. It can be used by :
  • interactibles (NPC, Item, Furniture) and decide if they should be display / can be used or not
  • navigation system where Room or Location can be locked by a trigger
  • dialogues system, where during dialogues, you can make trigger checks
  • quest objective
Triggers value can be modified by:
  • interaction
  • dialogue
  • quest reward
Change-Log:
You don't have permission to view the spoiler content. Log in or register now.
 
  • Like
Reactions: Dr. M.O.M.

Elvishious

Afterglow Developer
Game Developer
Mar 9, 2018
149
419
Updating OP with

AudioMixer through persistentSave.gif

This build use a brand new Sound System and Persistent Save system. (current sound are just placeholders and just there for testing purposes)

The sound system use a sound mixer with multiple output (more can be created) and give the player a full control over the sound settings in the game. It can be used by any system you want, as long as you declare the sound on the gameobject with a Sound(special class) field.

This system is supposed to be used with some codings (unfortunately) for it to be flexible as possible. But I made some presets with interractibles / navigation buttons and will upgrade those in a near future. Sound over navigation is also supported.

Thereby, those settings needed to be saved out of the regular save system (in case you delete the save file, the settings are still saved). With that in mind, I created a persistent save system.
The persistent save is there to save settings, and can also save things that you want to save without altering the original save file.
for example : gallery, trophy, ... or can help to make a "dokidoki litterature club" kinda experience, where progression persist even when returning to main menu/quitting game​


The option menu is now working

Change-Log:
You don't have permission to view the spoiler content. Log in or register now.
 
  • Like
Reactions: Dr. M.O.M.

Knuffelpanda

Member
Feb 11, 2018
180
2,001
I really love this but i am not the best coder. But love unity. It poor that i cannot use it link this.
 

Elvishious

Afterglow Developer
Game Developer
Mar 9, 2018
149
419
I don't have planned the release yet, i guess I'll share it with ppl that want to make a game with me, but i need to complete the template first.
For the arpg thing what do you plan exactly (point and click, third person)? Because for now it's just a VN/dating sim template, from main menu to pause menu. It doesn't have any handling on space position, only variables for locations.
If you decide to keep only the VN/dating mecanics, i could be done, but needs to get rid of the location system and disable any references to it in the other systems (save, sound, ...). Then add your navigation gameplay and reference it back to the other systems.

When my other tasks are complete I was planning to make it more usefull on other projects that use other type of mecanics (2D platformer, top down Rpg, and you gave me the idea for arpg)
 
Last edited:
  • Like
Reactions: Dr. M.O.M.

lobotomist

Active Member
Sep 4, 2017
907
879
i want to make something similar to diablo except for the combat part, for that i wanna add somethin more like jrpg or trpg.
So if possible i want to take this and tweak it to fit my goals, but im not sure if im allowed to
 

Elvishious

Afterglow Developer
Game Developer
Mar 9, 2018
149
419
i want to make something similar to diablo except for the combat part, for that i wanna add somethin more like jrpg or trpg.
So if possible i want to take this and tweak it to fit my goals, but im not sure if im allowed to
As long as it's not done, i'm sharing it only on project I work on, and will put it under LGPL or using a license provided by the Unity Asset Store when i'm releasing it.
 
Last edited:
  • Like
Reactions: Dr. M.O.M.

Elvishious

Afterglow Developer
Game Developer
Mar 9, 2018
149
419
Rich features, I like it.

And good luck.

PS: If you do not have, please put dialogs in json or similar editable files for multi lingual support.

v0.0.4 : JsonImporter / Video Manager / Gallery system

Json Importer
To add Language support, a json file was necessary. The Json Importer is called by system managers, such as LanguageManager/DialogueManager and help them determine what to display.
The Json Importer is pretty straight forward:
At Start, the Json importer will scan every dialogues lines and automatically add the new ones to the Json file. The original field is the one he found in the dialogue. Then he retrieve from Option manager the default language and duplicate that line to the language field.
JSON:
{
   "DialogueLineLanguages": [
        {
            "name": "Dinner With Meg",
            "dialogueLines": [
                {
                    "original": "This isn't like her...normally she'd have cooked something up and ate already. Is something going on with her?",
                    "english": "This isn't like her...normally she'd have cooked something up and ate already. Is something going on with her?",
                    "french": ""
                }
            ]
        }
    ]
  }
Once it's done, you can modify this Json file to add the translation:
JSON:
{
   "DialogueLineLanguages": [
        {
            "name": "Dinner With Meg",
            "dialogueLines": [
                {
                    "original": "This isn't like her...normally she'd have cooked something up and ate already. Is something going on with her?",
                    "english": "This isn't like her...normally she'd have cooked something up and ate already. Is something going on with her?",
                    "french": "ça ne lui ressemble pas... normalement, elle aurait déjà préparé quelque chose et mangé. Qu'est ce qui ne va pas chez elle?"
                }
            ]
        }
    ]
  }




Video Manager will allow you to display video on whatever RawImage in the scene.
When you create the video, you can choose on which Audio output you want the sound to be played. That way, you can have videos that doesn't have the same audio profile in the eye of the AudioManager (music or sfx)
The video can be called inside the Dialogue Editor and persisting through dialogue lines.

Video player v0.5.gif


The gallery system, is a standard VN gallery. This one is saved by the persistent save, that way, no matter which save you're on, you'll have access to every GalleryItem you unlocked.
You can create GalleryItem in the editor, those would be feed into the GalleryCollection and displayed in the Gallery UI.
Gallery items are locked at start, but you can unlock them with RewardGalleryItem via the Quest system.
A Gallery item can contain a list of image or a list of video.

Gallery v0.4.gif


Changelog :
You don't have permission to view the spoiler content. Log in or register now.
 
Last edited:

felmaster

Newbie
Oct 5, 2017
18
3
I think you should work on re-sizing. The person looks small compared to sofa/couch. She sits there like she shrinked in washing machine like 5 mins ago. (This is just my humble opinion. I really appreciate this work.)
couch game.png
 
  • Like
Reactions: ikxmootix

Elvishious

Afterglow Developer
Game Developer
Mar 9, 2018
149
419
I think you should work on re-sizing. The person looks small compared to sofa/couch. She sits there like she shrinked in washing machine like 5 mins ago. (This is just my humble opinion. I really appreciate this work.)
View attachment 195107
The artworks I'm using are just placeholders, i'm only promoting a system here, not a game, nor UI, or 3D renders.

_____________________________________________________________

This v0.0.5 will be a bit different compared to my previous posts for version update, because I'm slowly starting to reach my standards for this template. Most of the features I'm working on are just bonuses feature I want to do just to satisfy my perfectionnist ego.

Naming system
Until now, names in the game had to be set during development phase and couldn't be changed. I modified that! Now each characters can have a custom name set by the player. If not set, the name will be the default one.
You don't have permission to view the spoiler content. Log in or register now.

Notification System
I wanted to make something that notice the player when something occurs in game (location unlocked, new quest, ...) I made this system in a way to make it really versatile: each notification can have a type (location, quest, item, charactermet, ...), each of those type are associated with a UI window type, that makes it easy to have different display method (window shape, position, animation) per notifications
You don't have permission to view the spoiler content. Log in or register now.

NPCs
Obviously, making the 2 previous systems needed me to improve the way Npcs are handled by the system and make it communicate with all current systems.
I added a "alreadyMet" field to the Npc class, that way you can imagine if you didn't met a character:
- you don't have any infos on them in the pause menu.
- you can't complete a quest objective
- you can't speak about a specific topic to another npc.

Autosave
Whenever a quest is completed or after a delay, the game automatically save itself.

MinigameManager
This allow you to summon another scene from anypoint in the game. You could use it to instantiate a minigame you made, but you're not limited only to minigame: it can be anything you want as long as it's in a Unity scene.
Each of the scene you create in order for them to be called by the minigame manager must have an Object with a MinigameBehaviour script attached to it. This script is a parent class for the minigamebehaviour you want to have in the minigame. It contains the starting/ending logic of your minigame, that way, when the minigame is done, the minigame manager can unload the minigame scene.
You don't have permission to view the spoiler content. Log in or register now.

Quest System improval
added support for Nested Quest Objectives
You don't have permission to view the spoiler content. Log in or register now.

Visual novel sprites
I finally added support for visual novel sprite in the game. Until now, all BG needed to be full pictures.
I made some effects like translation, shaking, fade in, fade out.
You can change the orientation of the sprite and it's position on the screen.
You don't have permission to view the spoiler content. Log in or register now.

I will make a demo build when i have time, because I have a lot of things to highlight in this build.
 

Elvishious

Afterglow Developer
Game Developer
Mar 9, 2018
149
419
I wanted to be able to use more than one interractible script on one object
1550801788558.png
My previous system had independent interractibles having their own behaviour, making it impossible to have a double, triple behaviour... We could imagine at some point in a game, you would like to have a dialogue when you click on your PC (dialogue interractible), then an instance of your pc's OS is launched (minigame interractible), and finally you grab a USB key when you copied the files you wanted (item interractible).

A system rework was requiered to take care of that.

I made a Interractible manager that register all interactions on one element and execute them one by one giving priority to any kind of dialogue behaviour (if a dialogue was running, the manager had to delay the execution of the next interractible). A pretty simple self ordered list that pop up every executed interractible.
In this example, you have a DialogueTriggerInterractible and a MinigameInterractible. (Obviously the dialogue make no sense, just a placeholder dialogue).
InterractibleManager.gif
If I need to spawn the Dialogue after the minigame, I just need to make a quest "Check you pc" and reward the player with a dialogue when he leave the minigame.

I also extended a bit the DialogueEditor so it's easier to do things with it.
1550813629430.png
That way we can add a new activity for a NPC through the dialogue editor.

I made some slight modifications to the navigation system: now, when you change location/room, a fade out and then a fade in occurs. I think this is softer for the eye than just a fast responding navigation system.
The fade duration can be tweek too, even with ingame events
before : Navigation system.gif
after : Navigation system 2.gif