Author Topic: C# Aurora v0.x Suggestions  (Read 350585 times)

0 Members and 2 Guests are viewing this topic.

Offline Desdinova

  • Lt. Commander
  • ********
  • D
  • Posts: 280
  • Thanked: 280 times
Re: C# Aurora v0.x Suggestions
« Reply #2190 on: April 07, 2020, 06:48:36 PM »
Yes, but if for some reason the UK torpedoed a US frigate in the English Channel then it could certainly lead to the immediate end of friendship and maybe even further battle/war, but what *wouldn't* happen is that the US navy immediately opens fire on and sinks every british-flagged ship on the eastern seaboard, immediately turning a single outrageous incident into a total war of annihilation.

Maybe there could be a "system-level conflict" where retaliation is immediate for attacks on a ship but conflict outside that immediate battle doesn't automatically start right away - some kind of official declaration of war from them (if sufficiently outraged and you insufficiently apologetic) or you (if you're genuinely turning on them and launching a surprise attack)? Its a very complex subject in either case

I agree with that in principle. The problem is that in the scenario above, you have two countries with an equal ability to understand this could be an accident or it could be negotiated away. Assume the US is an NPR. Should the British be able to get away with sinking a US ship occasionally without long-term relationship problems? Or should the British be able to sink a US ship and know the US will only retaliate in the same area and can therefore make preparations accordingly - like luring the US fleet into an ambush? Also in this scenario, the US has to follow rules and isn't allowed to do the same to the British without lots of warnings first.

When you are dealing with an AI, you need to make rules that do not allow the player to manipulate those rules in unrealistic ways. Even with the rules on launch, you have the option to lightly damage an NPR ship and, without immediate further contact, relations will return to non-hostile quickly. If you are lined up face to face with an NPR ready for war, then don't shoot at its ships.

Longer term, there may be other options. If the damage isn't too bad and relations are good, then maybe a warning and a relationship hit for the first incident only.  I need to see the diplomacy in action a lot more though before I start adding more options or detail. It is already far more complex than VB6.

Doesn't Aurora kind of presume that faster-than-light communication doesn't exist? It occurs to me that if long-range communications is difficult or impossible, then it might be accepted by fleet command that a certain number of ships sent out are just going to disappear. Obviously things change if they can radio home immediately to let them know they're under attack.


The USS Liberty incident is a good example of that kind of scenario. Another example might be the Dogger Bank Incident during the Russo-Japanese War, where the Russian second pacific squadron mistook English fishing trawlers for Japanese torpedo boats and fired on them, very nearly causing Great Britain to declare war on Russia.
 

Offline JacenHan

  • Captain
  • **********
  • Posts: 454
  • Thanked: 115 times
  • Discord Username: Jacenhan
Re: C# Aurora v0.x Suggestions
« Reply #2191 on: April 07, 2020, 07:01:38 PM »
Doesn't Aurora kind of presume that faster-than-light communication doesn't exist? It occurs to me that if long-range communications is difficult or impossible, then it might be accepted by fleet command that a certain number of ships sent out are just going to disappear. Obviously things change if they can radio home immediately to let them know they're under attack.
The AI currently doesn't, and I can imagine that making it do so would be pretty difficult. As it is, any non-FTL communication is purely a roleplaying choice by the player. One that I and many people personally enjoy and make quite often, since it allows for more interesting decision-making, but a roleplaying choice nevertheless.
 

Offline Garfunkel

  • Registered
  • Admiral of the Fleet
  • ***********
  • Posts: 2790
  • Thanked: 1052 times
Re: C# Aurora v0.x Suggestions
« Reply #2192 on: April 07, 2020, 07:02:42 PM »
There actually is a historical precedent.  .  .   See the USS Liberty Incident https://en. wikipedia. org/wiki/USS_Liberty_incident
We also have historical examples of it going the other way:

https://en.wikipedia.org/wiki/Gulf_of_Tonkin_incident
and
https://en.wikipedia.org/wiki/USS_Maine_(ACR-1)

There are many examples of the situation escalating as well as de-escalating. History is tricky like that.
 
The following users thanked this post: papent, Alsadius

Offline Desdinova

  • Lt. Commander
  • ********
  • D
  • Posts: 280
  • Thanked: 280 times
Re: C# Aurora v0.x Suggestions
« Reply #2193 on: April 07, 2020, 07:05:52 PM »
What I propose is splitting relations into two metrics: an overall relations status, and a "flashpoint" or "tension" metric that is system-specific.

This system-specific "flashpoint" level multiplies the effect of diplomatic actions on the overall relations. Furthermore, the "flashpoint" level falls very slowly.

In the scenario were side A blows up side B's ship, it escalates the tension level in that system by some arbitrary amount, say from 1 to 3. If side A blows up another one of side B's ships, the relations penalty is now 3 times worse, and because the tension level falls very slowly, side A can't keep blowing up side B's ships every once in a while. If a war does occur, and relations are later normalized following a peace treaty, the tension level is still high enough that a future hostile action might warrant an immediate military response.
 

Offline Hazard

  • Commodore
  • **********
  • H
  • Posts: 643
  • Thanked: 73 times
Re: C# Aurora v0.x Suggestions
« Reply #2194 on: April 07, 2020, 08:49:07 PM »
The thing with a single incident causing a war is that they don't.

Rather, what you will see is that the governments figure out if a war would be worth fighting. Wars are expensive after all, in lives and material. But after that assessment? They start pushing for that war, and they either manufacture an incident, they exploit an incident or they manage to bully their opposition into yielding. The incident is rarely the cause of the war, it's merely the spark lighting the fuse.


So if the UK sank a USA warship in British waters it'd be put down to a terrible accident and a bunch of heads in both navies are likely to roll because the accident happened at all. You might see a cooling of relations but the USA and the UK are allies and that alliance is more valuable to both of them. Likewise were there a number of incidents during the Cold War that could've ignited that war, like when Korean Air Lines Flight 007 was shot down by the Soviet Union during a time of very high tensions between NATO and the Warsaw Pact, but nobody actually wanted that war. Everybody would've lost.

At the same time, small events have been blown greatly out of proportion for the sake of provoking a war, or flat out invented for the sake of political expedience. When the ####s were ready to attack Poland, part of the plans was to have #### troops pretend to be Polish forces shelling German positions, and to take that as the justification for the war against Poland. Similarly was the presence of WMDs in Iraq's arsenal used as justification by the USA, but later investigation showed no such weapons existed and that it was entirely fabricated to justify the war. The War for Jenkins' Ear started when a sailor by the name of Jenkins presented his cut off decaying ear to the English Parliament and related how it was severed years beforehand by the Spanish. Incensed and having spend the last decades looking for a justification for a war to resolve a territory dispute in the Americas it was seized upon by Parliament and used to start the war that had been brewing for quite a while by then.


That said, one way to resolve the question of 'how to make the AI estimate whether or not something was an accident or deliberate action' is by having the AI check the incident, see what got hit, check the point value of that damage and check the originating empire's relationship with the AI involved. If they're allies and it's the first incident? The AI stores the incident for a while (probably related to the build point value or build time of the ship) after which it forgets it happened. If they're allies and both empires had just (as in the past 24 hours) been in conflict in that system with a third party with missiles flying around? Well, friendly fire isn't, but it happens and it happens more often when weapons with self aiming capability end up pointed the wrong way, so it stores the data for a while.

Should repeat events occur the AI will shift their diplomatic stance away from their unreliable ally, adding the diplomatic point shift that had been deferred.

When we're not talking allies but friendly empires the same happens but part of the shift happens immediately.

With neutral and hostile empires it's just straight to confrontation.
 

Offline amram

  • Lieutenant
  • *******
  • a
  • Posts: 154
  • Thanked: 79 times
Re: C# Aurora v0.x Suggestions
« Reply #2195 on: April 07, 2020, 08:53:51 PM »
Rather than multiple measures of relation, which certainly have merit, i'm not arguing against, but would it not be simpler to just have enough headroom in the range of possible relations to allow a huge diplomatic hit from ship loss? 

A set back worth years, if not decades of diplomatic effort. If you have enough goodwill stacked up, perhaps not war, but definitely not the trust you had.

Across all of history there have been examples of different peoples meeting for the first time, unable to effectively communicate for language barriers and differing cultural norms, some have come to start war, some have started war without meaning to.  Lets set that aside and worry about those that managed extended peace before war broke out.

Granted, potentially very different alien species may not even realise their opposite is even looking at them if they cannot see what they recognise as a face, or even just eyes, or possibly even that they are trying to communicate at all, those early days are fraught with challenges, miscommunication and misunderstandings.  War should be easy to get into, and hard to get out of during this period.

Given enough time though, you learn to communicate with them, their culture, ideals, how not to offend, and what they view as a form of apology.  Any less and one must ask what those diplomatic envoys have been up to all those years, getting paid to chat and socialise, formally or otherwise.

That knowledge and trust could lead them to understand, for example, that rogue elements have attacked them, it was not sanctioned, the aggressors have been neutralised, and the host nation seeks to make amends.  Tense situation, but if the diplomats have done their jobs well, it doesn't get worse.

More likely, it could lead to understanding of an accident.  We didn't fire at you, we didn't even know your ship was there, we couldn't see it on sensors.  Alas, our missile had an active sensor aboard and when its original target died it was able to see your ship and engaged it with unfortunate results.

As far as having the AI discern a degree of player/AI intent without much effort, perhaps a pair of fields in the active missile/salvo object and relayed to any child objects spawned via stages, referencing the original target the firecontrol was set to, and the originating launch platform.  If the ship hit by the missile, was the FC target, be upset, that was intentional.  If the FC target was another empire's vessel, most likely an accident, be less upset.  If the target was a waypoint, don't be quite as mad as if you were the target, you might not have been, but it might not have been an accident.  If the missile also sets itself as launch platform when it is used as a mine, then that can be factored as well, since mines are less than an intentional strike, but more than an accidental blow.

Extend that intent to loss of a ship, since a single salvo acting as one entity of many may accidentally smash a target other than intended, coupled with enough headroom that accidental loss of ship plus maximum/near maximum relations results not in war but badly damaged relations. Two ships should be nearly, if not impossible to afford the penalty without war within a few years/decades of each other.

As a modifier, large powerful salvos will still be more harm than lesser ones, so bigger ships would, assuming only the damage received is counted rather than delivered, by default convey larger penalties with or without any modifier, so you perhaps could never hit their battleship hard enough to kill without triggering war, but a scout ship, a tanker, or some other fragile vessel, quite possibly.
« Last Edit: April 07, 2020, 08:59:22 PM by amram »
 

Offline Vivalas

  • Warrant Officer, Class 1
  • *****
  • V
  • Posts: 95
  • Thanked: 32 times
Re: C# Aurora v0.x Suggestions
« Reply #2196 on: April 07, 2020, 10:35:40 PM »
I have an unrelated suggestion that is relatively simple, but pleases the Star Trek and conventional ocean navy fan in me  ;D


Is it possible to get an option somewhere to change the formatting of how ship names are displayed? Best case this is maybe fully customizable with template strings the user can edit, but maybe also a simple few different formats would be nice.

The format I'd like to see, really, is just something along the lines of 'USS Montana (DD-034)' or something. Basically, the ability to add hull numbers to your ship (which increment for every ship of the same hull type) and a way to change the way ships are displayed.

So instead of DD Ganges, TR Progea, CS Tango and etc. it would be USS Ganges (DD-21), USS Progea (TR-05), USS Tango (CS-01) etc. ([prefix] [name] ([class prefix]-[hull number]) in the various screens where ship names are displayed. With also the ability to customize the ship prefix for your empire (or even change it according to branches of your naval organization / admin command so you could get stuff like USNS for auxillar ships etc.) and having civilian liners have prefixes based on either shipping lines or just a common prefix (so SS Mercury's Bane or MV Achaea or something)

EDIT: And of course things like USS Enterprise (NX-01) :D
« Last Edit: April 07, 2020, 10:39:45 PM by Vivalas »
 
The following users thanked this post: MarcAFK, papent, Barkhorn, Tunsku

Offline Zhatelier

  • Chief Petty Officer
  • ***
  • Posts: 46
  • Thanked: 19 times
Re: C# Aurora v0.x Suggestions
« Reply #2197 on: April 08, 2020, 12:48:39 AM »
I would actually suggest a "Trust factor" to damped the negative impacts on relations.  For obvious reasons, it would only be a post-release thing, but here are some example numbers on how it could work:

Trust would we a number ranging from 1-10 and any negative effects on relations would be divided by SQRT(Trust).
When a new race is met, the trust starts at 1.
Each year, the trust has a chance of going up by one: (100 - Xenophobia + Modifiers) / 1000.
Modifiers would include the diplo rating of a team plus any existing deals like trade or research etc.  each giving a 20 points bonus.
For every -100 to relations (prior to dampening, can happen in multiple incidents or claims if trust has not increased in the meanwhile. ) the trust will drop by one but never goes negative.

Trust would behave in a way similar to the diplomatic rating in that a race can only see their trust of another race, but not vice versa.  So I might have a trust factor of 5 to an NPR while they only have a trust of 3, thus my nation would be more willing to overlook any claims or incidents by the NPR than the other way around.  Trust would not have any direct impact on positive effects on relations, only lowering the negative ones.
 

Offline Steve Walmsley

  • Moderator
  • Star Marshal
  • *****
  • S
  • Posts: 11667
  • Thanked: 20428 times
Re: C# Aurora v0.x Suggestions
« Reply #2198 on: April 08, 2020, 03:31:33 AM »
How about instead of moving directly to -100 for the first point of damage, there is instead a high multiple of the normal relationship hit for damage if not already hostile at the start of the increment?

I would also increase the 'Danger Rating' of the system where the incident occurred, so that non-military NPR shipping would avoid the area.

That way, a single ship being damaged is going to affect relations and cause an NPR pull-back in economic terms but probably not cause a war if relations are high enough. Conversely, if you destroy several ships in a surprise attack while at peace, you end up with a huge negative reaction (a Pearl Harbour reaction). Those mechanics avoid a lot of complexity but provides the basic idea proposed above. To make things fair, I would also allow an NPR to fire on player ships without being hostile if the player continues to ignore requests to leave a system.


Offline MarcAFK

  • Vice Admiral
  • **********
  • Posts: 2005
  • Thanked: 134 times
  • ...it's so simple an idiot could have devised it..
Re: C# Aurora v0.x Suggestions
« Reply #2199 on: April 08, 2020, 03:55:59 AM »
That sounds fair to me.
" Why is this godforsaken hellhole worth dying for? "
". . .  We know nothing about them, their language, their history or what they look like.  But we can assume this.  They stand for everything we don't stand for.  Also they told me you guys look like dorks. "
"Stop exploding, you cowards.  "
 

Offline chrislocke2000

  • Captain
  • **********
  • c
  • Posts: 544
  • Thanked: 39 times
Re: C# Aurora v0.x Suggestions
« Reply #2200 on: April 08, 2020, 04:20:53 AM »
Sounds good to me as well. Not sure if you have implemented different AI types yet but if so I guess you could change the multiplier based on the outlook of the empire AI.
 

Offline SerBeardian

  • Warrant Officer, Class 1
  • *****
  • Posts: 75
  • Thanked: 37 times
Re: C# Aurora v0.x Suggestions
« Reply #2201 on: April 08, 2020, 03:30:16 PM »
How about instead of moving directly to -100 for the first point of damage, there is instead a high multiple of the normal relationship hit for damage if not already hostile at the start of the increment?

I would also increase the 'Danger Rating' of the system where the incident occurred, so that non-military NPR shipping would avoid the area.

That way, a single ship being damaged is going to affect relations and cause an NPR pull-back in economic terms but probably not cause a war if relations are high enough. Conversely, if you destroy several ships in a surprise attack while at peace, you end up with a huge negative reaction (a Pearl Harbour reaction). Those mechanics avoid a lot of complexity but provides the basic idea proposed above. To make things fair, I would also allow an NPR to fire on player ships without being hostile if the player continues to ignore requests to leave a system.

Entirely reasonable on all fronts.
 
The following users thanked this post: Jovus

Offline Jovus

  • Lt. Commander
  • ********
  • J
  • Posts: 220
  • Thanked: 81 times
Re: C# Aurora v0.x Suggestions
« Reply #2202 on: April 08, 2020, 05:12:59 PM »
Just adding my +1. Simple ways to model complex outcomes are great.
 
The following users thanked this post: DIT_grue

Offline Barkhorn

  • Commodore
  • **********
  • B
  • Posts: 719
  • Thanked: 133 times
Re: C# Aurora v0.x Suggestions
« Reply #2203 on: April 08, 2020, 07:49:28 PM »
How about instead of moving directly to -100 for the first point of damage, there is instead a high multiple of the normal relationship hit for damage if not already hostile at the start of the increment?

I would also increase the 'Danger Rating' of the system where the incident occurred, so that non-military NPR shipping would avoid the area.

That way, a single ship being damaged is going to affect relations and cause an NPR pull-back in economic terms but probably not cause a war if relations are high enough. Conversely, if you destroy several ships in a surprise attack while at peace, you end up with a huge negative reaction (a Pearl Harbour reaction). Those mechanics avoid a lot of complexity but provides the basic idea proposed above. To make things fair, I would also allow an NPR to fire on player ships without being hostile if the player continues to ignore requests to leave a system.
Could you include the ability for the NPR to do a Pearl Harbour style attack as well?  It just doesn't seem right if that mechanic is only an option for players.
 

Offline Vivalas

  • Warrant Officer, Class 1
  • *****
  • V
  • Posts: 95
  • Thanked: 32 times
Re: C# Aurora v0.x Suggestions
« Reply #2204 on: April 08, 2020, 09:14:54 PM »
How about instead of moving directly to -100 for the first point of damage, there is instead a high multiple of the normal relationship hit for damage if not already hostile at the start of the increment?

I would also increase the 'Danger Rating' of the system where the incident occurred, so that non-military NPR shipping would avoid the area.

That way, a single ship being damaged is going to affect relations and cause an NPR pull-back in economic terms but probably not cause a war if relations are high enough. Conversely, if you destroy several ships in a surprise attack while at peace, you end up with a huge negative reaction (a Pearl Harbour reaction). Those mechanics avoid a lot of complexity but provides the basic idea proposed above. To make things fair, I would also allow an NPR to fire on player ships without being hostile if the player continues to ignore requests to leave a system.
Could you include the ability for the NPR to do a Pearl Harbour style attack as well?  It just doesn't seem right if that mechanic is only an option for players.


That would be really cool. It could mirror the above formula and the chance of a surprise attack being possible would be proportional to xenophobia, determination, and militancy.

So, instead of the current situation of decreased relations, threats, and posturing and warning shots after ignoring its claims or you claiming a system it wants, it determines that it does in fact want to go to war with you, but instead of the player getting any notices of the sort, it just stealthily starts posturing its fleets and recalling its traders before dropping the hammer out of nowhere and suddenly what you just thought was your ally now has a battle fleet on a direct course for your homeworld  ;)