Ruins of Vha: Taking Encounters Beyond the Prototype
It is finally ready! After weeks of working on it in my free time, I have published a working prototype of my current project: Ruins of Vha. It’s small, with placeholder assets and a rough UI, and it has slimmed-out versions of most of the game’s main mechanics. I’m extremely proud of how it turned out, but transforming the prototype into an alpha build is a daunting task. After taking a break for a week, I mapped out a plan for expanding the game, starting with a revision to the Encounter System. Below is a short gif showing part of an encounter from the prototype.
When the player hits the interact key within the room, the party spreads out, and starts a dialogue ending with a choice. It isn’t a continuous scripted cut-scene. Instead, the encounter is broken down into a bunch of modular segments. Each segment handles a small part of the encounter, but the player will only see some of these segments when they interact. That’s because each segment has requirements that are checked right at the start of the encounter, and will only play if the requirements are met. This encounter plays out differently if there is no urn there, if the player is carrying an urn, or if other conditions are met. Parts of the encounter will only play once, and parts of the encounter are gated behind specific choices. In this prototype, I barely scratched the surface of what this type of encounter system can do, and I plan to expand it significantly in the coming weeks.
Below is a screenshot of what this encounter looks like in the Unity editor. A1 is the room code for that part of the map, so I included it in the names of each segment of the encounter. Each segment has a generic script that all segments have in common, a script specific to whatever kind of segment it is (dialogue, movement, animations, etc), and at least one prerequisite. These prerequisites are separate objects for my own ease of use, so I can drag-and-drop them onto segments and modify them in the inspector. The reason I’ve gone down this rabbit hole is that I’ll need to re-build the prerequisite scripts, and probably much of this encounter system, because the scripts they interact with are all placeholders for something I haven’t built yet: the Encounter Chronicle.
Encounter Chronicle might sound like an epic name for a glorified journal, but it’ll be a major pillar of the project. It will store and maintain information on all of the game’s encounters, their current states, and what the player has already seen and done in relation to those encounters. My goal is to use the Encounter Chronicle as the foundation for dynamic narrative content in this non-linear game. I’ll be able to design encounters that can seamlessly adapt to the death or capture of characters, the loss or destruction of key items, or even what would normally be considered a sequence break.
There is a key reason that I’ve held off on designing the Encounter Chronicle until now: the game didn’t need a save system. The prototype is currently only one zone, one combat encounter, one puzzle, and a handful of dialogue sequences. The next build of the game will have multiple areas, most of which will be larger than the demo area, and I’ll have to implement a save system of some kind eventually anyways. However I choose to implement saving and loading, it will need to be able to handle everything in the Encounter Chronicle, or at least a version of it that can be read. Over the next few weeks, I’ll be designing these two systems together, using the prototype level as a test area.
I’m really looking forward to sharing my progress! Until then I’m also taking another stab at a different prototype, The Dim Road, so you may see an update on that project in the next month or so.