This thread is intended to be a mechanics-heavy discussion of possible ways to implement complex faction system into LCS.
First, I shall note what I hope to achieve with the faction system:
The first goal is to avoid frontloading of game difficulty. Currently, the challenges that the game has to offer are very much biased towards the start of the game, and once the beginning of the game is underway, there is very little challenge and therefore very little interesting happening in the game. This can be solved by having a number of factions, each with their own agenda and targets. At the start of the game, when the country is very Conservative, most factions want to make it more Liberal, and will work with you. As the game progresses, the factions want to stop the country being too Liberal, and will start to oppose you.
Another goal is to allow multi-city and multi-state play without the player being bogged down. If, under the current model, a player can be reasonable expected to have over a dozen liberals, if we wanted to increase the scale of the LCS to include lots of cities, it could force the player into an unmanageably large squad. This can be averted by giving the player the ability to create new gangs that share their Liberal targets.
A third goal that I have is that the rival factions such as the CCS would consider the LCS more. In the games that I play, the CCS seem oblivious to the biggest threat to their agenda - the LCS. Instead of attacking me, they instead attack random sites, where their effect on public opinion is overwhelmed by the LCS actions. A single raid on one of my safehouses would have at the least reduced my capabilities, if not crippled me.
I would suggest that the following features would also be important:
Having a seperate heat system for different factions would be important. For example, as long as free speech isn't C+, one can get a team of writers winning over the whole country and the CCS won't care. If one can have the CCS have its own heat system that is attracted by Liberal actions, whether they attract police attention or not, it would make them a much greater threat.
I feel that as faction should, if left to its own devices, grow more powerful until it reaches a limit, such as in a Logistic model (http://en.wikipedia.org/wiki/Logistic_growth). I believe that it should also exhibit the following behaviours:
-If it feels it is less powerful than its competitors, it will seek out ways to increase its power limit (which would be seeking out new safehouses)
-The more powerful a faction is, the more likely it is to take action
-When a faction takes action, it decreases its power
-A faction can either attack another faction or try to influence an issue. The chances of it attacking another faction increase as the other faction is more active.
-Attacking a faction decreases its power, but greatly increases that faction's hostility towards you. It may also increase a third faction's hostility towards you.
-The more powerful a faction, the stronger its attacks are.
Therefore, I would provisionally suggest that the implementation would be as such:
Each capturable location would have the following two attributes added:
-Tier. Basically, what order the safehouses are considered. A location cannot be revealed to the player if the owning faction has another location of lower tier.
-Income. This is how much the location is worth to each faction.
A provisional list of factions would be as such:
-Megacorporation
-Police
-National guard
-CIA
-Firemen
-Army
-LCS
-CCS
-MCS (moderate crime squad)
-any other crime squads
As well as a view corresponding to each of the law categories, and views corresponding to AM radio and cable news, there would be views corresponding to each of the factions.
Each factions would have the following attributes:
-Power. This is a number that reflects how powerful each faction is. It is roughly equivalent to the number of dollars it has in funds.
-Maximum power. This is not the true maximum, as the true maximum can be increased by things like safehouses.
-Minimum power. The only way a faction can go below this is if it loses all its safehouses and is wiped out.
-Base power increase. This makes low-power growth faster, and slightly increases maximum power.
-Power increase rate. This is how fast a faction gets to maximum power.
-Ideal laws. This is an array of numbers, with an entry for each law area, with each entry being from -2 to 2, or with a null entry. This is what state of laws the faction wants to achieve. If it has a null entry, then it doesn't care what the state of that law is.
-Hostility. This is an array of numbers, with an entry for each view. This reflects how likely the faction is to act based on that view.
-Ally hostility . This is an array of numbers, with an entry for each faction. This reflects how much they can get those factions to support them.
-Hostility remembrance. This is a number that reflects how slowly Hostility fades.
-Arrests enemies. This is a boolean. If a faction has this true, it seeks to arrest the foes rather than kill them.
-Doesn't capture. This is a boolean. If a faction has this true, it does not take ownership of locations that it successfully raids.
-Invulnerable. This is a boolean. If a faction has this true, other factions cannot take ownership of its sites.
Every day, the following happens:
-Each faction increases its power by (Power increase rate * Power * ( Maximum power - Power) + Base power increase + Safehouse power increase), where Safehouse power increase is the sum of Income attributes of all the owned safehouses.
-Each faction decides whether or not they will perform a raid. The chance of performing a raid is ((Power + Sum hostility)/Maximum power), where Sum hostility is the sum of all values in the Hostility array.
-If a faction is performing a raid, they decide which view to act on, choosing randomly with the Hostility array providing weighting.
-If a faction selects a conventional view, they raid a site associated with that view.
-If a faction selects a view of another faction, they raid a random safehouse of lowest tier of that faction.
-If a faction selects its own view, they try to expand. If possible, they raid an unaligned capturable safehouse. If not, they raid a capturable safehouse of a faction they have hostility towards, weighted by the hostility.
-If a faction unsuccessfully defends a raid against them, they lose (Power/Safehouse number) power, where Safehouse number is the number of safehouses that faction owns. If it loses its last safehouse in that raid, it is wiped out.
-If a faction unsuccessfuly launches a raid, they lose a fifth of their total power, and the defender loses half that.
-If a faction loses power due to interactions with an opposing faction, then for each other faction, their hostility towards the opposing faction is increased by the power lost multiplied by the relevant value in the first faction's ally hosility array. The first faction also increases its self-hostility by the amount of power lost.
-If a faction's power is below its minimum power, its power is set to its minimum power.
-If a faction loses its last safehouse, it is destroyed.
Every month, the following happens:
-Each faction has all of the values in its Hostility array multiplied by its hostility remembrance
-Each faction, for each law where its ideal is a non-null value, its hostility on the corresponding view is increased by 100 for each step that the law differs from its ideal.
Every time the law changes, the following happens:
-Each faction sees if the law changes match their ideal. If so, the hostility for the corresponding view is reduced to 0.
There are a couple features lacking from the above, though, and input is appreciated:
This implementation only models raids by other crime squads, not less violent methods of promoting an agenda.
Joint attacks and defences are not a possibility. An ally can be called in for an attack at a later date, but that's it.
Having two factions at the same site it also not a possibility under the above model.
I also have a more complex system that handles different types of faction strength.
Each creature will have a value associated with it. This is the sum of the squares of all the creature's skills and attributes, with experience to the next level as a fraction. For reference, my elite liberal super-skilled founder from a current game would have a value of around 3250. A randomly chosen founder I just generated would have a value of 383. This value is then increased by the black-market price of all their equipment.
A new activity would have to be added: Search for safehouse. Each hidden lowest-tier safehouse has an X/1000 chance of being revealed, where X is the number of people in that safehouse.
Each factions would have the following attributes:
-Fundraising preference. This is a number that is how likely the faction is to raise funds.
-Politics preference. This is a number that is how much a faction values direct political action.
-Backgroud politics preference. This is a number that determines how much a faction values indirect political action.
-Member improving preference. This is a number that determines how much a faction values increasing its own member's value, be it from juice or from teaching.
-Conflic aversion. This is a number that is how much a faction likes to avoid conflict.
-Law changing importance. This is a number that represents how much a faction cares about changing laws.
-Recruitment rate. This is how fast the faction recruits new members.
-Funds. This is how much cash the faction has.
-Maximum Funds. This is the limit on how much cash the faction can have.
-External Funding. This is how much money they get each day from external sources. Intended for factions like CCS which have canon external backing.
-Officer type. This is a creature type. Each time the faction gains a safehouse, they gain one of these creatures stationed there. When a safehouse is being attacked, this is the creature that needs to be killed for the safehouse to be gained. This creature does not go on raids. A safehouse leader starts with enough juice to recruit 6 others by default.
-Composition ratio. This is an array, with an entry for each creature type. It is the ratio of creatures in the faction's ideal composition.
-Raid eagerness. This is an array with an entry for each creature type. It is how likely each creature is to take part in a raid.
-Ideal laws. This is an array of numbers, with an entry for each law area, with each entry being from -2 to 2, or with a null entry. This is what state of laws the faction wants to achieve. If it has a null entry, then it doesn't care what the state of that law is.
-Hostility. This is an array of numbers, with an entry for each view. This reflects how likely the faction is to act based on that view.
-Ally hostility . This is an array of numbers, with an entry for each faction. This reflects how much they can get those factions to support them.
-Hostility remembrance. This is a number that reflects how slowly Hostility fades.
-Arrests enemies. This is a boolean. If a faction has this true, it seeks to arrest the foes rather than kill them.
-Doesn't capture. This is a boolean. If a faction has this true, it does not take ownership of locations that it successfully raids.
-Invulnerable. This is a boolean. If a faction has this true, other factions cannot take ownership of its sites. Whenever an officer is killed, if the faction is invulnerable, the officer is replaced.
Each day, the following would happen:
-Each of the factions is considered. For each faction, the following happens:
--Each faction decides what view it will focus on, weighted by hostility. The default is the view about themselves.
--Each safehouse the faction owns considers whether or not it will launch a raid. This process is as such:
---For each creature in the safehouse, the attacking strength of that safehouse is the sum of all the worth of the creatures there multiplied by their respective raid eagerness.
---A target location is considered. If a regular view is selected, it is a random site that has that view as an issue. If the view on a faction is selected, it is a random visible site that that belongs to that faction.
---If such a safehouse exists, the chance of attacking is the attacking safehouse's strength divided by the defending safehouse's strength (calculated in the same way) minus 1/2. Everybody with a non-zero raid eagerness takes part.
---If such a safehouse does not exist, all those who would have attacked instead search for one.
--Each of the creatures that is not taking part in a raid or searching for a safehouse is considered. The process is:
---Consider all the activities that the individual can take part in. Each activity has its value determined by its expected effect (fundraising, direct activism, background activism) multiplied by the faction's preference for that activity. The activity's value is then reduced by each other faction's heat increase for that action multiplied by that faction's sum strength multiplied by the first faction's conflict aversion.
---The creature perofrms the activity with the highest value (doing nothing has a value of zero).
--The creatures perform all their activities
--If any raids were going to take place, they take place:
---If the faction raids a the player, the following happens:
----Squads, each consisting of members of the raiding party, enter the site from the entrance. The player either escapes, loses the safehouse or kills enough of them so their remaining squad strength is below half of the remaining safehouse strength.
----If the player kills them into retreating, the safehouse is kept and the raid is considered a failure. Otherwise, the raid is a success.
---If the faction raids another non-player faction, the following takes place:
----A randomly generated squad from each faction is generated from the attacking population and the defending population with a non-zero raid eagerness. If this is the last safehouse of the defending population, the population with zero raid eagerness is included. The defending safehouse officer is generated in the last possible squad. Each squad fights each other until one is all dead. All those from the winning squad who are not dead and not incapacitated are put back into the population squads can be drawn from.
----This continues until the safehouse officer is killed, or the strength of the attacking population falls below half the strength of the defending population. If the attacking population falls too low, the raid is a failure. If the safehouse officer dies, the raid is a success.
----If it is not the last safehouse of the defending population, the defending population with zero raid eagerness tries to escape to a random remaining safehouse of lowest tier. This is modelled by squads of the remaining attackers and defenders being generated, and the attackers having one round of combat to kill or incapacitate as many as possible before the survivors escape and new squads are generated.
---Every faction apart from the winning faction has their hostility towards the winning faction increased by the value of loser faction members killed or incapacitated in the raid multiplied by the relevant value in the loser's ally hostility array.
---If a safehouse was captured, then the half the surviving population from the safehouse that launched the attack is moved to the new safehouse, and a new safehouse officer is generated for the new safehouse.
---Ammunition is restocked.
-After all the faction's activity takes place, their recruitment takes place. For each safehouse, the number of empty places is calculated as the sum of the number of recruits each person there can have minus the number of people there. For each empty place, the chance of that place being filled is the faction's recruitment rate. Whenever a new creature is recruited, it is of whatever type is below the faction's composition ratio in that safehouse. When a non-player faction recruits a new member, the new member comes fully armed and the faction's cash decreases by the new creature's value multiplied by 100 plus the black market cost of the equipment.
Every month, the following happens:
-Each faction has all of the values in its Hostility array multiplied by its hostility remembrance
-Each faction, for each law where its ideal is a non-null value, its hostility on the corresponding view is increased by the faction's law changing importance for each step that the law differs from its ideal.
That model still lacks the following, though:
-Sneak attacks. The attacks themselves could be modelled by having a single attacking squad, attacking random defending squads. If the defending squad is easy pickings, they'll attack and if not they'll have to pass a disguise check to go undetected. However, I don't know how modelling this against the player (most players wouldn't want a "your leader has been randomly killed message" ending their game), and I don't know what the criteria for launching an attack should be.
-Sleepers. I wouldn't know how to model where the other squads would try to find sleepers, or how many they should have.