[project1dev] Faction reputation system

  • From: Alan Wolfe <alan.wolfe@xxxxxxxxx>
  • To: project1dev@xxxxxxxxxxxxx
  • Date: Wed, 15 Apr 2009 09:40:54 -0700

Ok so part of this game is that each time you play it through it's different
based on decisions you make etc.

My idea for this is 2 fold:

1) We have faction reputation.  For instance if you quested a bunch against
some gnome miners to get their gems for helping a king make a crown for his
new queen, whenever you do stuff against them you lose faction rep for
them.  That means when you go talk to them they are less friendly to you,
and perhaps even straight up hostile and attack you on sight.  Alternately,
if you were friendly with them, they might sell you items, give you quests,
give you safe passage through their tunnels etc.  This is just like WOW
except i'm thinking we should HIDE a player's faction rep scores.  Dont even
show em.  The reason for that is that faction rep grinding is sooo retarded,
and also, if we don't show it, people won't as easily understand the
mechanism for why the game is different each time it's played, which will
give it the illusion of increased depth!

2) There will be certain things where when you make a decision one way or
the other, it just straight up sets a variable to a value (instead of
chaning a rep score).  So, in this case, you can have npc's check specific
variables for values instead of doing a rep score check.  That way, for
instance, like in FF3 when you choose to make the esper into a sword or keep
it an esper, if you made it a sword and visit some espers they might hate
you and say "we can't trust you, you would turn us all into magical weapons
for your own gain", but if you left it an esper they might say "welcome
friend".


Basically how i see bowh of these working from a technical stand point...


* We'll have a storage system for game variables.  From the scripts you will
call something like Faction=GetGameVariable("Faction_CaveGnomes");  and it
will return that variable's value.
* You can call SetGameVariable("Faction_CaveGnomes",Faction+0.05); to set a
game variable's value
* When you save your game, it saves all the game variables to disk
(encrypted to make for more difficult cheating!) and when you load your
save, it just loads the game variables back in.
* everything that we need to save - including inventory, experience points,
etc - will all be stored in this game variable system.
* it will also be used for things such as keeping track of which treasure
chests the player has already opened, and will keep track of permanent
status of things (ie is the cave caved in? if so different models will be
loaded when loading that level)
* when you make an NPC, right there in your NPC script you can pull up any
variable you want and do if statements against them to do checks for
specific items in the players inventory, do faction rep checks to see how
certain groups feel about the player, see what level the player is, etc so
basically you should be able to test against ANYTHING when deciding how the
NPC/enemy will react to the player.


What do you guys think?

Other related posts: