Skip to content

Campaign structure ala Obsidian Mask of the Betrayer?

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?

Comments

  • Lex23Lex23 Member Posts: 34
    MOTB was by far my favorite NWN1-2 campaign, and I agree, the module structure was very cool. I never played much with the NWN2 toolset, so I don't know if it has any special capabilities which make multi-module campaigns easier ... but I think NWN1 could do this by making heavy use of Campaign variables rather than Local variables, to track the current state of conversations, quests, etc.

    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).
  • raz651raz651 Member Posts: 175
    Wouldn't it be as simple as loading a saved game with the current character?
  • Dark_AnsemDark_Ansem Member Posts: 992
    Lex23 said:

    MOTB was by far my favorite NWN1-2 campaign, and I agree, the module structure was very cool. I never played much with the NWN2 toolset, so I don't know if it has any special capabilities which make multi-module campaigns easier ... but I think NWN1 could do this by making heavy use of Campaign variables rather than Local variables, to track the current state of conversations, quests, etc.

    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 tried to dig into the script, but it was way too complicated for me, Thanks for your precious, precious insight.
  • Lex23Lex23 Member Posts: 34
    raz651 said:

    Wouldn't it be as simple as loading a saved game with the current character?

    I don't believe so. Saved games are module-specific, so they only carry the state information about the module they were saved in (which monsters have been killed, which chests have been looted, any Local variables set by scripts, etc).

    I tried to dig into the script, but it was way too complicated for me, Thanks for your precious, precious insight.

    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.
  • Dark_AnsemDark_Ansem Member Posts: 992
    Lex23 said:

    raz651 said:

    Wouldn't it be as simple as loading a saved game with the current character?

    I don't believe so. Saved games are module-specific, so they only carry the state information about the module they were saved in (which monsters have been killed, which chests have been looted, any Local variables set by scripts, etc).

    I tried to dig into the script, but it was way too complicated for me, Thanks for your precious, precious insight.

    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.
    Welcome to the club. I have high hopes for this EE. I just wish BD was more open about what they want to do.
Sign In or Register to comment.