Dev notes about interactive stories in Caverns and Dryads


Hello, adventurers! :)  

Fewer days remain until the early release version of the game is published (hopefully). In the current version, the game features an "intro" story in the menu, which you can play, and if you do, by the end your characters will receive gold and improved stats.  

For future versions, interactive stories like this will be integrated into the game. They will allow you to find keys, obtain special weapons, strengthen the relationship between Sioul and Tamzyn, face special enemies, encounter boss monsters, and much more.  

However, I don't want the story to be linear. The story will be YOUR story. Like real life, it will be composed of events that intertwine, NOT a linear progression.  

It's fundamental that you can do whatever you want at any moment, make choices, and have the game world react to your actions. Deciding what to do, when, and where. Not me, but you, while playing—whether you fight an enemy, develop the relationship between characters, make friends among the monsters, uncover mysteries, travel to dangerous locations, or impose your will.  

This requires me to create a custom programming framework. Since these are not linear stories, I need a unit that functions like a chapter of a book… or rather, a game-book, since you can reach them in different orders, skip some entirely, or repeat others while others remain unique.  

Below are my notes so far, which I think might be interesting for you to read and could give you an idea of what I'm developing.  

At this moment, I've already started implementation. I have a lot of work ahead! But it's going to be so exciting! :)  

- Louis  

---------------------------------------------------------------------------------------  

Characteristics of Chapters:  

1. Characters experience events, which are interactive stories whose mechanics are already implemented using Ink for Unity.  

2. In these stories, they may receive or stumble upon what would be called a "quest" in an RPG.  

3. The quest has milestones, or steps, that upon completion trigger another interactive story revealing the next milestone.  

4. Once all milestones are completed, the quest is finished, leading to another story that delivers the conclusion.  

5. After the conclusion, rewards are granted. Rewards depend on actions taken and can include relationship points, gold, stats, items (weapons, armor, etc.).  

6. Important milestones that may trigger other stories are recorded in the player's memory (e.g., if they became friends with the Gnomurk, this is stored for future encounters).  

Chapter Unit:  

- Ink story  

- Related quest  

- Reward  

- Important milestone recorded upon reaching this chapter  

Quest Unit:  

- Definition (where, how, what to do)  

- Chapter conclusion  

---------------------------------------------------------------------------------------  

Chapters Must Be Selected Based on Variables:  

- Being in a certain location  

- Occurrence of an event  

- Completion of a milestone  

- Reaching a specific value in a character’s stat  

- State of the relationship between the mage and the nymph  

Factors That Influence the Chapter's Story:  

- Character stats  

- Their relationships  

- Milestones reached  

A Milestone Is Achieved When:  

- Defeating a special enemy  

- Finding a special item  

- Reaching a relationship value  

- Reaching a stat threshold  

- Arriving at a specific location  

- Performing a defined action within a chapter  

Types of Chapters Based on Repeatability:  

- One-time events  

- Repeatable events, generated in a similar way but randomized in story selection, outcomes, and variations. Rewards should also be variable.  

  - They may include random milestones.  

  - Their story is generated dynamically through dialogues with internal scores (romantic, action, dialogue, mystery, encounter…) guiding subsequent events.  

---------------------------------------------------------------------------------------  

Considerations and Responses:  

Variety in milestone design: Will each chapter have a linear structure, or will some allow alternate paths based on previous choices?  

- A chapter is a fragment of life. That fragment occurs only if conditions are met.  

Impact on the game world: Will some quests have consequences in the environment? For example, could helping a character unlock a new area or affect the protagonists’ reputation with certain factions?  

- Yes, completing a quest has consequences. Among them, milestones are reached that unlock other potential events.  

Abandoning or failing a quest: Can players fail or abandon a quest before completing it? If so, will it have consequences for the story or progression?  

- As in real life, if you don't fulfill an objective, nothing happens—you simply miss out on its rewards.  

  - For example, if the mage fails to win Tamzyn’s heart, they won’t receive its benefits. Some things will never happen as a result.  

Interconnection between chapters: Are quests linked so that decisions in one affect the difficulty or progression of another?  

- Yes. For instance, failing to obtain a particularly effective weapon against a boss monster or achieving something that causes another chapter to unfold.  

Hint and guidance system: To prevent players from feeling lost, will there be any narrative or mechanical system guiding them in quest progression without making it too obvious?  

- A journal system with notes, hints, and quests will likely be implemented.  

Finally here is a screenshot of the upper part of my class file in C# for the Chapters. It's in Spanish as it's my native language. 

I use to do this. First I think on how something should work, then structure it in this way on the class, and then I start implementing each feature in C# language, thinking in how I should add a parameter for each thing. Finally I make methods that do the magic.

Hope you liked this post, that may be curious for some! :)

- Louis

Get Caverns And Dryads

Download NowName your own price

Comments

Log in with itch.io to leave a comment.

(+1)

It was fun to read through your blog post - as all these considerations and thoughts are running through my head for months now. I try to achieve exactly the same: I want my game to consist of different stories which are triggered by player's actions and by certain rules (current location, planned todos, certain player stats and NPC stats, already played stories and so on). The overall goal is to make it feel  organic and non-linear - in my fantasy one can run through the game several times and can experience complete different stories.

I find it quite difficult to develop a system that consistently stores all the necessary data. I always switch between NPC-related classes (some kind of memory) and some kind of overall protocol. At the moment I decided to stay with a NPC related memory (so that I always know what the NPC can remember of the players choices - some kind of individual memory of a NPC about the players character) and a protocol for some general data. There is also still some kind of story-related memory where I protocol which story was played and which choices the player made / what the outcome was of the story but this makes it more complicated to collect information only relevant for one NPC...

I just write you as it might be interesting to talk about that? I create this system in Renpy / Python but apart from the concrete programming technique I think the overall problems and solutions might be very similar.

Hi. Thanks for commenting! My game is different type of story and point of view. If you are curious, I posted this on my blog:

http://www.beautifulfantasy.art/2025/05/the-views-on-romance-behind-my-game.html...

But yes, I am structuring it in what I call chapters, that are not lineal. Depending on what you do and how the different factors go, other chapters may happen. 

I already created the classes for that, but I am going to implement first simple quests and stories triggered by location and relationship. 

On your game, you may do something similar. As I see yours is dependent of many npcs, maybe having them as a class is good if they can do things when the main character is not there. Or if they react very much to what he does, or the same npc appears in different moments. 

For now I am basing it on events and the relationship of the characters and it's milestones. There are some chapters that will depend on that and others on random procedural things so they vary. Also I will add some npc but probably your classes need more detail that mine. 

I am using c#. Unity is used for UI only. The rest are my custom classes. 

I don't want to share the precise implementation I am using, but I like to discuss with other devs on an abstract sense. I think we may inspire each other although our type of game is different. You can email me if you want.