Campaign structure ala Obsidian Mask of the Betrayer?
Dark_Ansem
Member Posts: 992
So, I was thinking: MoTB had, IMHO, a very intelligent module structure: different .mod files (around 6-7) for a single campaign, in which you'd freely switch from one to the other (first one being the prologue area, then the main city etc).
Of course, this would imply the necessity of ensuring that items with unique properties and a myriad of other things match across different .mod files. But I wonder, would such a solution be feasible for NWNEE adventures? Or perhaps the upgraded engine can handle epic adventures better?
Of course, this would imply the necessity of ensuring that items with unique properties and a myriad of other things match across different .mod files. But I wonder, would such a solution be feasible for NWNEE adventures? Or perhaps the upgraded engine can handle epic adventures better?
0
Comments
Mostly it's a question of module design principles. Each time the PC moves from one module to another, everything is going to reset to its initial state when the module is loaded, including all encounters, conversations, quests, etc.
The only way (that I know) to work around this is to script each encounter to check a campaign variable, to see if the PC has already been there. This is similar to using a Local variable to keep track of conversation branches (so for example, an NPC says "Nice to see you again" the second time the PC speaks to them, instead of repeating "Who the hell are you?" every time).
In a single module, encounter states don't completely reset each time the PC changes areas. Conversations will still start from the beginning (unless scripted to check a state variable), but dead monsters will stay dead (unless designed to respawn), looted treasure stays looted, etc.
When changing modules, however, everything resets from the beginning. So if you want to have a creature remember the PC, or an encounter/quest start from where the PC left off instead of restarting from the beginning, they need to check a Campaign variable to see where to start.
This is where it gets more complicated, because the designer has to plan for this up front ... each and every encounter, conversation, and quest that needs to be "remembered" between modules must have at least one corresponding Campaign variable, a script that checks the variable when the PC approaches, and a script which sets up the encounter based on the value of the variable.
If the script finds that the Campaign variable is empty, the encounter proceeds normally from the beginning. If the script finds a non-zero value, it changes certain things to match the present state of the quest. The changes can be as simple as conversation branches, exactly as for Local variables, or it can be scripted to set up a completely different encounter (for instance, the PC already killed all the goblins in a particular set of caves, so a tribe of lizard men has taken up residence instead).
I haven't made it deep into the scripts yet, I'm still trying to figure out how best to use campaign variables, as I (re-)learn the toolset after not touching it for 10 years.