Random areas...
Posted: Tue Nov 11, 2003 9:26 am
So, I had this concept I've been trying to work on lately about open ended quest type areas. The concept is that there is a key group of NPCs that doesn't change at the 'entrance' to a given zone set up as a random quest zone. They could be things like priests, mages, lords and ladies, etc... Perhaps an entire court... As far as the story goes, these are the people holding their particularly turbulent land together, and as such, they have no time to complete the tasks themselves, only determine what courses of action must be taken, or at least, find clues about it.
So, enter our adventurers.... Once the part leader speaks to one of these NPCs it will start a script that generates a random task for the NPC to spit out, at first it would only be the basic type of task... QUests to kill a given NPC or creature, find a specific object, accomplish a scripted task... At this point in the process we don't assign specifics.
Once the basic type of task is determined and accepted another script would run tossing out even more randomly generated (picked from a table, case() type stuff..) information about the quest, all the while spawning the necessities throughout the module (I think it would have to run as its own module out of sheer necessity...). Eventually you have a quest complete with locations that must be visited, monster encounters both scripted and random, items both scripted and random, quest and non... and interactive NPCs along the way.
This would , of course, require some rather massive script work and a ton and a half of variable assignments. One would have to minimize scripts that acted on heartbeat and instead set up a lot of trigger points. You would have a common map that applied to pretty much all the quests, but the interior map of hte cave on the hill or the tower in the valley would be different depending on the quest type that was generated. It would be a matter of reassigning portal destinations via the script to areas that are otherwise unconnected.
Character and party levels would, of course, be taken in to consideration when we generate the quest to figure out what sort of critters and NPC power level, not to mention loot levels should be doled out in addition to insuring none of the random encounters are guaranteed party death.
As for quest 'security' the party members at the time of quest assignment are each given 'keys' in the form of a variable. Quest necessary items and NPCs should only appear to those that are properly 'tagged', or some such, to insure that someone can't destroy someone else's quest (intentionally or otherwise) and of course we would have to have a method in place of making sure that certain 'powerful' quest items were removed from the characters should they either complete or fail the quest... That wand of fireballs in the hands of a first level wizard, for example, while 'necessary' to completion of the quest, would obviously present a balance issue.
Anyway, the whole principle to the thing would be writing the scripts so that they are pretty completely generic and in order to add or remove 'quest' content it's just a matter of adding data to tables or, at the worst, adding/removing valid cases from scripts and dialogue options manually. That would, in theory, provide pretty much endless amounts of content that is not only somewhat level dependant but allows at least a minor escape from the rigamarole of 'Bah, we've been to every single area the map has to offer and now we have to wait for someone to have tons of time on their hands to design new areas for us to explore...'
Anyway, I'm not a genius with NWN scripting, yet, so I figured before I started banging my head against the table for such a vast undertaking that I would see what folks thought about the concept in terms of usefulness and fesability?
So, enter our adventurers.... Once the part leader speaks to one of these NPCs it will start a script that generates a random task for the NPC to spit out, at first it would only be the basic type of task... QUests to kill a given NPC or creature, find a specific object, accomplish a scripted task... At this point in the process we don't assign specifics.
Once the basic type of task is determined and accepted another script would run tossing out even more randomly generated (picked from a table, case() type stuff..) information about the quest, all the while spawning the necessities throughout the module (I think it would have to run as its own module out of sheer necessity...). Eventually you have a quest complete with locations that must be visited, monster encounters both scripted and random, items both scripted and random, quest and non... and interactive NPCs along the way.
This would , of course, require some rather massive script work and a ton and a half of variable assignments. One would have to minimize scripts that acted on heartbeat and instead set up a lot of trigger points. You would have a common map that applied to pretty much all the quests, but the interior map of hte cave on the hill or the tower in the valley would be different depending on the quest type that was generated. It would be a matter of reassigning portal destinations via the script to areas that are otherwise unconnected.
Character and party levels would, of course, be taken in to consideration when we generate the quest to figure out what sort of critters and NPC power level, not to mention loot levels should be doled out in addition to insuring none of the random encounters are guaranteed party death.
As for quest 'security' the party members at the time of quest assignment are each given 'keys' in the form of a variable. Quest necessary items and NPCs should only appear to those that are properly 'tagged', or some such, to insure that someone can't destroy someone else's quest (intentionally or otherwise) and of course we would have to have a method in place of making sure that certain 'powerful' quest items were removed from the characters should they either complete or fail the quest... That wand of fireballs in the hands of a first level wizard, for example, while 'necessary' to completion of the quest, would obviously present a balance issue.
Anyway, the whole principle to the thing would be writing the scripts so that they are pretty completely generic and in order to add or remove 'quest' content it's just a matter of adding data to tables or, at the worst, adding/removing valid cases from scripts and dialogue options manually. That would, in theory, provide pretty much endless amounts of content that is not only somewhat level dependant but allows at least a minor escape from the rigamarole of 'Bah, we've been to every single area the map has to offer and now we have to wait for someone to have tons of time on their hands to design new areas for us to explore...'
Anyway, I'm not a genius with NWN scripting, yet, so I figured before I started banging my head against the table for such a vast undertaking that I would see what folks thought about the concept in terms of usefulness and fesability?