BattleMaster Community

BattleMaster => Helpline => Topic started by: edgewater1364 on July 08, 2018, 11:17:03 PM

Title: Faulty Battle Allegiances
Post by: edgewater1364 on July 08, 2018, 11:17:03 PM
Hey, I wanted to let you (the devs) know that during a battle in Winkamus, Highmarch incorrectly stayed Neutral due to faulty coding.

It's not working as intended, no it isn't, don't tell me it is, because I personally know better. I don't want to go in there and change it myself because I don't have permission, (and would likely just make things worse) but it should be looked at, at least, and honestly, I don't know why we still have issues like this after so many years and years of battles. Literally battles are the premise of the game. How can we trust we will properly enjoy them when the immersion is destroyed again and again by coding issues and other game-related meta accidents? Anyway.

Redhaven is at War with Vix Tiramora, but so is Highmarch. There's no diplomatic reason realms at peace wouldn't join in an attack against a realm that they're both at War with because of a pre-existing alliance. I'm sure the game only checks one relation to be at War and acts accordingly, but in this case, War status should supercede any supposed caution. Again, its two realms in alliance, and one at peace with both of those, but all three are at War with the other, there is no diplomatic reason for one party to not be involved. The whole point of us being there is to actually fight alongside Highmarch. Again, there is literally no reason beyond game code that we are not fighting together.

Is there anything I can do to help this fix along or are we just going to have to go to Alliance status with Highmarch for game reasons and pretend we're still at Peace Diplomatically?
Title: Re: Faulty Battle Allegiances
Post by: Zakky on July 09, 2018, 07:07:31 AM
It is working as intended actually. Peace is enforced. If you want to fight, don't be in peace.
Title: Re: Faulty Battle Allegiances
Post by: Wimpie on July 09, 2018, 08:19:31 AM
It is working as intended actually. Peace is enforced. If you want to fight, don't be in peace.

^ This has always been the case and has forever not been treated as a bug.
Title: Re: Faulty Battle Allegiances
Post by: Attano on July 09, 2018, 04:04:09 PM
The issue is that Highmarch didn’t fight Vix alongside Redhaven.
Title: Re: Faulty Battle Allegiances
Post by: Vita` on July 09, 2018, 04:51:08 PM
I've tried several times, but your message is all over the place. I'm trying to look into this, but in the future, it'd be better to clearly state what each realm's diplomatic relations to the other realms are, the battle region (which you did, thanks) and region owner.

Generally, if you want to support someone in a battle, you need to be allied or federated. If you want to war someone, you need to be at war with someone. If Keplerstan is at war with Evilstani and at peace with Goodstani who is also at war with Evilstani, and Evilstani is attacking Goodstani's region, Keplerstan moving into help defend Goodstani's region will not work, as I understand it. You must have an alliance.

Now the confusing sections...

Quote
There's no diplomatic reason realms at peace wouldn't join in an attack against a realm that they're both at War with because of a pre-existing alliance.
It seems you are referring to them as both at-peace and allied.

Quote
Again, its two realms in alliance, and one at peace with both of those, but all three are at War with the other
This was the most nonsensical. You refer to three realms, Highmarch, Vix Tiramora, Red Haven. You say two are allied, and one is at peace with both of those, but all three are at war? How can they be allied and at peace and at war with each other?

Quote
The whole point of us being there is to actually fight alongside Highmarch.
Then you need to be allied with them.

Quote
Is there anything I can do to help this fix along or are we just going to have to go to Alliance status with Highmarch for game reasons and pretend we're still at Peace Diplomatically?
There is no pretending. If the game says you are allied, then you are allied, not at peace. If the game says you are at peace, then you are at peace, not allied. No different than the placeholder rule (if you are elected/game says you hold a position, you hold that position, not temporarily holding it for someone else to return). If you were only at peace, not allied, then the only reason you were not fighting together is that you were not allies, which is your diplomacy decisions, not game code. You don't risk life and limb to fight with folks you are merely peaceful with against a mutual enemy, you let them weaken each other first.
Title: Re: Faulty Battle Allegiances
Post by: Vita` on July 09, 2018, 05:13:52 PM
So looking into this, here is what it looks like to me. Correct any errors of understanding, please.

Redhaven was in Winkamus, Highmarch's region. Highmarch and Vix Tiramora were moving into Winkamus. Vix is at war with both Redhaven and Highmarch. Redhaven and Highmarch are at peace with each other.

The first part of setting up battle sides is choosing the defender. In this case, no one from Highmarch or any of its allies/federations were in Winkamus. So for defenders, the game selected Redhaven for having troops in the region (a bit more complicated process, but simplified explanation). Once the game selects defenders, it begins adding allies/federations and enemies. Since Highmarch and Redhaven were only at peace with each other, Highmarch didn't join the battle as Redhaven's allies/federation.

So in the end, Highmarch got Redhaven to defend Highmarch's region from their mutual enemy while Highmarch watched.
Title: Re: Faulty Battle Allegiances
Post by: Zakky on July 09, 2018, 10:01:10 PM
Makes a lot of sense to me. If you are only at peace with your future allies, then yeah no wonder they didn't join you. They might be your future allies but they were not during the battle. It seems edgewater1364 just did not know how BM diplomacy worked.
Title: Re: Faulty Battle Allegiances
Post by: Gildre on July 10, 2018, 11:07:22 PM
I like to think I have a decent grasp on game mechanics these days, but I was surprised by this one. I thought that the fact that Highmarch was at war with Vix Tiramora would mean they would be going into battle for themselves, not just supporting Redhaven.

It would have made sense to me if Highmarch and Vix were neutral, but since they are at war it seems like they should be a definitive enemy...

Regardless, I think all involved are tracking that now :)
Title: Re: Faulty Battle Allegiances
Post by: Zakky on July 11, 2018, 12:37:23 AM
Peace is prioritized over almost everything I believe. Try to sort your diplomatic relations before going to war. Otherwise you will suffer  8)
Title: Re: Faulty Battle Allegiances
Post by: Gabanus family on July 12, 2018, 12:00:32 AM
Well I think it has more to do with the fact that defenders get chosen first and attackers second. If Redhaven was defending, then Highmarch is not allied with them and won't help. Then whoever wants a piece of Redhaven (at war or super aggressive settings etc) will have it and join in on the attack.
Title: Re: Faulty Battle Allegiances
Post by: Chenier on July 12, 2018, 04:22:42 PM
So looking into this, here is what it looks like to me. Correct any errors of understanding, please.

Redhaven was in Winkamus, Highmarch's region. Highmarch and Vix Tiramora were moving into Winkamus. Vix is at war with both Redhaven and Highmarch. Redhaven and Highmarch are at peace with each other.

The first part of setting up battle sides is choosing the defender. In this case, no one from Highmarch or any of its allies/federations were in Winkamus. So for defenders, the game selected Redhaven for having troops in the region (a bit more complicated process, but simplified explanation). Once the game selects defenders, it begins adding allies/federations and enemies. Since Highmarch and Redhaven were only at peace with each other, Highmarch didn't join the battle as Redhaven's allies/federation.

So in the end, Highmarch got Redhaven to defend Highmarch's region from their mutual enemy while Highmarch watched.

Yea, I don't think it's a bug, it's always been like this.

However, I do think it's pretty silly that "lack of alliance" trumps "being at war". It'd be only natural for realms at peace with each other to unit against a realm they are both at war with.
Title: Re: Faulty Battle Allegiances
Post by: GoldPanda on July 12, 2018, 09:44:52 PM
You don't risk life and limb to fight with folks you are merely peaceful with against a mutual enemy, you let them weaken each other first.

So that you can both get defeated in detail? That seems like faulty tactical reasoning.

But I concede that this is how the game has always worked.

So looking into this, here is what it looks like to me. Correct any errors of understanding, please.

Redhaven was in Winkamus, Highmarch's region. Highmarch and Vix Tiramora were moving into Winkamus. Vix is at war with both Redhaven and Highmarch. Redhaven and Highmarch are at peace with each other.

I went back and checked the order of events. I believe Winkamus was empty the turn before the battle. In other words, everyone moved in on that turn.

Vix Tiramora was the region owner at the time, and the region defected to Highmarch soon after the battle. At no time was Redhaven the region owner.

So I'm wondering why Redhaven was the defenders. My understanding is that the game has a strong preference for choosing the region owner as the defenders? I've had cases where we defeated the region owners and forced them to retreat, and then dug in, and then knights from the region owner marched back in and instantly became the defenders again.
Title: Re: Faulty Battle Allegiances
Post by: Andrew on July 13, 2018, 02:54:12 PM
Alright, since I was kind of working on modernizing the combat code anyways, I sat down and took a look. This is exactly how the game figures out who is on what side of a battle, and any later step includes all factoring from earlier steps (1 comes before 2, 9 comes after 1-8, etc.), taking into account ~260 lines of code. For the purposes of rogue forces, those without realms, they are treated as their own realm, rather than being realm-less. The process for regular battles (not rebellion related):
Shorter version:So, what does this mean:I suspect this was setup the way it was, so if you and an enemy are traveling through a third, neutral country, you don't just start murdering each other in their capital, as said third country would safely be assumed to have some token militia force in their regions that'd grant them battlefield control and stop the other two from being fighting as they'd not be assigned as attackers.
Title: Re: Faulty Battle Allegiances
Post by: Bluelake on July 13, 2018, 03:16:21 PM
Step #3 doesn't explain two battles in Nascot where in one, Perdan and Perleone (allies) fought alongside monsters against Highmarch, and another where Perdan just watched as monsters fought against Highmarch.

Highmarch was peasants. Perdan and Perleone are allies, Perleone is at Neutral with Highmarch, and I think Perdan is at Neutral too. Perleone was looting the region and probably had attack orders.
Title: Re: Faulty Battle Allegiances
Post by: Andrew on July 13, 2018, 03:36:30 PM
Sorry, Vita pointed out something I missed. Step 3 only factors in when only rogues are present. For the rest of it, rogues themselves count as a realm.

I've updated Step 3 and will update it again to explain how rogues work in regards to this.
Title: Re: Faulty Battle Allegiances
Post by: Andrew on July 13, 2018, 04:06:34 PM
Step #3 doesn't explain two battles in Nascot where in one, Perdan and Perleone (allies) fought alongside monsters against Highmarch, and another where Perdan just watched as monsters fought against Highmarch.

Highmarch was peasants. Perdan and Perleone are allies, Perleone is at Neutral with Highmarch, and I think Perdan is at Neutral too. Perleone was looting the region and probably had attack orders.

For your situations here, I'd need to know who was already present, who was showing up that turn, and what the battle report said for who took control of the battlefield, to exactly why it happened and/or fix my list of steps.

If I had to guess though, in your Perdan, Perleone, and Monsters vs Highmarch, Highmarch was the defender.

Step ??: Highmarch is assigned Defender A.
Step 12: No Change.
Step 13: Monsters attack because they're at war with EVERYONE.
Step 14: No change.
Step 15: Perleone with attack orders violates their neutrality and joins the assault.
Step 16: No change.
Step 17: No change.
Step 18: Perdan, allied with Perleone, joins their allies assault against Highmarch.

Neutral is not Peace. If Perdan and Highmarch had peace, Perleone would've assaulted alone. 

You can only end up fighting with monsters as your ally if they are NOT the defender, as every realm would see them as the enemy in step 13. Since Highmarch was defending, this made the monsters attackers. Perleone joined due to unit settings, and Perdan followed their ally.

As for Perdan watching monsters and Highmarch fight, it's Perdan's neutrality. In this case I'd have to assume that Monsters were attacking, and Highmarch was defending. Perdan didn't join the defense, because they were neutral with the defenders--in other words, as far as the game could tell, it wasn't Perdan's fight, just Highmarch's.
Title: Re: Faulty Battle Allegiances
Post by: edgewater1364 on July 15, 2018, 03:29:10 AM
As the OP, I'm not certain where the question of rogues came in, that was not part of my inquiry, but I -am- satisfied with the level of response here.

Apologies for the aggressive tone but it's very frustrating to play something for over a decade and have it go against what was understood.

My understanding would naturally have been that "At War" would supercede everything else. Not that "in alliance" is the only way realms will fight alongside one another.

Caligus was "at Peace" with Highmarch.
Caligus was "at Alliance" with Redhaven.

Redhaven was "at Alliance" with Caligus.
Redhaven was "at Alliance" with Highmarch, I believe.

Redhaven, Caligus, and Highmarch were all "at War" with Vix Tiramora.

I would have expected Everyone "At War" with Vix Tiramora to band together to fight them.
If Caligus were "At Neutral" with Highmarch, I would have expected them to join with Highmarch to fight Vix Tiramora, or at least with Redhaven, their Allies.

Caligus does not officially trust Highmarch. Their stance is Neutrality, but now, they will be forced into an untrusting Alliance due to this code because they Do Intend to fight together, meaning they intend to continue fighting alongside their allies, Redhaven, Sirion etc. Not necessarily Highmarch.
Title: Re: Faulty Battle Allegiances
Post by: Andrew on July 15, 2018, 12:22:28 PM
I only brought rogues up because if I'm going to detail how it works, I'm going to detail ALL of how it works (which includes rogues).

Should this edge case be addressed? Yes. Delvin, Vita, and I all have bounced ideas around on how to fix it, but I think Delvin wants to finish his current update before adding another change in--which is good, because a focused Delvin means things get done sooner.

Someone should throw that guide I made on your wiki though, in the manual ideally, or it'll probably get lost again like the other times it's been detailed (or so I'm told).