Grasp of the Fallen
Grasp of the Fallen / Engines / Conversation /

Emotions & More Technical Planning

Updated: 4/8/2006
COURAGE; determination, boldness, spirit, gallantry
EMPATHY; understanding, comprehension, feel, sensibility
FAITH; trust, expectation, reliance
FREEDOM; liberty, independence, immunity
GRATITUDE; thankfulness, acknowledgment, recognition, praise
HOPE; confidence, belief, assurance, security, secureness, desire, aspiration, optimism
JOY; pleasure, happiness, gayety, rejoicing, delight, triumph, congratulations, celebration
LOVE; fondness, liking, inclination, regard, admiration, affection, tenderness, devotion
PITY; compassion, tenderness, humanity, charity, sympathy, mercy, leniency
RESPECT; self-esteem, devotion, deference, consideration, honor, respectable, prerogative

ANGER; resentment, irritation, annoyance, provocation, irritability, aggravation
APATHY; coldness, insensibility, unconcern, recklessness, coldheartedness
CONCEIT; vanity, egotism, fantasy, complacency, immodesty, presumptuousness, boastfulness
DESPAIR; haplessness, sadness, dejection, discouragement, lowliness, pessimism, discontent
DOUBT; skepticism, irreligious, dubiety, disbelief, suspicion, distrust, hesitancy, indecision
ENVY; jealousy, spite, malice, ill-will
FEAR; anxiety, worry, apprehension, mistrust, dismay, panic, timidity, despondency, restlessness
GREED; desire, cupidity, avidity, covetousness, greediness, impatience, lust
GUILT; improbity, misconduct, misbehavior, sinfulness, error, fault, delinquency, dereliction, transgression
HATE; loathing, resentment, dissatisfaction, coolness, hostility, acrimony, malice, dispirit, bitterness, revenge

Duel purpose
PRIDE (POSITIVE); dignity, decorum, reserve, self-sufficiency
PRIDE (NEGATIVE); arrogance, insolence, pomposity, vanity

Anger / Joy
Apathy / Empathy
Despair / Hope
Fear / Freedom
Greed / Gratitude
Hate / Love
Doubt / Faith
Envy / Pity

Anger | glowing red / bezerk / vibrating
Fear | defenseful / pale
Worry | caution yellow
Grief | regret / black
Joy/Sadness | green / blue

survival (food, rest)
emotional (anger, fear, worry, grief, joy/sadness)
figure out how many events a node can remember and sort quickly  - find the average amount of knowledge an AI character uses over time and how to optimize updates...

in 30 minutes, one node could have:
had a conversation (conversation)
learned about a criminal (communication delay)
sold some goods (business)
got a quest (events)
bought some preperations  (business)
begun traveling to quest (pathfinding)
fought multiple times (battle)
completed the quest (events)
rested (stats)

you can see other conversations happening within the audible range.  Offscreen talking shows up onscreen as well. (ventilation shaft,  other side of wall, people screaming)

AI nodes traveling / fighting in groups on their own. (pathfinding) 

your AI teammates should you give suggestions or ask for help in battle (conversation windows) other "all AI groups" should do the same.

the way you defend / attack creates emotional responses in your enemies and teammates.   This creates a more dynamic battle situation where the emotions and personality change the outcome.  The player doesn't have absolute control either.  You will get tired / sad / angry / fearful / grief (crying)  just like the others.  this may delay or weaken your attack, but it can also put you into a beserk and become more powerful.  A combination of emotions, personality and tiredness greatly affects all stats.  The emotions of your enemy and team mates also changes your own emotions.

each non-character node must know distance to all connected nodes and the enemy encounter rate must be defined for each allegiance including nature.  In friendly terrority, you will have fewer battles if the allegiance guards the region well.

each character can only carry so much extra weight.  
The most individual items possible is 256 items including magic spells.
Everything a node learns goes into short term memory which is unlimited, but decays over time.
Each character's long term memory can hold up to their knowledge stat value.  When knowledge is full the character replaces their oldest knowledge with new knowledgeNodes.

when knowledge is lost, the pointer to the globalKnowledgeNode is checked for any remaining references.  If there are none, the globalKnowledgeNode is deleted as well.

the emotional reaction to a peice of knowledge changes on each loop, but the last two emotions are averaged with the new emotion to prevent sudden drastic changes.
tiredness is always considered and may override the knowledge priorities at any time.

the changing of the guards could allow a strategic time for attack. (day/night laborers)

when a region is attacked, the port may be taken over. The new nation will have to forge a trade agreement with the incoming shipments.  some shipments may be stolen or refused.  Eventually they realize the ships will never return and send out scouts for information and discover their ships were destroyed by the enemy.  If the merchants become crippled, the society will start to crumble, so war is declared against the allegiance that refused to trade.  The nation tries to rally support from its allies and trade partners.  If other allegiances will start trade with them instead, then the war might be avoided.  The society can also reduce supply to raise prices and demand for the goods especially if they are the only source.   Each allegiances will buy resources from the cheapest friendly merchants.  they will only trade with unfriendly merchants if the price is a great deal cheaper.  The resources each allegiance needs to carry out their goals varies.   Some allegiances are in a growth spurt and increase their needs.  Others do only what is needed to survive.  This is based on the stats and personalities of the entire culture (statistics)  The allegiance stores what decisions have been made towards each allegiance.  When a new allegiance is formed, the decisions are reset.  The form of government and which nodes rule and where they rule can be re-decided.  remember the solutions people choose to the problems of society are what determine changes or splits in allegiances.

each emotion has a range of 8, joy/sadness is 16  There is no neutral for joy/sadness
are the bit operations on 2 bytes slower then using regular 5 bytes instead?

knowledgeNode{ // 8 bytes
 WORD emotions; // 3 bits for anger/fear/worry/grief (range 8)   4 bits for joy/sadness (range 16)
 WORD previousEmotions; // avg the now, current and previous to get the actual emotion reaction to this knowledge
 int * globalKnowledgeNode; // 4 byte
 BYTE priority; // 1 byte - 256 values // initial long term priority assigned to a node (stays the same)
 BYTE actualPriority; // short term priority based on current emotions & personality (constantly changing)

nodePersonality{ // 16? bytes
 // list of common personalities and weight their value for each node
 int type;// Introvert / Extrovert
 int Judger / Perceiver
 int Thinker / Feeler
 int Sensor / Intuitive
for 1500 nodes to have 256 knowledge, 5mb memory is used.
for 3000 nodes - its more like 10mb.  

personalities evolve and adapt over generations (darwin)
long term priorities decay or strengthen based on personality.  Leaders will take advantage of their anger while peaceful peasants will avoid it and seek happiness.  The fearful will run from danger while the fearless will charge into battle.  Personalities encourage the growth of physical and mentals stats as well.  An angry person may focus on strength and power while the peaceful may learn a skill or magic that does people good.  The lazy people will have terrible / forgetfull priorities and be easier taken advantage of.

perceiver = lazy / playful

Node size:
regular stats: 30 bytes
elements: 24 bytes
the stats are at least 100 bytes each

7000 24k vertices updating 60fps (160k)

50 - 100 nodes each per 9 capitols = 675 nodes
20-30 nodes per 10 towns - 250 nodes
5-20 nodes in 20 open areas = 200 nodes
5-20 nodes in 40 special locations = 400 nodes
1500 character nodes

10 allegiances


©2004-2022 - All Rights Reserved. An RPG game under development by Bruce Kirkpatrick | Jetendo CMS | Web Design | Have comments? Email Me