new factions system in 0.6.0?

Talk among developers, and propose and discuss general development planning/tackling/etc... feature in this forum.
Post Reply
MoonKid
Merchant
Merchant
Posts: 44
Joined: Tue Jun 17, 2008 9:16 am

new factions system in 0.6.0?

Post by MoonKid »

We know that the game is not playable without cheating because of the factions-relations-system.

Somebody wrote there is a plan to rewrite it. Is it planed for 0.6.0 or later releases?
pyramid
Expert Mercenary
Expert Mercenary
Posts: 988
Joined: Thu Jun 15, 2006 1:02 am
Location: Somewhere in the vastness of space
Contact:

Factions Relations System Redesign

Post by pyramid »

We have been discussing faction relations remodeling between the dev team and have even a specification available, though it was never published. The rewrite needs coding and the availability will depend on the time and coders available to make this task happen. According to current roadmap, all up to 0.6.0 is reserved for code refactoring, so it might or might not go in, my feeling is rather not.

Anyway, to overcome the current limitations of the factions model, we have designed a Pseudo-Hierarchy Model together with Non-symmetrical and Non-linear relationsships, as well as appropriate relations adjustment Propagation Mechanics and Data Serialization.

The details can be conosulted in the attached files. For the curious, a short examplary outline of what the above keywords mean for the game play.

Pseudo-Hierarchy Model
We can connect flightgroups or even individual ships to factions, subspecies, and species. This means that actions from a flightgroup can have impact on relations to the higher hierarchies.

Non-symmetrical relationsship
If you bump into a station, it might become angry, but only if you shoot back their relation to the station's faction will change.
In generalnon-symmetrical means that if you have an interaction between A and B not both relations, A->B and B->A, are necessarily adjusted in the same scale. The adjustment will depend on the actions (AI) taken on both sides.

Non-linear relationsship
Means basically that the strength of relation change of a small group resulting from one action will influence very little the relation of the whole species to you. This means, if you have a shootout with an aera flightgroup, and they become very very hostile (-100) that at the same time, if this was your first shootout with them, and your previous relation with them was 0, that the resulting relation is necessarily much less affected and might result in a relation of -1.
Non-linear means also that if you piss-off the Klk'k that also the Purth, Spaceborn, Amdolian, Highborn, Confed, Hnter, HomeSec become affeted though in much lesser proportion, since they all belong to the same protectorate, the Confederation of Inhabited Worlds.

Propagation Mechanics
It's the logic behind what actions will require what adjustments in relations and how this will be propagated between starships, flightgroups, fleets, factions, and up to species. It is more a matter of developent and balancing, than game play.

Data Serialization
Describes the storage of the underlying model and values in files. This is required for smooth integration and development.

I strongly suggest that interested take a look into the main text (odt) document and the examples provided in the calc (ods) document and come back here with questions, that undoubtedly will appear as the documentation and idea behind is represented in a highly condensed manner.

I'd also suggest that this thread be stickied and, since it is promising to become general and version independent discussion, the title be changed to "Factions Relations System Redesign" or similar.
You do not have the required permissions to view the files attached to this post.
loki1950
The Shepherd
Posts: 5841
Joined: Fri May 13, 2005 8:37 pm
Location: Ottawa
Contact:

Re: new factions system in 0.6.0?

Post by loki1950 »

Thx for the clarification pyramid now i have some place to point inquires to. 8)

Enjoy the Choice :)
my box::HP Envy i5-6400 @2Q70GHzx4 8 Gb ram/1 Tb(Win10 64)/3 Tb Mint 19.2/GTX745 4Gb acer S243HL K222HQL
Q8200/Asus P5QDLX/8 Gb ram/WD 2Tb 2-500 G HD/GF GT640 2Gb Mint 17.3 64 bit Win 10 32 bit acer and Lenovo ideapad 320-15ARB Win 10/Mint 19.2
safemode
Developer
Developer
Posts: 2150
Joined: Mon Apr 23, 2007 1:17 am
Location: Pennsylvania
Contact:

Re: new factions system in 0.6.0?

Post by safemode »

I think also what is needed with faction relations is a disconnect between the actions of an individual, and the faction they belong to.

Basically, how much can the individual do before their actions reflect on the faction. Also, how would the faction react to the actions of an individual.

This would involve two scales that need to be checked against. There would be a faction relation, and a unit relation. Unit relations are directly affected by the actions of that unit to and from other units. Some rather complex comparisons would have to be made to determine exactly how much this scale travels per interaction with units of different factions and the same faction. This would allow the scale to simultaneously be faction loyalty, and friend/foe scale. The faction scale would change only by comparing all it's units relation scales and setting them up to a preset bounds. When the avg of the bounds goes one way or another for a given faction, the faction scale is modified.

This modification takes into account all the units, so it's gotta propagate back down to the units when it's been recalculated.

In addition to having the two scales per faction (one per unit, one per faction). You also have to have a differentiation between aggressor and defender. If i have good relations with faction A, and faction A attacks me, my good relations should obviously go down. But it shouldn't be equatable to me attacking faction A, which would also make my good relations go down. So we need to separate these two situations.

Overall relations should be a combination between a pair of values which make up the two scales i mentioned earlier. Each value of the pair would reflect A->B, and B<-A. In situations that dont care about that level of detail, they just take whatever value in the pair is closer to the extreme.

Basically, no unit in faction B would consider faction A friendly, if they had done nothing to faction A but faction A kept killing faction B, but the fact that faction B was in very good standing with faction A as far as their actions go would go a long way towards choosing more realistic AI actions in faction B. Without differentiating things that way, the AI would have no idea if the bad relations was due to faction B stepping on faction A's toes or vice versa.

In this way, unit 1 from faction A attacking unit 2 from faction B would modify the first value of unit 1's paired Relation scale, and the second value of unit 2's paired relation scale. If this modification reached a threshold, the faction's paired Relation scale would get modified. Now each unit would have a rank of importance to the faction. destroying a low level ship would not cause the modification to the Faction Relation scale than destroying say an Ace pilot of that faction, or an important ship. Simply shooting at another ship and trading fire may not even get noticed by the faction if the threshold isn't met. Plus, by having the relations done in pairs, the idea of aggressor becomes apparent in the politics of the universe, and this opens the possibility for much more complicated AI routines for diplomacy and alliances. Rules can be made for treaties between factions where other factions may come to help a single faction but only in defense, not if that faction decides to attack another. Etc etc. In addition, some factions may always hold a faction in low regard if they are friendly to a faction that the former hates, like if faction A loves pirates, faction B may always hate faction A because faction B hates pirates. Those types of faction level relation routines would have to be written on a faction to faction basis. Giving each one a sort of predictable personality.
Ed Sweetman endorses this message.
Deus Siddis
Elite
Elite
Posts: 1363
Joined: Sat Aug 04, 2007 3:42 pm

Re: new factions system in 0.6.0?

Post by Deus Siddis »

safemode wrote:In addition, some factions may always hold a faction in low regard if they are friendly to a faction that the former hates, like if faction A loves pirates, faction B may always hate faction A because faction B hates pirates.
Wouldn't it make more sense though, if factions didn't hate other factions for hating their allies, but only for acting on their feelings? So if Uln love Pirates and Purists hate Pirates, initially Uln and Purists are on neutral ground with each other. But if Purists destroy a wave of Pirates that enter their systems, then Uln start to dislike Purists. But if Purists have not encountered and subsequently destroyed any Pirates in a while since that event, Uln-Purist relations might start to improve over as long a time as there are no further 'incidents'.

This way you could simulate scenarios like you see in the middle east today, where people hate each other, but not enough to be in a truly constant state of war at all times, but then when a rocket lands in the neighborhood of one side or the other, a new wave of fighting breaks out again, until they've bloodied each other enough to want to pull out, at which point they begin to cool off a little and the cycle is ready to repeat itself.

That seems more dynamic and in some cases more realistic than faction alliances attacking each other without provocation and continuing to do so indefinitely, with the exception of a few noteworthy factions like the Aera.
safemode
Developer
Developer
Posts: 2150
Joined: Mon Apr 23, 2007 1:17 am
Location: Pennsylvania
Contact:

Re: new factions system in 0.6.0?

Post by safemode »

Wouldn't it make more sense though, if factions didn't hate other factions for hating their allies, but only for acting on their feelings? So if Uln love Pirates and Purists hate Pirates, initially Uln and Purists are on neutral ground with each other. But if Purists destroy a wave of Pirates that enter their systems, then Uln start to dislike Purists. But if Purists have not encountered and subsequently destroyed any Pirates in a while since that event, Uln-Purist relations might start to improve over as long a time as there are no further 'incidents'.
The problem is that's not very realistic. If i love pirates, and pirates are a pain in the ass to you, my love for pirates helps them continue to be a pain for you. Thus, you wouldn't like me due to my association with the pirates. That's how things work. I dont know how you would justify liking me if i'm contributing to this harmful group hurting you.
This way you could simulate scenarios like you see in the middle east today, where people hate each other, but not enough to be in a truly constant state of war at all times, but then when a rocket lands in the neighborhood of one side or the other, a new wave of fighting breaks out again, until they've bloodied each other enough to want to pull out, at which point they begin to cool off a little and the cycle is ready to repeat itself.
the situation i originally mentioned is how the middle east works. They hate countries because those contries like another country that they hate. They may not necessarily like another country that hates the same country they do, but you have to throw religion in the mix there which AI is incapable of modeling for the sake of computers not self destructing or becoming skynet and destroying humanity for introducing such craziness.


That seems more dynamic and in some cases more realistic than faction alliances attacking each other without provocation and continuing to do so indefinitely, with the exception of a few noteworthy factions like the Aera.
The problem is not where you think it is. The factions that aren't friendly to eachother attack eachother because that's all our AI is scripted to do with units it doesn't like. Obviously, a correctly written AI and subsequent scripts, would have many things to think about prior to attacking a faction that they dont like. If faction A hates faction B and Faction C likes faction B, faction A and faction C aren't going to like eachother, they may even hate eachother depending on how much A hates B and how much C likes B. But to attack C, would require C passing some threshhold of threat to A in A's logic, or perhaps A's personality profile makes them prone to aggressive behavior and they'll attack C simply by association. It wouldn't be a rule, it would be dependent on how each faction deals with politics.

Basically, the behavior between the two would likely result from a different code path. Not by the pair scales, but by other logic that looks at association. Since, the pair scales are dependent on action and reaction between units and then fed back to the faction. Association doesn't factor in there. Another code path in the AI might look at association, and then modify behavior another way.
Ed Sweetman endorses this message.
javier
Bounty Hunter
Bounty Hunter
Posts: 137
Joined: Tue Jan 31, 2006 12:46 am

Re: new factions system in 0.6.0?

Post by javier »

Another problem is that the AI doesn't evaluate its chance of sucess before attacking. It should be able to decide attacking or running depending the correlation of forces, and that would improve the realism. The evaluation could be different on a faction basis (i.e., Ulns could think they're always on advantage) and influenced by faction relation (strong hatred favor attacking even with lesser chances).
This way there could be situations like two similar balanced flightgroups from enemy factions standing near without attacking each other, in a cold stance, waiting for a third part appearing and breaking that balance, thus making the favored faction attack, or the other one retire.
TBeholder
Elite Venturer
Elite Venturer
Posts: 753
Joined: Sat Apr 15, 2006 2:40 am
Location: chthonic safety

Re: new factions system in 0.6.0?

Post by TBeholder »

If you scratched station, there's no reason why they wouldn't just fine you. :)
Also, if "faction A abhors faction B" this doesn't looks like sufficient cause for them to instantly become zap-happy and start to show off their fireworks on the territory of faction C in the immediate vicinity of facilities belonging to the latter.
"Two Eyes Good, Eleven Eyes Better." -Michele Carter
RedAdder
Bounty Hunter
Bounty Hunter
Posts: 149
Joined: Sat Jan 03, 2009 8:11 pm
Location: Germany, Munich
Contact:

Re: new factions system in 0.6.0?

Post by RedAdder »

I believe if you f1(sweet talk)the station before docking, it takes longer for it to get angry.
TBeholder
Elite Venturer
Elite Venturer
Posts: 753
Joined: Sat Apr 15, 2006 2:40 am
Location: chthonic safety

Re: new factions system in 0.6.0?

Post by TBeholder »

pyramid wrote:Pseudo-Hierarchy Model
We can connect flightgroups or even individual ships to factions, subspecies, and species. This means that actions from a flightgroup can have impact on relations to the higher hierarchies.
And subunits (including installations on planet/asteroid). :)
IMHO it would be simplest to use unit's field which tells how much it would be missed if something "happens" to it. Then moderate damage to the city or Mining Base's habitat would be considered more serious than blasting radar dish and handful of drones.
safemode wrote:If faction A hates faction B and Faction C likes faction B, faction A and faction C aren't going to like eachother, they may even hate eachother depending on how much A hates B and how much C likes B. But to attack C, would require C passing some threshhold of threat to A in A's logic, or perhaps A's personality profile makes them prone to aggressive behavior and they'll attack C simply by association. It wouldn't be a rule, it would be dependent on how each faction deals with politics.
Looks like in comomon case here's axis "how much they like you" (hate - adore) and axis "how much they respect you" (disregard/patronizing - fear/praise).
"Two Eyes Good, Eleven Eyes Better." -Michele Carter
Post Reply