| The
Clash of Civilizations Coding The "Society Model" Structure |
|
Models for Society
All the
things we may generally refer as "social issues" like politics,
government, revolutions, culture evolution, religion, etc., appear to be
inevitably linked with each other. It isn't easy to draw lines and create
individual modeling for all the social effects we'd desire for Clash. This
is why the three models proposed here covering society and its behavior
should be seen as one, like sub-models of something bigger. Coherency
between them has been carefully taken care of. Each one performs a
particular task providing many of the elements we want, but some of the
most interesting social effects are a result of the interactions between
them three. Note: Check out the new Coding The "Society Model" Structure!
|
|
Coding The "Society Model" Structure Version-2 The Riots Model (or Happiness Model), Social Model and Government Model can be seen as parts of a bigger model I'll call the "Society Model". In terms of coding it's better IMO to consider the Society Model rather than the individual 3 models. At least for coding the structure (objects and their relations). Although my knowledge of OO-coding is very poor, I present here info that should help identify the objects and variables needed. This should only be seen as a base from where real coders can start their work. The typology considered in this text includes: Classes: things I see should be classes in terms of OO-coding. Objects: "copies" of classes defined. Variables: variables that, unless otherwise specified, are real. Constants: parameters that are defined prior to playing the game via default settings or scenario designing and that stay constant through game play. -------------------------- The game has: Civs Religions (objects of the RELIGIONS class) Social Class Definitions (objects of the SOCIALCLASSDEF class)
Provinces (objects of the PROVINCE class) A (central) government (object of the GOVT class) A dynamic list of available regimes (objects of the REGIMES class) An Unrest Status (variable) Empire's Stability - ES (variable)
A (social class) name (string) An Ethics Social Role (constant) A Warfare Social Role (constant) A Kapital Social Role (constant) A Labor Social Role (constant) A Human Social Role (constant) An Administrative Social Role (constant) List of Events Multipliers (see notes at the end)
Ethnic Groups (objects of the ETHNIC GROUP class) Infrastructure (object of the INFRA class) A Local Government (object of the LOCALGOVT class) Present Religions (objects of the PRESENTRELIGIONS class) Province Isolation - PI (variable) A Government Nationality's Force - GNF (variable) * Note: Ethnic Groups can be coded as being in mapsquares instead of provinces. That's alright and at least for the Society Model it makes no difference. The coding decision should lie in other aspects of the game, such as military implications. A LOCALGOVT class has: An Autonomy Level (variable) An Administration Effectiveness Level - AEL (variable)
a list of several types of infrastructure, among them: Institutional Infrastructure - ININ (variable) A dynamic list of religious infrastructure (variables). The list length is determined by the number of objects of the PRESENT RELIGIONS class that exist in the province.
Faith Points (variable) An identifier (a pointer to one of the game religions)
A name (string) A type (variable (boolean)) A Family value (variable) An Attractiveness value (variable) A Holy Land (indicates a mapsquare) And a Moral Code (object of the MORALCODE class)
A nationality (string) A population (variable (integer)) A religion (pointer to one of the game religions) A Religious Discrimination Factor - RDF (variable) An Ethnic Discrimination Factor - EDF (variable) A Cultural Profile (object of the CULTURALPROFILE class) Tendency Values (object of the CULTURALPROFILE class) Social Classes (objects of the SOCIALCLASS class)
Basic Attributes (object of the BASICSOCIALATRR class) A Moral Code (object of the MORALCODE class)
Traditionalism (variable) Nationalism (variable) Land Connection (variable) Importance of Religion - IR (variable) Corruption (variable)
Ethnic Tolerance - ET (variable) Religious Tolerance - RT (variable) Aggressiveness - AGG (variable) Asceticism - ASC (variable) Individualism - IND (variable) Obedience - OBD (variable) Natural Affinity - NA (variable)
A Definition (pointer to an object of the SOCIALCLASSDEF class) A preference for Directed Negotiated Policies (object of the DNP class) A Govt_DNP-SocialClass_DNP distance (variable) A Ruler_DNP-SocialClass_DNP distance (variable) An array of regime support shares (see notes at the end) A demographic share (variable) Pro-Active Feelings - PAFs (object of the PAFS class) Events Probabilities (object of the EVENTSPROBS class) A PCI (variable) A share of Political Power in the Military Political Block (variable) A share of Political Power in the Religious Political Block (variable) A share of Political Power in the Capitalists Political Block (variable) A share of Political Power in the People's Political Block (variable) A share of Political Power in the Bureaucracy's Political Block (variable) A (total, nominal) Political Power (variable)
A Nationalistic Rebellion Feeling - NRF (variable) A Self Determination Feeling - SDF (variable) An Anti-Discrimination Feeling - ADF (variable) A Bad Policies Feeling - BPF (variable) A Poor Welfare Feeling - PWF (variable) A Revolutionary Feeling - RF (variable) A Replace Ruler Feeling - RRF (variable)
A Verbally Exposing Discontent Probability (variable) A Riots Prob. (variable) A Revolutionary Forces Formation Prob. (variable) A Guerrilla Forces Formation Prob. (variable) An Attempt to Murder the Ruler Prob. (variable) An Army Betrayal Prob. (variable) A Military Coup Prob. (variable) A Declaring Independence Prob. (variable) A Rebel Duke Prob. (variable)
A Current Govt Profile (object of the GOVTPROFILE class) A Future Govt Profile (object of the GOVTPROFILE class) A Conservative Govt Profile (object of the GOVTPROFILE class) A Preliminary Govt Profile (object of the GOVTPROFILE class) A Nominal Political Structure (object of the POLSTRUCTURE class) A Real Political Structure (object of the POLSTRUCTURE class) The People's Political Block Profile (object of the GOVTPROFILE class) The Capitalists' Political Block Profile (object of the GOVTPROFILE class) The Religious Political Block Profile (object of the GOVTPROFILE class) The Military Political Block Profile (object of the GOVTPROFILE class) The Bureaucracy's Political Block Profile (object of the GOVTPROFILE class) A Nationality (string/identifier) An Official Religion (string/identifier) A Dominant Religion (string/identifier) A Code of Law (object of the MORALCODE class) A Philosophy (object of the MORALCODE class) A Ruler's Bribes level (variable) A Ruler's Goons Squad level (variable) A Propaganda level (variable) An Internal Intelligence Services level (variable)
Directed Negotiated Policies (object of the DNP class) A Political Structure (object of the POLSTRUCTURE class) Regime Policies (object of the REGIMEPOLICIES class)
Civil Rights (variable) Foreign Affairs (variable) Ethnic Discrimination (variable) Religious Discrimination (variable) Slavery (variable) Tax Rate (variable)
Ruler's Political Power (variable) Religious Political Block Political Power (variable) Capitalists' Political Block Political Power (variable) Military Political Block Political Power (variable) People's Political Block Political Power (variable) Bureaucracy Political Block Political Power (variable)
Private Property (variable) Social Policies (variable)
A name (string/identifier) A Political Structure (object of the POLSTRUCTURE class) Regime Policies (object of the REGIMEPOLICIES class) A Govt-Regime Distance (variable) A Ruler-Regime Distance (variable) A Knowledge Level - KL (variable) A Base Attractiveness Value (constant) A Development Level (variable) A Banning Factor (variable) A (total, nominal) Political Power (variable) ------------------ Final notes: 1) I found troubles finding the right "place" for Events (Riots Model) and the approach I took for structure may not be the best. Events have a probability of happening computed using PAF values. Each event should have a set of "instructions" defining what should happen in the game when the event takes place. So, one might say that an Event is an object, with a probability and a set of instructions. But since instructions can be too different from one event compared to another, I'm not sure. The other aspects of events is that not all social classes can "call" all events. Slaves, for example, shouldn't do a military coup. That's why in the SOCIALCLASSDEF there's a list of "multipliers". Supposedly, there's one multiplier per event and each takes the value 1 or 0 if the social class can or can't call the event. The multipliers are used then when calculating event probabilities multiplying each the respective probability equation to send to zero the probability for an event the social class shouldn't call. As I presented in the text, it works, but maybe there's a better way to do it. 2) The array of support shares in the SOCIALCLASS class should store the fraction of the social class that supports a particular regime. For example, if there're two regimes people can opt to, monarchy and democracy, and if the social class is divided between these options with, say, 40% and 60%, then these two numbers must be store there.
|
|
|