Choose Your Language

Tuesday, 16 September 2008

The Life System & The Notice Board

I have managed to get a couple of things out of the way in the last week that I needed in place before I could continue with the main story. The main one was to finish development on what I call, The Life System. This is, effectively, a combination of a faction and influence system that helps govern how the NPC's react to the party of PCs subject to how the PCs treat them.

As I have allowed a player to choose to attack an NPC at any time, then I needed to design a system that would have other NPCs come to the aid of the one attacked if need be, and at the same time, not make it so the player could inadvertently cause a problem with turning everybody hostile to them, whether by deliberate aggression or by accident. I wanted to allow the player the opportunity to attack anybody at any time, so that it could be left to play a more evil role if they wanted to. Note, I don't actively encourage this sort of activity, but I also wanted to allow the player the freedom to try to play the game the way they want to. Of course, this does open a number of issues to ensure the game can still be completed, but I do have a solution in mind.

The Life System In Action

Suppose a player attacks a local male soldier. Immediately, the attacked soldier NPC will turn hostile to the party of PC's, and at the same time, any nearby allies (or defenders) of the soldier will come to the soldier's aid and attack the party as well. Note, however, the soldier's allies do not show as hostile, and the player must right-click select any of the allies to attack them. However, this has the added benefit that if the player chooses to ignore the soldier's allies and run away, then the allies will stop their attack. (They were simply trying to break up the fight.)

The original soldier (if still alive) will, however, remain hostile for a few more rounds and try to continue the fight. If, however, the party escape the soldier, he will eventually return to non-hostile within a few more rounds. The next time they see him, they can approach him as a non-hostile NPC. However, if they approach too soon after he has "cooled down" from being hostile, he will still not speak with them, as he will now be scorning them.

Scorning is part of the influence section of the Life System, and is one of a number of levels that determines how an NPC reacts to the party of PCs. Eventually (over a short period of time), the soldier will even have this level of his opinion of the PCs reduce to simply disliking the PCs, at which point, the PCs may be able to work in an apology (if they so desire) and re-establish some sort of communication with the NPC, even if the soldier's new opinion of the party still treats them frostily.

I hope to have this Life System in place for all NPCs and not just for companions. While companions can have a bit more flexibility with the Influence Section, the fact that other NPCs can use the same system saves me a great deal of time and worry when it comes to a player who may like to try attacking for the sake of it. So far, in testing, the system works well, and I hope it will make the environment of NPCs appear more realistic and alive. Hence its name: The Life System.

Party Conversation Interaction

On the back of this system, and with some other code, I have now also included the multi-PC interactive party conversation. Basically, even prior to SoZ, I had wanted to include a conversation system that allowed the player's best skilled PC's to be able to be involved with any conversation the party may have, so that the best skills can be used. (E.g. Diplomacy, Intimidate or Bluff.) Now, if a player has a conversation where these skills are required, the player will be able to let the PC in the party with the best skill speak the line. And although it does not show the actual PC in the cutscene, it does, however, allow the best stats for the PC used when a skill role has to be made. I have also taken into account whether the PC is capable and within range before allowing the PC to be able to comment.

Notice Board

I have also finally managed to make my Notice Board, along with pinned scrolls for the PCs to be able to read.

This was something that I wanted to add, and was stumped at how to get the individual scrolls in place. Eventually, even after struggling to build the board itself, I got the final tips I needed from BGP Hughes Effects Editor Tutorial and looking at Merecraft's Wanted Poster.

The whole task was more complicated that I thought it was going to be, and I still think there is room for better tutorials in this area in general.


Amraphael said...

Interesting post. I really enjoy reading about things like this as it both encouraging and helpful.

Lance Botelle (Bard of Althéa) said...

Hi Amraphael,

I suppose having a realistic reaction from NPCs was one of my main goals when building this campaign.

I did not like the way the OC stopped some combats. I know why they did it: to allow cutscenes and conversations. However, I felt that was a little too orchestrated and wanted to get around that, and, of course, allow for the player to do their own thing wherever possible.

Now, its just up to me to make sure this degree of freedom does not break the plot. ;)

Although, one could argue that killing (for the sake of it) may well prevent the player from discovering an important bit of information from someone they should not have killed. That said, I hope to even skirt around these sort of story-breaking issues if possible.


Merecraft said...

That sounds like a really interesting system. You are much braver than I in making all NPCs attackable!

Glad you found the wanted poster useful too - that noticeboard looks great :)

Lance Botelle (Bard of Althéa) said...

Hi Merecraft,

Your wanted poster helped give me the extra push I needed to get the notice board finished. :) Thanks for sharing it.

As for the "attackable" NPCs, I know what you mean. I just hope players do not abuse the system. If they did, they would probably spoil it for themselves. Although, I will consider adding a further step that would make it so that persistent offenders will have NPCs go permanently hostile to them ... And then I may even introduce "KILLER" the hard case defender of all NPCs. ;)


Frank Perez said...

I like your approach in changing the behavior of the NPCs when attacked. Thanks for sharing your ideas once again. :)

Lance Botelle (Bard of Althéa) said...

Hi Frank,

No problem. :)

Basically, I think back to how my players like to play from PnP days and then try to accomodate it. ;)

I know being able to attack anybody at any time was always a real potential situation, and then I had to work out how to "bring back the peace" for a CRPG environment. (It's a lot easier when you are the DM in control compared to having AI handle it.)


Anonymous said...

"As for the "attackable" NPCs, I know what you mean. I just hope players do not abuse the system. If they did, they would probably spoil it for themselves. Although, I will consider adding a further step that would make it so that persistent offenders will have NPCs go permanently hostile to them ... And then I may even introduce "KILLER" the hard case defender of all NPCs. ;)"

I was going to reccomend this, but you've beat me to it! :)

I always appreciate the level of thought you give to each decision in your campaign--it makes for an interesting read and asks other designers to try a bit harder.

Quillmaster said...

That notice board looks really cool with the scrolls I made you in place :)

Lance Botelle (Bard of Althéa) said...

Hi Chaos Wielder,

Thanks for your kind comments.:)

I do sometimes wonder if I make extra work for myself, but I think the end results will be worth it. I also do this to help make up for the "area design" skill that I lack. My areas will not be the most "pretty" of designs, and so I hope to make up in "other" areas instead.

Hi Geoff (Quillmaster),

I was wondering if you would notice the miniaturised versions. ;) Players obviously get the fuller version if there is something to read.


AmstradHero said...

I love the "life system" idea. I remember back in the days when innocents would get injured in a fight accidentally, and suddenly the entire town would be out for your blood - forcing a reload.

While we don't necessarily have that problem now, the idea of being able to occasionally attack NPCs and not have the entire town go aggressive is a very nice one indeed!

Lance Botelle (Bard of Althéa) said...

Hi AmstradHero,

I agree. :) The main difficulty I had was ensuring the factions were set up balanced enough to ensure only "friends" or those "capable" of defending would become involved, and then only while the player remained attacking the NPC in question.

Much of this is available with some default settings, but altering the faction of the attacked PC and changing their influence level is all part of the new system.

Thanks for the encouragement. :)


Shaughn said...


This is some really neat stuff. The life system seems like quite the accomplishment, look forward to seeing it in action.

Lance Botelle (Bard of Althéa) said...

Hi Shaughn

Welcome to the Althéa blog! :)

I hope it stands the test of time. ;) As I say, it appears to be working fine at the moment, and is actually fairly straight forward scripting. I think the trick to master is to make sure I can keep the plot working in most (if not all) circumstances.