top of page

A Procedurally Generated Narrative World

HuntersTrail_Gameplay1.PNG

Introduction

Take on the role of a tribal warrior sent to face a legendary beast, the Urs'Tlar, in a mysterious forest to prove your worth to be chief of the tribe. Procedurally generated narrative options will open up as you explore, providing useful items and story developments that may help overcome the beast. 

A Twist on Interactive Storytelling Methods

The dynamic narrative part of the game requires stories to know that they are ready to be presented should the conditions be fulfilled, while the procedural generation part of the game requires these stories to form the fictional world around the player as they make decisions.

This means that the player is actually creating the world that they are exploring, as they explore it.

HuntersTrail_Gameplay6.PNG

Designing the Tool

Storylet Design

The content generation tool was written with the idea of providing a set of conditions, possible stories, and outcomes when this story is selected. Since I was both the tools developer and content creator, there was a constant need to go back and forth between adding features to the tool to speed up content generation, as well as spending time planning and writing the content itself.

HuntersTrail_Editor.PNG

Scriptable Objects

With the ability to customize the editor and use drag-and-drop functions to quickly assign variables, Unity's Scriptable objects system was extremely useful in creating a flexible tool that could piece together many little puzzle pieces into a coherent whole, held together by a storylet object. 

Although, it does get needlessly complex sometimes when sorting through hundreds of storylets, conditions, replacement grammars, and objects in the game world.

Writing a 
Non-linear Story

HuntersTrail_Gameplay3.PNG

A challenge unique to this concept of exploration through text is that the stories must be detailed and compelling enough to invoke curiosity and excitement, while being generic enough for them to avoid seeming out of place when appearing at any point in time. 

​

Surprisingly, a part of the solution I landed on came from adapting a similar system used by behaviour trees in AI, by combining a mix of standalone nodes, sequences, and selectors to gel mini-adventures together. 

Like most procedurally generated content, there needed to be sufficient breadth of scope to keep players immersed and lost in the seemingly endless sea of content served to them. 

​

Once the gameplay limitations and entire scope of desired experiences were clearly defined, creating the 100+ storylets currently in the game became easier to plan and implement. 

Current Progress

The game is still a work in progress, as the many gears that grind together to make it work still needs some fixing. There is also an exciting backlog of stories waiting to enter the game in the near future.

bottom of page