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?