Hi Keli.
Thanx for your answer.
I've been thinking about a cultural model these days, and what I've come up with is
something well beyond the scope of what I was first thinking about.... In fact, I've
come back to smthg I was thinking about since quite a long time....
I think this is feasible, but if u intend to have a working version soon, this could
not fit in the time lane.
Anyway, I give you my first thoughts, I will be looking forward for your feedback.
(I will try to put my ideas in a coherent order...)
The general idea is based on the Multi-Agent Sytem theory (also called kenetics).
The theme of kenetics (maybe u know this already, maybe better than me, anyway I will
write a brief introduction, especially cause I can't give u english references on the
subject. If u search references, don't serach for "agent" cause u would only find
samrt web-based agents that have nothing to do with the subject. Rather search for
kenetics - I'm not sure of the spelling). Well, the theme of kenetics is to simulate
a high level behavior only with low level models. More precisely : you build agents,
with a model of their behavior, and making them interact you can simulate the
behavior of a whole group of agents. This is a very powerful technique, cause u can
create very sophisticated behaviours at the high level with very simple agent models.
Examples of realisations with this is the simulation of the behaviour of a anthill
with the agents being the ants. Resaerching a realistic high-level behaviour, the
researchers have been able to fine tune the behaviour model of the ants (then
verifying it matched the reality). In this particular case, they had a very realistic
model at the high level, which helped them to understand how it worked at the
agent-level. The method is to design agents, make them "live", observe the behaviour
at the level u wish to simulate, then tune the agents to have a better-matching
behaviour and iterate this process until u are happy of what u have. Other example of
application is the simulation of bio-systems - in this case, the simulation would be
quite impossible to build without this technique.
Another intersting point in the Mutli-Agent Systems (MAS) is that they embrace the
whole range of AI technologies. I mean that the agents can be "cognitiv", samrt if u
want, and built with traditionnal AI. I also mean that a neural network is basically
a MAS. In this particular case, u have a MAS built with "reactiv" agents - they are
not smart, they only react to external signals/events.
OK. Now a little bit theory.
The basic and necessary pieces for a MAS are the agents and the communication sytem.
As I mentioned, the behaviour of your model is the result of the interactions of the
agnts composing your system. For interaction to occur, u must have the agents to
communicate. I use this word in a very general sense : this means direct
communication (a dialogue) as well as signal coming from the environment - what the
agent "senses" (sees, hears ...). Thus, u have two types of communication :
"intentional" communication and "propagated" communication. Propagated communication
embraces every type of signal, be they natural or artificial. This covers everything
an aget senses. Intentional communication originates from an agent who whishes to
communicate. It can take several forms : direct (point to point), announce (everyone
who can hear).
Similarly, u have mainly two categories for the agents : the cognitiv agents and the
reactiv agents. The complexity of the system and the complexity of its implementation
mainly depends on the type of agents u have.
Whatever they are, the agents behaviour primarly depends on one factor : its goal (or
goals). Eventually, u also have contraint(s) (I mean internal constraints. Obviously,
u always have external contraits, the primary being to have to live with other agents
who have their own goal). In the case of the ants, each ant's goal is to secure the
persistence of its anthill. Then, the interactions between the agents are described
in terms of cooperation - their goals are compatible - or cooperation - their goals
are incompatible.
An agent is described in term of "state". The state is simply a set of values which
describe, in a way, its "state of mind" - in object terminology, these are its
attributes. Also, an agent has a set of behaviours, or actions (or methods in object
terminology), which are directly influenced by its state. The signals/communications
an agent receives generally have an effect on its state. Then, its net action will be
influenced by every signal it received - which means interactions it had with its
environment. Also, every action it takes is suceptible to alter its state.
As I said, agents may be reactiv or cognitiv. In the first case, its behaviour is
generally described as a mathematical model. In the second case, it can be a whole
expert system, simple heuristics, even a complete MAS.
That's all on theory for now. A brief summary on this : with a MAS, you create
"emerging" high-level behaviours with low-level models.
Back to Clash. My thought is to implement a part or the whole civilization's society
model as a MAS. The idea is to have the whole civ behaviour emerging from the
interactions between different groups composing the civ. At first sight, I envision
the groups as being a coherent agregate of people (or "heads", quoting Mark) sharing
the same characteristics. More on these characteristics later. The agents would be
defined as the groups. The agents should be IMO managed at the province level. I
mean, inside a given province you would group the heads given their characteritics
and form the agents. Actually, this would have to be done every time you have a new
group of population appearing in the province (through birth ---> Mark I need input
on your growth system, conquest, slavery...).
Then the agents' states would be updated every turn through the communication system.
I mean, every thing happeneing could come to the knowledge of an agent, which would
"reat" accordingly (propagated communication type). Also, there could be as a result
of an action by an agent direct communication (kind of diplomatic system).
The normal behaviour of an agent is to do nothing (meaning having its normal
activity). Each type of agent (more on this later) has a set of actions it can take.
Since these actions are, in a way, exceptionnal actions, there would be a trigger for
each action which would allow or prevent the action to be taken. These triggers are
part of the state description (the attributes) of the agents. Also, these triggers
move with time - this simulates the evolution of background culture. Other attributes
will move fatser - to simulate the immediate mood of the agent. More on this later.
In this way, actions taken by an agent, which are exceptionnal, result of the
encounter between the slow-moving trigger and the fast-moving immediate state. If
finely tuned, such a system could prove to be very supple and realistic.
One point that is not very clear now, but could be very interesting and powerful in
term of gameplay, is how to handle "classes" as u describe them. My thought is that
we coumd achieve a kind of "floating" class system, which means that the classes
shapes would be modeled by the way the agents group themselves (remember they have
interactions in the form of cooperation or confrontation). Specifically, in the very
beginning (I need input on this), there are basically two classes : the ruler/player
and the rest of the people. Upper-classes for example are not buit-in as the civ
arises, they are shaped by and evolve through the history of the civ. Then, the way
the ruler distributes the privileges and the way the different groups of people react
will define the aristocratic and the servant classes. I think there are means to
constraint the agents into forming groups. Also, the fact that a group explodes would
mean that the social stability is broken. For example, u could assume that under
certain circumsatnces different culural groups leave together, with an apparent
classic social shape - workers, bosses, religion... and that, when the situation
changes, these groups explode a new groups appear, based on culture : nationalistic
explosion...
OK, back on the agents. The agents are the profound base of the whole MAS. In a way,
the mechanics of the whole simulation is inside the agents (along with the
communication system).
This a very first definition and it has to be refined a lot. I also need a lot
feedback on this, as it will shape the whole behaviour of the civ. Also, as I
mentioned before, this is not a short-term piece of work.
Basically, the agents are reactiv agents (no cognitiv capacities). Since the agents
would be managed at the province level, and since they would group several heads, I
think the implementation would be quite smooth.
The agents'behaviour would be governed by mathematical laws based on their state.
An agent is an agregate of peaople sharing characteritics such as type of activity
(farmer, worker, religious, soldier, administrative...), cultural attributes
(original civilization, physical attributes, religion). These are some of the
characteristics of the group, those that are taken into account to form the group.
Then, when formed as an agent, the group has several other characteristics that shape
its behaviour. Some general :
- servility
- education (or enlightment)
- tradition/social mobility
- insularity
- life level
- activity
Some specific to other groups :
- a scale that defines a domined/dominant relation between two groups
Then, each agent has a set of actions at its disposal. Each action has a
corresponding trigger. This trigger moves in response to signals/communications. Each
turn, this trigger value is compared to the value of a formula based on the values of
the characteristics of the agents. The result of the comparison will determine if the
action is taken or not. The action set has two parts : one shared by evry agent (for
example everything concerning religion and nationalism, since every agent is
religion/culture-typed), another specific to the activity of the agent. More
precisely, the activity of an agent is linked to a specific function it has in the
civ. For example, merchants could be able to take actions such as boycotting, raising
prices... The military could take actions such as dismissing the ruler/player; the
worker could take actions such as strikes...
Additionnaly, each agent could take a "communication action", which means entering in
an intentional communication. Namely, they would wether negociate with other(s)
agents, or communicate informations/needs to the ruler/player.
Now on the class stuff. I said we have to tune the agents in a way such as they group
themselves into "classes". I think there is an elegant way to achieve this. As I
mentioned in the theory part, agents have goals and eventually constraints (which
could also be described in terms of goals, in a sense. For the clarity of this
discussion, I will however talk about constraints).
I. The agents have three primary goals :
1. enhance their life level
2. enhance their security of life
3. climb in the dominant/domined scale.
II. Their main constraint, which is overridable, is :
1. preserve the social cohesion.
A little disuscussion on these points :
I.1. enhance their life level : this goal will be pondered by the life level of a
given agent compared to the life levels he knows about. Ie : the mean life level in
the province, and the differences between this group and the others; if communication
tech is evolved enough, an agent could find its life level in a civ is so low he
prefers to emigrate in another sim. Also, it will alow to simulate "class struggles"
in the industrial age and stuffs like that. Through the comparison between the
different life-levels, this goal is also linked to the tech level/age.
I.2. Security of life may or may not be a characteristic of the agent (or be a result
of signals of the environment of the agent). Anyway, this goal is useful to handle
extreme sotuations, particularly reactions in front of wars (ie : typically, in a
war, the life-level of the groups will move; moreover, people will be mobilized. If
this war is directly linked to the security of the people, their angry will be
tempered. Else they maybe will refuse the war or take actions that go vs. the
ruler/player's will), and in the case of nationalist movements (a group is
threatening another group to death).
I.3. In my first thoughts, there is a scale between each group in the province. This
must allow to handle particular situations between two groups (fe :
workers/capitalists), as well as assess the relative strength of a group in the
province.
Each group wants to climb in the scale ge,nerally speaking, but in some particluar
cases there may be a "private" struggle between two specific groups.
II.1. This constraint is used to privide facility for the classes. As the civ builds
up, the shapes of the civ are arise through the way the agents group themselves. Then
the civ evolves and through strong social movements (including revolutions), the
shapes of the classes move. This constraint helps the agents group themselves, as it
prevents them, unless very particluar, extreme conditions, it prevents them to take
actions that will endanger the social cohesion, namely move the shape of the classes.
Thus, when the behaviour of the agents are computed, each agent has to decide
(compute) if it will override thsi constraint. If not, he will act as the majority of
the class it belongs to, and the class would act in a way that it will not deeply
modify the strenght ratios between each class. For example, u could have a workers
class which is composed of several agents (based on religion or culture). As long as
no particular events in the religious or natinalist field happens, the class will
remain united. If an event (like a war fe) occurs, maybe one agent of the workers
class will separate itself from the class and take actions on its own. Then further
effects could lead in the formation of new classes in this particular province, this
time based on nationality.
Now, about the interaction between agents, and between the agents and the world.
There should be two systems : direct diplomacy, and events. First on the events.
These represent everything that an agent can sense. They are implemented in the form
of signals, which are propagated between agents and between province? The speed on
propagation depends, among other things, on the communication tech level. Everything
that happens in the game should have an associated event, carrying values that will
modify the state of the agents. For example the tech evolution : each tech should
have values related to the goals of an agent. For example, the printing press tech
should mean for the dominated that there is a new mean to emancipate. Thus, the event
associated with the discover of printing press should carry a value indicating that
the domined are prompt to adopt it, where the dominant will try to prevent the
domined to have acces to it, thus conforting their dominant position. In turn, the
behaviour of each agent would be spotted by the other, adding to the tension between
the twos... Similarly, a religious war would have throw an event carrying the two
religions involved. These would modify values in the agents states, fe if the two
religions are represented in a given province, the one in minority will feel
threatened (ie its value for life security would decrease, possibily leading to an
explosive situation in the province...)
The diplomacy system would be implemented, as I stated before, as "communication
actions" taken by an agent (or group of agent = class. Remember, as long as it does
not decide to override its social cohesion constraint, the agents only behave like
the majority of their class). I think, a part of the grouping process leading to the
formation of classes would come from the negociations (compatible goals = tendancy
to cooperate).
Every characteristic of the state of an agent would have an influence both on the
level of the trigger, and as modifiers for the calcultion of behaviours. For example
: the servility characteristic of a given group would lower its tendancy to override
the social cohesion constraint. On the trigger point, the education (enlightment
level) of a given agent would pull the trigger higher as it enhances (simulating the
fact that educated people are generally less ready to make war), etc....
OK, this is the general framework. The work that has to be done consists of several
steps :
1. Strong specification for :
- the different activities
- the actions that can be taken by an agent, both shared actions and
activity-specific actions
- the events and the value they carry
- the precise characteristics of the agents
2. First design of the agents
3. Design of a simplified environment for test and tuning purpose
4. Fine-tuning of the agents so that we get the behaviours we want for the civ in
each given age, inside the test environment.
5. Then put all together and test the whole thing.
This system IMVHO is very interesting, cause it is very expandable. Fe, as I've
described it, the way that techs spred into the society and are accepted and adopted
is coded inside the behaviour of the agents. We could as well introduce in the agents
the way they contribute to the innovation effort of the society. Another extension
would be for example to refine the definition of the education/enlightement factor
and split into several categories, which would have a differentiated effects. These
modifications/refinement would be entirely transparent to the player, only the model
would be finer.
A word on the interaction between the player and the simulated world, cause maybe
it's not very clear. Such a system would not necessarly add micro-management or
complexity for the player. The very intersteing effect is that he will have a
"living" world to rule (I use the world "living" since, in a way, the agents will
drive thei lifes themselves according to their goals/constraint). He will have to
understand its civ's society, which does not mean micro-managing, but rather
observing and analyzing. Then, he will have to "arbitrate" the classes/agents
struggles, thus having a real inner politics (in the sense defined by Machiavel in
its "Prince", even if I don't pretend at all to reach such a level...). The
interactions between the player and its "citizens" wuill take the form of
communications in the people-leader way, and every action the leader could take in
the leader-people way. In deed, each action of the leader (be it legiferate, wage
war, declare peace...) will throw signal that will influence the agents. In away,
this looks like the things happen in reality.
Another advantage is that agents will carry on their history, as everything happening
is suceptible to alter rheir states. The rate at which they are altered is a point
that has to be tested and tuned. Anyway, it is a very supple system cause without
adding a new attribute, just changing their values and their weight in calculations
of decision (= action-taking) will change an agent's behaviour a lot. Also, u could
add new characteristics as the game and the environment evolves.... Anyway, this
means we could begin with quite a sipmle model and refine it step by step.
I still have troubles in clarifying certain points (I would appreciate input,
feddback and ideas on this a lot). A very important point is how to handle the
upper-class. I have one definition for this : it's the class that has enough
institutional power to influence the ruling of the empire. The composition of this
class changes with time. In the middle-age, the aristocrats were wether former Roman
aristocrats or warriors that have gained the king's favours. In the modern era, the
aristocrat is, in the USA, mainly the richest capitalists. In France, it is composed
with the richest capitalists and what we call the high administartors (the idea to
add the "administartion" activity comes mainly from here. In the modern France case,
u would have a very huge administartive class, since about 1/4 or 1/3 of the french
active pop works directly for the government. Also, if we want to simulate an empire
comarible with the ancient China, we di have to have an administration
activity-type.) Back to my problem : would upper-class be a different class-type,
since the population they are composed of is in number unsignificant vs. the whole
population? Also, I have the idea that the particular group/agent an aristocrat
belongs to would change the position of this group/agent in the general hierarchy of
the province. I have to think on this further.
Another point is yhe articulation between province and agents. As I have defined it,
there are interactions between the agents inside a province. But there should also be
interactions between the province, and interactions betwwen classes across the whole
empire. An idea is to not create a specific structure to handle this, keep on having
two basic structures : the agents and the classes they belong to, and work solely
with the events propagation system. For example, if a worker strike occurs in a
province, a signal will be thrown, and maybe the workers in the neigbhouring
provinces will take an action after receving this signal wich would be wether strike,
or eventually enter in diplomatic relation with the group that first stroke etc...
Thus you could simulate the propagation of events throiuhout the empire, and see
groups created over the province borders. This would also simulate chain-reactions.
These groups would not have any meaning in term of game mechanics (no specific
structure to handle them), they will be stricly the result of the interactions of the
agent composing the civ, but they will have strong impacts in term of gameplay.
An other point is to decide if we will constrain more the class sytem, I mean decide
and design every class that can exist and force each agent into one of them (in this
case there must be constitency between the available classes and the general shape of
the society and government, as well as the epoch) or if will leave the agents the
freedom to group themselves as tey "feel". We could also have a mid-trm strategy,
where we don't pre-design the classes, but we monitor that it doesnt create too much
an irrealistic situation and in this case force a little bit things.
Also, we have to find how gov type will be articulated with the agents behaviours.
Here again, we have the chpice of pre-designing gov forms and the influence they have
on the agents, or leave freedom to the player to organize its empire make the agents
behave in response to this. Of course, in this case we lose the ability to name the
each form of government (is this such a problem).... One example : we could let the
player the ability to choose who governs a new province. If the player hires a mamber
of its administration, then we a China-like centralized gov-type. If the player
chooses to elect a noble, then we would rather have a feudal-like gov type. More
finer, the choice of this province governor would be made between a local noble and a
noble "imported" from the empire-s capital province. This would have strong effect.
In the first case, the upper-class would shape itself as being a high-administrator
upper-class. In the other case, it would a traditionnal aritocratic class, but which
would be composed wether of nobles coming from different provinces (thus eventually
belonging to different religions or cultures) or forming a hardcore of nobles sharing
exactly the same characteristics. All this would modify the strength ratios in each
province and the behaviour of the agents. The other alternative is the player to
choose a government form and the game handle the rest itself (such as shaping the
classes, nominating the governors etc...), and the only role of the agents would be
to simulate how the new shape is accepted (I dont really like this. If we take the
first alternative, gov changes will mostly be the resulkt of revolutions originating
from the agents, without direct intervention to the player. Much more realistic,
cause this means a rev occurs when the conditions are good for a rev to occur, and
the gov form that erects then is consistent with the situation that led to the
revolution...)
Notes :
-we would also have a notion of distance between cultures that would influence the
way they live together, along with the dominant/domined scale.
- the hybrid problem would be handled quite naturally : they begin as a new agent,
and try to fit in an existing class. Eventually they will stay a distinct agent, or
they will be absorbed by an existing agent with time, according to several parameters
such as the original relationship between their parents, the pop ratio etc... (see my
post in the culture thread)
- the life level factor is very important. It is manipulated through the tax system
by the ruler/player, but also by the agents themselves. Thus, in a feudal type civ,
the life level of the serfs (peasants) depends as much on the tax imposed by the
nobles as on the tax imposed by the king. Same thing about workers vs. capitalists.
- The religion would be handled as a seperate model. Indeed, religions are basically
nationwide. So I suggest we have a model for the religions that show what kind of
values this paticular religion carries (thus allowing to compute distances between
religions). L*Maybe we could also try to simulate how they spreded in the world, how
they splitted to form new ones... On the agent level, each agent has a particular
religion, and a value showing how much he is influenced by the religion. The values
of the religion combined with its influence for a given agent would show how it
affects its behaviour. Fe, a religion which preaches servility to the master would
maintain an agent's servility level high as long as this religion has a strong
influence on him. But as soon as this influence is low enough for the agent to
override itd social cohesion constraint, he will be upset cause the religion class
forced him in a state that is against its goal (namely, climbing in the
dominant/domined scale).
OK, I think that's all for now. I'd really like feedbak on this, guys.
One last point, referring to my first email to Mark. I told that I would like the
tools given to the player to evolve with the civ and the techs. I've not thought more
about that, but I have a related idea. Since it seems clear that, in the early game,
the size of a manageable empire is very small compared to the empires of the late
game, say an early empire could have roughly the size of a late game's province, the
scale of the game could be changed at a given point. In the bginning, everything
happens in the square-level, then it turns to province level. (I guess in the
beginning there is only one province. Maybe taking control of this entire province is
an earky goal for the player, so reducing the scope of the game would be intersting
there. Once again, I need input on the beginning of the game).
OK, guys, Cya.
Manu.
PS : i wait for your feedback to post anything on the forum. Copies of this message
to Hrafnkell an Mark.
PS2 : I am really interested in developping this model, but if you need it we can try
to work strictly on the cultural model. As you can see, this model would embrace the
whole behaviour of the civ, including things related to the gov model. When I said it
was expandable, it also means that a part of the economic model would be mechanized
through the agents. Btw, MArk, have your considered unemployment in your model?
Thanx for your answer.
I've been thinking about a cultural model these days, and what I've come up with is
something well beyond the scope of what I was first thinking about.... In fact, I've
come back to smthg I was thinking about since quite a long time....
I think this is feasible, but if u intend to have a working version soon, this could
not fit in the time lane.
Anyway, I give you my first thoughts, I will be looking forward for your feedback.
(I will try to put my ideas in a coherent order...)
The general idea is based on the Multi-Agent Sytem theory (also called kenetics).
The theme of kenetics (maybe u know this already, maybe better than me, anyway I will
write a brief introduction, especially cause I can't give u english references on the
subject. If u search references, don't serach for "agent" cause u would only find
samrt web-based agents that have nothing to do with the subject. Rather search for
kenetics - I'm not sure of the spelling). Well, the theme of kenetics is to simulate
a high level behavior only with low level models. More precisely : you build agents,
with a model of their behavior, and making them interact you can simulate the
behavior of a whole group of agents. This is a very powerful technique, cause u can
create very sophisticated behaviours at the high level with very simple agent models.
Examples of realisations with this is the simulation of the behaviour of a anthill
with the agents being the ants. Resaerching a realistic high-level behaviour, the
researchers have been able to fine tune the behaviour model of the ants (then
verifying it matched the reality). In this particular case, they had a very realistic
model at the high level, which helped them to understand how it worked at the
agent-level. The method is to design agents, make them "live", observe the behaviour
at the level u wish to simulate, then tune the agents to have a better-matching
behaviour and iterate this process until u are happy of what u have. Other example of
application is the simulation of bio-systems - in this case, the simulation would be
quite impossible to build without this technique.
Another intersting point in the Mutli-Agent Systems (MAS) is that they embrace the
whole range of AI technologies. I mean that the agents can be "cognitiv", samrt if u
want, and built with traditionnal AI. I also mean that a neural network is basically
a MAS. In this particular case, u have a MAS built with "reactiv" agents - they are
not smart, they only react to external signals/events.
OK. Now a little bit theory.
The basic and necessary pieces for a MAS are the agents and the communication sytem.
As I mentioned, the behaviour of your model is the result of the interactions of the
agnts composing your system. For interaction to occur, u must have the agents to
communicate. I use this word in a very general sense : this means direct
communication (a dialogue) as well as signal coming from the environment - what the
agent "senses" (sees, hears ...). Thus, u have two types of communication :
"intentional" communication and "propagated" communication. Propagated communication
embraces every type of signal, be they natural or artificial. This covers everything
an aget senses. Intentional communication originates from an agent who whishes to
communicate. It can take several forms : direct (point to point), announce (everyone
who can hear).
Similarly, u have mainly two categories for the agents : the cognitiv agents and the
reactiv agents. The complexity of the system and the complexity of its implementation
mainly depends on the type of agents u have.
Whatever they are, the agents behaviour primarly depends on one factor : its goal (or
goals). Eventually, u also have contraint(s) (I mean internal constraints. Obviously,
u always have external contraits, the primary being to have to live with other agents
who have their own goal). In the case of the ants, each ant's goal is to secure the
persistence of its anthill. Then, the interactions between the agents are described
in terms of cooperation - their goals are compatible - or cooperation - their goals
are incompatible.
An agent is described in term of "state". The state is simply a set of values which
describe, in a way, its "state of mind" - in object terminology, these are its
attributes. Also, an agent has a set of behaviours, or actions (or methods in object
terminology), which are directly influenced by its state. The signals/communications
an agent receives generally have an effect on its state. Then, its net action will be
influenced by every signal it received - which means interactions it had with its
environment. Also, every action it takes is suceptible to alter its state.
As I said, agents may be reactiv or cognitiv. In the first case, its behaviour is
generally described as a mathematical model. In the second case, it can be a whole
expert system, simple heuristics, even a complete MAS.
That's all on theory for now. A brief summary on this : with a MAS, you create
"emerging" high-level behaviours with low-level models.
Back to Clash. My thought is to implement a part or the whole civilization's society
model as a MAS. The idea is to have the whole civ behaviour emerging from the
interactions between different groups composing the civ. At first sight, I envision
the groups as being a coherent agregate of people (or "heads", quoting Mark) sharing
the same characteristics. More on these characteristics later. The agents would be
defined as the groups. The agents should be IMO managed at the province level. I
mean, inside a given province you would group the heads given their characteritics
and form the agents. Actually, this would have to be done every time you have a new
group of population appearing in the province (through birth ---> Mark I need input
on your growth system, conquest, slavery...).
Then the agents' states would be updated every turn through the communication system.
I mean, every thing happeneing could come to the knowledge of an agent, which would
"reat" accordingly (propagated communication type). Also, there could be as a result
of an action by an agent direct communication (kind of diplomatic system).
The normal behaviour of an agent is to do nothing (meaning having its normal
activity). Each type of agent (more on this later) has a set of actions it can take.
Since these actions are, in a way, exceptionnal actions, there would be a trigger for
each action which would allow or prevent the action to be taken. These triggers are
part of the state description (the attributes) of the agents. Also, these triggers
move with time - this simulates the evolution of background culture. Other attributes
will move fatser - to simulate the immediate mood of the agent. More on this later.
In this way, actions taken by an agent, which are exceptionnal, result of the
encounter between the slow-moving trigger and the fast-moving immediate state. If
finely tuned, such a system could prove to be very supple and realistic.
One point that is not very clear now, but could be very interesting and powerful in
term of gameplay, is how to handle "classes" as u describe them. My thought is that
we coumd achieve a kind of "floating" class system, which means that the classes
shapes would be modeled by the way the agents group themselves (remember they have
interactions in the form of cooperation or confrontation). Specifically, in the very
beginning (I need input on this), there are basically two classes : the ruler/player
and the rest of the people. Upper-classes for example are not buit-in as the civ
arises, they are shaped by and evolve through the history of the civ. Then, the way
the ruler distributes the privileges and the way the different groups of people react
will define the aristocratic and the servant classes. I think there are means to
constraint the agents into forming groups. Also, the fact that a group explodes would
mean that the social stability is broken. For example, u could assume that under
certain circumsatnces different culural groups leave together, with an apparent
classic social shape - workers, bosses, religion... and that, when the situation
changes, these groups explode a new groups appear, based on culture : nationalistic
explosion...
OK, back on the agents. The agents are the profound base of the whole MAS. In a way,
the mechanics of the whole simulation is inside the agents (along with the
communication system).
This a very first definition and it has to be refined a lot. I also need a lot
feedback on this, as it will shape the whole behaviour of the civ. Also, as I
mentioned before, this is not a short-term piece of work.
Basically, the agents are reactiv agents (no cognitiv capacities). Since the agents
would be managed at the province level, and since they would group several heads, I
think the implementation would be quite smooth.
The agents'behaviour would be governed by mathematical laws based on their state.
An agent is an agregate of peaople sharing characteritics such as type of activity
(farmer, worker, religious, soldier, administrative...), cultural attributes
(original civilization, physical attributes, religion). These are some of the
characteristics of the group, those that are taken into account to form the group.
Then, when formed as an agent, the group has several other characteristics that shape
its behaviour. Some general :
- servility
- education (or enlightment)
- tradition/social mobility
- insularity
- life level
- activity
Some specific to other groups :
- a scale that defines a domined/dominant relation between two groups
Then, each agent has a set of actions at its disposal. Each action has a
corresponding trigger. This trigger moves in response to signals/communications. Each
turn, this trigger value is compared to the value of a formula based on the values of
the characteristics of the agents. The result of the comparison will determine if the
action is taken or not. The action set has two parts : one shared by evry agent (for
example everything concerning religion and nationalism, since every agent is
religion/culture-typed), another specific to the activity of the agent. More
precisely, the activity of an agent is linked to a specific function it has in the
civ. For example, merchants could be able to take actions such as boycotting, raising
prices... The military could take actions such as dismissing the ruler/player; the
worker could take actions such as strikes...
Additionnaly, each agent could take a "communication action", which means entering in
an intentional communication. Namely, they would wether negociate with other(s)
agents, or communicate informations/needs to the ruler/player.
Now on the class stuff. I said we have to tune the agents in a way such as they group
themselves into "classes". I think there is an elegant way to achieve this. As I
mentioned in the theory part, agents have goals and eventually constraints (which
could also be described in terms of goals, in a sense. For the clarity of this
discussion, I will however talk about constraints).
I. The agents have three primary goals :
1. enhance their life level
2. enhance their security of life
3. climb in the dominant/domined scale.
II. Their main constraint, which is overridable, is :
1. preserve the social cohesion.
A little disuscussion on these points :
I.1. enhance their life level : this goal will be pondered by the life level of a
given agent compared to the life levels he knows about. Ie : the mean life level in
the province, and the differences between this group and the others; if communication
tech is evolved enough, an agent could find its life level in a civ is so low he
prefers to emigrate in another sim. Also, it will alow to simulate "class struggles"
in the industrial age and stuffs like that. Through the comparison between the
different life-levels, this goal is also linked to the tech level/age.
I.2. Security of life may or may not be a characteristic of the agent (or be a result
of signals of the environment of the agent). Anyway, this goal is useful to handle
extreme sotuations, particularly reactions in front of wars (ie : typically, in a
war, the life-level of the groups will move; moreover, people will be mobilized. If
this war is directly linked to the security of the people, their angry will be
tempered. Else they maybe will refuse the war or take actions that go vs. the
ruler/player's will), and in the case of nationalist movements (a group is
threatening another group to death).
I.3. In my first thoughts, there is a scale between each group in the province. This
must allow to handle particular situations between two groups (fe :
workers/capitalists), as well as assess the relative strength of a group in the
province.
Each group wants to climb in the scale ge,nerally speaking, but in some particluar
cases there may be a "private" struggle between two specific groups.
II.1. This constraint is used to privide facility for the classes. As the civ builds
up, the shapes of the civ are arise through the way the agents group themselves. Then
the civ evolves and through strong social movements (including revolutions), the
shapes of the classes move. This constraint helps the agents group themselves, as it
prevents them, unless very particluar, extreme conditions, it prevents them to take
actions that will endanger the social cohesion, namely move the shape of the classes.
Thus, when the behaviour of the agents are computed, each agent has to decide
(compute) if it will override thsi constraint. If not, he will act as the majority of
the class it belongs to, and the class would act in a way that it will not deeply
modify the strenght ratios between each class. For example, u could have a workers
class which is composed of several agents (based on religion or culture). As long as
no particular events in the religious or natinalist field happens, the class will
remain united. If an event (like a war fe) occurs, maybe one agent of the workers
class will separate itself from the class and take actions on its own. Then further
effects could lead in the formation of new classes in this particular province, this
time based on nationality.
Now, about the interaction between agents, and between the agents and the world.
There should be two systems : direct diplomacy, and events. First on the events.
These represent everything that an agent can sense. They are implemented in the form
of signals, which are propagated between agents and between province? The speed on
propagation depends, among other things, on the communication tech level. Everything
that happens in the game should have an associated event, carrying values that will
modify the state of the agents. For example the tech evolution : each tech should
have values related to the goals of an agent. For example, the printing press tech
should mean for the dominated that there is a new mean to emancipate. Thus, the event
associated with the discover of printing press should carry a value indicating that
the domined are prompt to adopt it, where the dominant will try to prevent the
domined to have acces to it, thus conforting their dominant position. In turn, the
behaviour of each agent would be spotted by the other, adding to the tension between
the twos... Similarly, a religious war would have throw an event carrying the two
religions involved. These would modify values in the agents states, fe if the two
religions are represented in a given province, the one in minority will feel
threatened (ie its value for life security would decrease, possibily leading to an
explosive situation in the province...)
The diplomacy system would be implemented, as I stated before, as "communication
actions" taken by an agent (or group of agent = class. Remember, as long as it does
not decide to override its social cohesion constraint, the agents only behave like
the majority of their class). I think, a part of the grouping process leading to the
formation of classes would come from the negociations (compatible goals = tendancy
to cooperate).
Every characteristic of the state of an agent would have an influence both on the
level of the trigger, and as modifiers for the calcultion of behaviours. For example
: the servility characteristic of a given group would lower its tendancy to override
the social cohesion constraint. On the trigger point, the education (enlightment
level) of a given agent would pull the trigger higher as it enhances (simulating the
fact that educated people are generally less ready to make war), etc....
OK, this is the general framework. The work that has to be done consists of several
steps :
1. Strong specification for :
- the different activities
- the actions that can be taken by an agent, both shared actions and
activity-specific actions
- the events and the value they carry
- the precise characteristics of the agents
2. First design of the agents
3. Design of a simplified environment for test and tuning purpose
4. Fine-tuning of the agents so that we get the behaviours we want for the civ in
each given age, inside the test environment.
5. Then put all together and test the whole thing.
This system IMVHO is very interesting, cause it is very expandable. Fe, as I've
described it, the way that techs spred into the society and are accepted and adopted
is coded inside the behaviour of the agents. We could as well introduce in the agents
the way they contribute to the innovation effort of the society. Another extension
would be for example to refine the definition of the education/enlightement factor
and split into several categories, which would have a differentiated effects. These
modifications/refinement would be entirely transparent to the player, only the model
would be finer.
A word on the interaction between the player and the simulated world, cause maybe
it's not very clear. Such a system would not necessarly add micro-management or
complexity for the player. The very intersteing effect is that he will have a
"living" world to rule (I use the world "living" since, in a way, the agents will
drive thei lifes themselves according to their goals/constraint). He will have to
understand its civ's society, which does not mean micro-managing, but rather
observing and analyzing. Then, he will have to "arbitrate" the classes/agents
struggles, thus having a real inner politics (in the sense defined by Machiavel in
its "Prince", even if I don't pretend at all to reach such a level...). The
interactions between the player and its "citizens" wuill take the form of
communications in the people-leader way, and every action the leader could take in
the leader-people way. In deed, each action of the leader (be it legiferate, wage
war, declare peace...) will throw signal that will influence the agents. In away,
this looks like the things happen in reality.
Another advantage is that agents will carry on their history, as everything happening
is suceptible to alter rheir states. The rate at which they are altered is a point
that has to be tested and tuned. Anyway, it is a very supple system cause without
adding a new attribute, just changing their values and their weight in calculations
of decision (= action-taking) will change an agent's behaviour a lot. Also, u could
add new characteristics as the game and the environment evolves.... Anyway, this
means we could begin with quite a sipmle model and refine it step by step.
I still have troubles in clarifying certain points (I would appreciate input,
feddback and ideas on this a lot). A very important point is how to handle the
upper-class. I have one definition for this : it's the class that has enough
institutional power to influence the ruling of the empire. The composition of this
class changes with time. In the middle-age, the aristocrats were wether former Roman
aristocrats or warriors that have gained the king's favours. In the modern era, the
aristocrat is, in the USA, mainly the richest capitalists. In France, it is composed
with the richest capitalists and what we call the high administartors (the idea to
add the "administartion" activity comes mainly from here. In the modern France case,
u would have a very huge administartive class, since about 1/4 or 1/3 of the french
active pop works directly for the government. Also, if we want to simulate an empire
comarible with the ancient China, we di have to have an administration
activity-type.) Back to my problem : would upper-class be a different class-type,
since the population they are composed of is in number unsignificant vs. the whole
population? Also, I have the idea that the particular group/agent an aristocrat
belongs to would change the position of this group/agent in the general hierarchy of
the province. I have to think on this further.
Another point is yhe articulation between province and agents. As I have defined it,
there are interactions between the agents inside a province. But there should also be
interactions between the province, and interactions betwwen classes across the whole
empire. An idea is to not create a specific structure to handle this, keep on having
two basic structures : the agents and the classes they belong to, and work solely
with the events propagation system. For example, if a worker strike occurs in a
province, a signal will be thrown, and maybe the workers in the neigbhouring
provinces will take an action after receving this signal wich would be wether strike,
or eventually enter in diplomatic relation with the group that first stroke etc...
Thus you could simulate the propagation of events throiuhout the empire, and see
groups created over the province borders. This would also simulate chain-reactions.
These groups would not have any meaning in term of game mechanics (no specific
structure to handle them), they will be stricly the result of the interactions of the
agent composing the civ, but they will have strong impacts in term of gameplay.
An other point is to decide if we will constrain more the class sytem, I mean decide
and design every class that can exist and force each agent into one of them (in this
case there must be constitency between the available classes and the general shape of
the society and government, as well as the epoch) or if will leave the agents the
freedom to group themselves as tey "feel". We could also have a mid-trm strategy,
where we don't pre-design the classes, but we monitor that it doesnt create too much
an irrealistic situation and in this case force a little bit things.
Also, we have to find how gov type will be articulated with the agents behaviours.
Here again, we have the chpice of pre-designing gov forms and the influence they have
on the agents, or leave freedom to the player to organize its empire make the agents
behave in response to this. Of course, in this case we lose the ability to name the
each form of government (is this such a problem).... One example : we could let the
player the ability to choose who governs a new province. If the player hires a mamber
of its administration, then we a China-like centralized gov-type. If the player
chooses to elect a noble, then we would rather have a feudal-like gov type. More
finer, the choice of this province governor would be made between a local noble and a
noble "imported" from the empire-s capital province. This would have strong effect.
In the first case, the upper-class would shape itself as being a high-administrator
upper-class. In the other case, it would a traditionnal aritocratic class, but which
would be composed wether of nobles coming from different provinces (thus eventually
belonging to different religions or cultures) or forming a hardcore of nobles sharing
exactly the same characteristics. All this would modify the strength ratios in each
province and the behaviour of the agents. The other alternative is the player to
choose a government form and the game handle the rest itself (such as shaping the
classes, nominating the governors etc...), and the only role of the agents would be
to simulate how the new shape is accepted (I dont really like this. If we take the
first alternative, gov changes will mostly be the resulkt of revolutions originating
from the agents, without direct intervention to the player. Much more realistic,
cause this means a rev occurs when the conditions are good for a rev to occur, and
the gov form that erects then is consistent with the situation that led to the
revolution...)
Notes :
-we would also have a notion of distance between cultures that would influence the
way they live together, along with the dominant/domined scale.
- the hybrid problem would be handled quite naturally : they begin as a new agent,
and try to fit in an existing class. Eventually they will stay a distinct agent, or
they will be absorbed by an existing agent with time, according to several parameters
such as the original relationship between their parents, the pop ratio etc... (see my
post in the culture thread)
- the life level factor is very important. It is manipulated through the tax system
by the ruler/player, but also by the agents themselves. Thus, in a feudal type civ,
the life level of the serfs (peasants) depends as much on the tax imposed by the
nobles as on the tax imposed by the king. Same thing about workers vs. capitalists.
- The religion would be handled as a seperate model. Indeed, religions are basically
nationwide. So I suggest we have a model for the religions that show what kind of
values this paticular religion carries (thus allowing to compute distances between
religions). L*Maybe we could also try to simulate how they spreded in the world, how
they splitted to form new ones... On the agent level, each agent has a particular
religion, and a value showing how much he is influenced by the religion. The values
of the religion combined with its influence for a given agent would show how it
affects its behaviour. Fe, a religion which preaches servility to the master would
maintain an agent's servility level high as long as this religion has a strong
influence on him. But as soon as this influence is low enough for the agent to
override itd social cohesion constraint, he will be upset cause the religion class
forced him in a state that is against its goal (namely, climbing in the
dominant/domined scale).
OK, I think that's all for now. I'd really like feedbak on this, guys.
One last point, referring to my first email to Mark. I told that I would like the
tools given to the player to evolve with the civ and the techs. I've not thought more
about that, but I have a related idea. Since it seems clear that, in the early game,
the size of a manageable empire is very small compared to the empires of the late
game, say an early empire could have roughly the size of a late game's province, the
scale of the game could be changed at a given point. In the bginning, everything
happens in the square-level, then it turns to province level. (I guess in the
beginning there is only one province. Maybe taking control of this entire province is
an earky goal for the player, so reducing the scope of the game would be intersting
there. Once again, I need input on the beginning of the game).
OK, guys, Cya.
Manu.
PS : i wait for your feedback to post anything on the forum. Copies of this message
to Hrafnkell an Mark.
PS2 : I am really interested in developping this model, but if you need it we can try
to work strictly on the cultural model. As you can see, this model would embrace the
whole behaviour of the civ, including things related to the gov model. When I said it
was expandable, it also means that a part of the economic model would be mechanized
through the agents. Btw, MArk, have your considered unemployment in your model?
Comment