J0571N
New Member
- Feb 13, 2020
- 9
- 3
- 177
Hello everyone!
Welcome to this development thread.
I’ve been experimenting with Unity to see how far I can push it for building a Visual Novel / Dating Sim framework that’s fully data-driven and doesn’t rely on hard-coded dialogue or flags.
I’ve used Ren’Py before and like how quick it is for writing stories, but I wanted to design something that scales better for complex logic — branching stats, time-based events, and reusable systems — while keeping everything editable through Unity’s Inspector.
Core Idea
A modular system that handles:
Example Snippet
Everything runs through managers like
Current Progress
Editor Tooling Preview
Here’s an early look at how
The system uses custom
Each field dynamically changes based on context — for example, selecting
This approach keeps authoring clean and intuitive while ensuring data stays consistent with the project’s databases.
Why Unity?
I wanted more flexibility for future projects — things like custom UI, 2.5D environments, or even mixing VN with simulation or management mechanics. Once the framework is stable, I could turn it into a reusable toolkit or asset for others.
Discussion
I’d love to hear how others here handle branching logic or event chaining in Unity (or Ren’Py).
If anyone’s interested in data-driven VN systems, I can share more structure diagrams or example prefabs later.
Links
"Every prototype is a fragment of a larger world I’m building — one system at a time."
Welcome to this development thread.
I’ve been experimenting with Unity to see how far I can push it for building a Visual Novel / Dating Sim framework that’s fully data-driven and doesn’t rely on hard-coded dialogue or flags.
I’ve used Ren’Py before and like how quick it is for writing stories, but I wanted to design something that scales better for complex logic — branching stats, time-based events, and reusable systems — while keeping everything editable through Unity’s Inspector.
Core Idea
A modular system that handles:
- Event chains — defined through ScriptableObjects or JSON
- Dialogue logic — fully separated from code
- Stat and flag systems — used as conditions for events and routes
- Service-based architecture — using a lightweight
GameServiceLocatorpattern instead of MonoBehaviours
Example Snippet
Code:
public bool AreConditionsMet(IEnumerable<EventCondition> conds, EventContext ctx)
{
foreach (var cond in conds)
if (!CheckCondition(cond, ctx)) return false;
return true;
}
EventManager, FlagManager, DialogueManager, etc., so writers and designers can focus on data instead of scripts.Current Progress
- Base systems: Stats, Flags, Events, Dialogue — Done
- Service locator and bootstrap sequence — Done
- Dialogue editor & runtime test UI — In Progress
- Save/load layer and event debugger — Planned
Editor Tooling Preview
Here’s an early look at how
EventData is created and configured inside the Unity Editor.The system uses custom
PropertyDrawers for both EventCondition and EventAction structures. Each field dynamically changes based on context — for example, selecting
ConditionType.Flag automatically switches to available flag keys, while ConditionType.Stat lists available stats from the database.This approach keeps authoring clean and intuitive while ensuring data stays consistent with the project’s databases.
Why Unity?
I wanted more flexibility for future projects — things like custom UI, 2.5D environments, or even mixing VN with simulation or management mechanics. Once the framework is stable, I could turn it into a reusable toolkit or asset for others.
Discussion
I’d love to hear how others here handle branching logic or event chaining in Unity (or Ren’Py).
If anyone’s interested in data-driven VN systems, I can share more structure diagrams or example prefabs later.
Links
-
You must be registered to see the links
-
You must be registered to see the links
"Every prototype is a fragment of a larger world I’m building — one system at a time."