Post reply

Warning: this topic has not been posted in for at least 120 days.
Unless you're sure you want to reply, please consider starting a new topic.
Name:
Email:
Subject:
Message icon:

Verification:
Type the letters shown in the picture
Listen to the letters / Request another image

Type the letters shown in the picture:
What color is grass?:
What is the seventh word in this sentence?:
What is five minus two (use the full word)?:

shortcuts: hit alt+s to submit/post or alt+p to preview


Topic Summary

Posted by: rreinier
« on: May 23, 2004, 03:08:50 PM »

OK, I'll test it as soon as possible. I'll warn you beforehand that I have my finals the coming week, but I'll try to test it as soon as possible  :)
Posted by: SimDing0™
« on: May 23, 2004, 02:59:04 PM »

Yeh, I was hoping you'd be willing to test it out. :) I'll send it along fairly soon... probably tomorrow.
Posted by: rreinier
« on: May 23, 2004, 02:54:20 PM »

3000 lines?! That was more than expected...

Anyway, I'm willing to test it to see if it really slows down gameplay. You can still add it as an optional component in any case.
Posted by: Kish
« on: May 23, 2004, 02:15:04 PM »

:(
Shouldn't that be ";_; ;_; ;_; ;_; ;_;"?
Posted by: SimDing0™
« on: May 23, 2004, 01:54:05 PM »

Okay, I think I've got this working, but... 3000 lines added to baldur.bcs. :(
Posted by: rreinier
« on: May 22, 2004, 12:20:32 PM »

It doesn't use less variables, but you've got less script running at any one time.
I think the only constantly running script that my method needs is a check if reputation has just changed.

Looping scripts are even less healthy, as they mean it takes ages to do anything.
That wouldn't really matter, I think, since the script only plays when you initiate dialog with an NPC. It's not playing constantly...
Posted by: SimDing0™
« on: May 22, 2004, 11:50:40 AM »

I'm not sure how your method uses less variables. It also seems to use one for each NPC...
It doesn't use less variables, but you've got less script running at any one time. In theory. Except it probably wouldn't anyway. A tenner says your way works far better.

Quote
I think it would be possible by making a loop in the script, which keeps playing until the "old reputation" and the "current reputation" are the same, and adds one to both the "old reputation" and the "NPC happiness" each time...
Looping scripts are even less healthy, as they mean it takes ages to do anything.

Quote
EDIT: a problem that occured to me with your method: The happiness variable of an NPC would change only after he/she joins the party, which would mean that it would be possible for him/her to join a party which acts completely contrary to his/her beliefs, making the NPC leave immediately after. My method allows the NPC to check his/her happiness in the "d'you want to join us (again)"-dialog, allowing them to decline if they're not happy about the party.
Having the happiness variable set to reputation initially isn't a problem.
Posted by: rreinier
« on: May 22, 2004, 08:21:40 AM »

What is the problem with adding ten or twenty extra variables? Will it cause a significant increase in save/loading times, or slow the game down?

I'm not sure how your method uses less variables. It also seems to use one for each NPC...

- When an NPC rejoins, the current reputation variable is compared with the reputation variable set when they left. The difference is added to their happiness. This is hard because calculations like this are tricky in the IE.
I think it would be possible by making a loop in the script, which keeps playing until the "old reputation" and the "current reputation" are the same, and adds one to both the "old reputation" and the "NPC happiness" each time...

Next question: how do we display the happiness of each NPC for the player to see?
To answer your question with a question: DO we display the happiness of each NPC for the player to see? I'd say no, because the player can always hear the "unhappy" sounds of the NPC, so he/she would know anyway if he's getting close to the edge. Also, this variable wouldn't work the same for each NPC. For good NPC's, a high value would be good, while for evil ones, a low one would be best.

Also, it encourages roleplaying if the player doesn't know exactly when an NPC will leave.

EDIT: a problem that occured to me with your method: The happiness variable of an NPC would change only after he/she joins the party, which would mean that it would be possible for him/her to join a party which acts completely contrary to his/her beliefs, making the NPC leave immediately after. My method allows the NPC to check his/her happiness in the "d'you want to join us (again)"-dialog, allowing them to decline if they're not happy about the party.
Posted by: SimDing0™
« on: May 22, 2004, 07:03:01 AM »

The problem is that this requires a separate global variable for every NPC in the game, which means adding a lot of stuff to baldur.bcs. I think I'm already pushing what I can get away with adding there with the Virtue code. I was trying to think of a way I could do it with NPC scripts, but I can't see an effective way of doing this.

The method I've thought of:

- When an NPC leaves the party, they take their current happiness variable with them. However, they also have a variable set indicating current party reputation.
- Another variable keeps a track of party reputation throughout the game.
- When an NPC rejoins, the current reputation variable is compared with the reputation variable set when they left. The difference is added to their happiness. This is hard because calculations like this are tricky in the IE.
- While an NPC is in the party, Virtue changes also affect their happiness variable. This is also hard because of the way I've implemented Virtue. The way I'd do it is have each Virtue change also increment change variables for every party slot, which would then alter their happiness variable via NPC script.

Yes, this is far more complicated than yours. No, I'm not sure which would work better. I think some experimentation is warranted.

Next question: how do we display the happiness of each NPC for the player to see?
Posted by: rreinier
« on: May 20, 2004, 07:02:22 AM »

Well, the changing of the variable for party members shouldn't be a problem, should it?

As for outside party members, I'd suggest:

- every reputation change is replaced by setting a global variable (for example, if Reputation would have gone down by 1, the variable is set to -1).
- a script checks if that reputation variable is zero. If it isn't (i.e. if reputation has just changed), it adds the value of the variable to repuation and to the happiness variable of all non-party members, and sets it back to zero

possible?
Posted by: SimDing0™
« on: May 20, 2004, 06:15:35 AM »

I like this idea. However, there are technical problems with its implementation., which means that unless I have a sudden revelation, it's not too likely to happen.
Posted by: rreinier
« on: May 19, 2004, 04:03:34 PM »

OK, I'm not sure if this would be possible (I think it is), but I have a suggestion to further refine NPC disapproval.

Reputation is how people outside the party see the party, and Virtue is pretty much how party members see the party. However, the problem with NPCs is that they can spend time both inside and outside the party. What I'm suggesting is that each party member gets his/her own "happyness variable", which would be on a scale of 1 to 20, just like Virtue and Reputation. If they're in the party, Virtue changes will also change the happiness variable. If they're outside the party, Reputation changes will change the variable. This allows for party members to leave right after an evil/good act has been committed, but keeps them from all leaving at the same time. It also makes more sense, since the NPC's personal variable is changed according to the position from which they view the party (party member/non-party member) at all times.
Posted by: SimDing0™
« on: May 19, 2004, 11:03:42 AM »

The next version of Virtue should retain NPCs leaving instantly as a feature. And I don't think I make any alterations to NPCs leaving in ToB. So if they didn't before, they probably won't now either.
Posted by: Caswallon
« on: May 08, 2004, 03:59:42 AM »

When your reputation hits the bottom in the original game, NPCs play their "unhappy" Sounds for some time, and eventually (with some delay) they leave the party.
I don't know on what that delay is depending (could be a timer or such), but they leave all together. (Well, one after another, to have their dialogue...)
If I'm not mistaken, NPCs don't leave the party in ToB anymore, regardless of rep.
Posted by: Cybersquirt
« on: May 07, 2004, 07:15:21 PM »

Quote
I worry it may look daft to have potentially 5 NPCs leaving all at once. Although on consideration, it's probably not such an unreasonable proposition. Any idea how Bioware did it? I have a feeling with Virtue you'll never hear the breaking point voice clips...did you in vanilla BG2?
I thought the ultimate point of virtue was repercussions for your actions - the best way to tell anyone you disagree with them, so resoundly, is to leave in that fashion.  It's too ..thoughtful to have other hoops to jump through; the PC should know - they killed that last peasant, Aerie didn't like that too much.

breaking point dlg: I only ever got Viconia's, right before she left, because the others are set so low.