What is this?
If any of you are interested in a rather technical explanation of what this system encompasses and why it’s important, continue reading. In short, this gif presents a preview of Vitality’s new World Scenario/Structure generation which can seamlessly generate scenarios into the world through a system we refer to as World Scenarios. This functionality is both an integral part of designing Vitality’s gameplay, and has been a rather difficult feature to implement.
What are World Scenarios?
In Vitality, we want to make the world feel both alive and interesting. We want exploration to be fun and worthwhile. Thus, we need a way to seamlessly generate scenarios (Such as Mineshafts, Dungeons, Abandoned Houses, etc) into the world as you explore, and keep track of their states in order to make them dynamic and interesting. If you are out exploring, there is the possibility of stumbling into an NPC who is camped out over the night—and who, if you come back later, will likely be gone, cleaning up before he left. Further, we want quests to be engaging, and as a result, we needed a way to to ensure that interesting quests can be created and their content generated into the world both contextually and dynamically. Up until now, meeting these requirements has been rather difficult.
The Problem
Although such a system may seem rather simple on the outside — after all, what’s so difficult about just generating structures within the world? — once you begin to break it down, it becomes clear how just tricky this sort of thing becomes in a game like Vitality, where nothing is absolute.
For instance, consider what would be required for an NPC Quest revolved around raiding an Abandoned Mine;
The NPC must first scan the world and see if such a scenario exists within reasonable distance from the player. Because Vitality is 2D and we can’t always ensure all scenarios exist everywhere, there is a low probability that this will work.
However, that’s not to say such a scenario can’t exist, so we shall allow the NPC to attempt to force in a desired scenario in a location close to the village.
This, however, has problems:
How do we deal with already visited regions? What happens if the player has already explored all valid areas around a village?
What happens if a player has already built/modified an area where we are attempting to fill in the scenario?
What happens if the player is in view? Or how about other players online?
How do we even determine “desired” locations in the world?
How are all of these changes synced & updated over multiplayer?
The Solution
The solution we came up with for this problem is one which addresses all above points in a clear, modular way. By simplifying the problem and drawing the line between what world modification is and isn’t acceptable, we now have a system in place which can be utilized at any point during gameplay to generate rather complex scenarios where needed. This will most significantly impact how unique and interesting our quests are. Whilst before we were limited to the rather rigid world around the player—now we have more flexibility to dynamically generate interesting content to drive interesting gameplay!
1 comment