When considering how the dungeon system is going to work, I leaned back and forth quite a bit. Would I create an editor tool that allowed me to map out paths? or would I put all of the load on a manager and try to be as reductive as possible? Overall, the outcome would be very similar, but the workload was stacked in very different places.
I opted for the later. The pros were that once it’s setup, its very scalable and easy to do so. The cons were in the setup itself; more robust structures and testing would be required in the short term, as well as the reliance on prefab setups. This could also come back to bite me if optimization became a bit of a thing as my reductive initial approach definitely isn’t the most resource efficient way of going about it. I am reasonably sure I can dodge this however (tempting fate).
First things first, I wanted to establish what the dungeon manager would need to actually do, before I started throwing large amounts of time at the scripts. This ended up as:
- The manager needs to have three narrative paths available for the player
- The manager needs to know where the player is at all times.
- The manager needs to know what each dungeon tile is requiring (events..etc)
- The manager needs to know what decisions the player has made and the outcomes of events (a nice to have, at this point).
- The manager needs to spawn in dungeon tiles that are determined by the above factors.
I’ve introduced a new concept above in the concept of ‘narrative’ paths, but what are they? For varieties sake, I wanted to include three different paths that the player could choose; these paths would contain their own narratives, characters, aesthetics, events and interactables. For the POC, I’ve determined three separate journeys that can be used; represented by means of a node system:
A more in-depth depiction of what each path could look like can be seen below.
I will go into a bit more depth when creating the narrative paths. However, for the sake of the dungeon manager, I just needed to establish what it would be required to cater for. Knowing this, I can now determine that the scripting will look like some form of overwatching manager with ‘path’ specific inputting. The ‘forking’ in the road should also be noted down.
The eventual idea would be to create some form of randomness to each of these paths/events. In the mean time, this will do.