Logo Platform
logo amplifiers simplified
Endless Legend
Universe banner wording

ENDLESS™ Legend is a turn-based 4X fantasy-strategy game, where you control every aspect of your civilization as you struggle to save your homeworld Auriga. Create your own Legend!

Some bugs found on configuration (xml for AI/Simulation) and a few possible solutions

Reply
Copied to clipboard!
7 years ago
Jan 28, 2017, 10:14:18 PM

Hi there,


I've been working on a Heroes and a AI mod, I've found a few bugs that may be fixed for next revision:


1. No correct description on Army Boost hero abilities (happens on all languages). On version 1 and 2 the values for initiative/damage are wrong: On the L1 the description says +3 Damage +2 Initiative, but the real values are swapped. L2 version has a similar problem. L3 is entirely wrong, on the Simulation values it adds 15% attack/defense but the description seems a copy of the L2 version. There are no standard heroes with the Army Boost 3, but if you mod that ability into a hero, then you get a confused description.


2. On AI evaluations, incorrect values for the Resource per District values. When the AI decides if the building is interesting enough to be built, these values are only getting the weight for one district. This happens on all resource types, and affect not only related buildings but other parameter converters that are based on these ones.


As example this is the original value:

  <AIParameterConverter Name="DistrictScience">

    <ToAIParameter AIParameter="AICityResearch">$(Input)</ToAIParameter>

The correct value should be something like:

  <AIParameterConverter Name="DistrictScience">

    <ToAIParameter AIParameter="AICityResearch">$(Input) * $Count(ClassCity/ClassDistrict)</ToAIParameter>


3. on empire plan, there's several bugs in the "AIParameters[EmpirePlan]" xml file. They affect AI evaluations greatly:


3.A- Level 4 Research & Industry plan is non existent, we can find the L3 plan repeated for the L4 plan. I've created a simple value to fix it.


On the original file:

  <AIParameterDatatableElement Name="EmpirePlanDefinitionKnowledge4">

    ...

    <AIParameter  Name="AIEmpirePlanScienceAndIndustry3"  Value="900 min ($Count(ClassEmpire/ClassCity/ClassDistrict) * 100)"/> <!-- [0 ; 900] -->

    <AIParameter  Name="AIEmpirePlanScienceAndIndustry3"  Value="900 min ($Count(ClassEmpire/ClassCity/ClassDistrict) * 100)"/> <!-- [0 ; 900] -->

  </AIParameterDatatableElement>

A possible solution:

  <AIParameterDatatableElement Name="EmpirePlanDefinitionMilitary4">

    ...

    <AIParameter  Name="AIEmpirePlanScienceAndIndustry3"  Value="900 min ($Count(ClassEmpire/ClassCity/ClassDistrict) * 100)"/> <!-- [0 ; 900] -->

    <AIParameter  Name="AIEmpirePlanScienceAndIndustry4"  Value="2500 min ($Count(ClassEmpire/ClassCity/ClassDistrict) * 125)"/> <!-- [0 ; 2500] -->

3.B- The value calculated for Level 3 Empire Plan for Economics is always 0, due to the Sum Property not returning nothing. After some trial and error I've found a proper value to make the calculation.


On the original file:

    <AIParameter  Name="AIEmpirePlanEconomyAndPopulation3"  Value="900 min $SumProperty(ClassEmpire/ClassCity:IntermediateTradeRoutesGain)"/> <!-- [0 ; 900] -->

Apossible value to be aggregated:

    <AIParameter  Name="AIEmpirePlanEconomyAndPopulation3"  Value="900 min $SumProperty(ClassEmpire/ClassCity:LastOverrallTradeRoutesCityDustIncome)"/> <!-- [0 ; 900] -->

3.C- The value for the Level 4 Empire plan of empire and expansion has no max value in the formula, so could get so big that make all the other plans irrelevant in certain situations.


On the original file:

    <AIParameter Name="AIEmpirePlanEmpireAndExpansion4" Value="2500 * (($SumProperty(ClassEmpire/ClassCity:CityFood) * $Property(ClassEmpire/ClassCity:CityFoodToCityGrowthConversionFactor)) / 500)"/>

Possible solution:

    <AIParameter Name="AIEmpirePlanEmpireAndExpansion4" Value="2500 min (($SumProperty(ClassEmpire/ClassCity:CityFood) * $Property(ClassEmpire/ClassCity:CityFoodToCityGrowthConversionFactor) * 5))"/>  <!-- [0 ; 2500] -->

4. On the Expansion empire state (AIStrategicPlanDefinition[Expand].xml) there's an error: "ResourceBoosters" appears twice and looking at other strategic plans, seems that the second one was "AffinityBoosters" instead.


Original file:

    <ParameterModifiers Name="ResourceBoosters">

Fix:

    <ParameterModifiers Name="AffinityBoosters">

5. I think this one was already reported: Units with no movement points randomly maintain the pending status so they still appear in the button for the next army without orders. It's a bit tiring when you have to cycle through the same units over and over in a turn when you have many armies.


Now some observations I made during my AI mod, observing AI behavior.


- I play with all expansions, seems AI makes units compulsively. I understand AI must make lots of units, but building units (both land and ships) in all their cities 90% of the game makes them to enter endgame with barely no infrastructure. I corrected this a bit on my mod editing the AI Registry with a "GlobalUnitCountMultiplier" of 0.8 and more soft values at the beginning in City, War and Roaming unit needs, and still they make units most of the time. Maybe has something to do with the new "Naval Need" from the Tempest expansion, as the AI now need to cover both land and naval desired units.


- Seems the AI empire plan evaluations get lower and lower values as their empire grow bigger, I don't know how it works, but when the AI empires are big enough, they start to not doing Empire plans at all. I fixed this behavior multiplying all the empire plan evaluations (so they keep the proportions)  with the EmpireScaleFactor (Number of cities) and works wonders.


As example:

    <AIParameter Name="AIEmpirePlanEmpireAndExpansion1" Value="$Property(../EmpireTypeMajor:EmpireScaleFactor) * (200 min ($Count(ClassEmpire/ClassArmy) * 50))"/> <!-- [0 ; 200] * # Cities -->


- I wasn't able to fix the forgotten AI for higher difficulties: they research too slow. The Priority of the Technology buyout is always 0.2 and isn't modifiable, so the AI could reach turn 20 in impossible with only 2 techs researched, so they're usually crushed at mid-game if they have a minimally aggressive neighbor (or the player).


- Seems the AI doesn't know if a water body ends up in open sea or not, so on some maps they usually build lots of ships on closed waters with absolutely no use.


For the record, If you want to check my mods they're up on Steam:


AI Mod: https://steamcommunity.com/sharedfiles/filedetails/?id=851891695


Heroes Mod: https://steamcommunity.com/sharedfiles/filedetails/?id=818353568


Thanks for this wonderful game! 


...


BTW I'm not able to add the thumbs image on my mods, any help? :P

0Send private message
7 years ago
Jan 28, 2017, 10:45:42 PM

O ... M ... G


Absolutely stunning work, hats off to you, sir! ^^

0Send private message
7 years ago
Feb 5, 2017, 10:13:54 PM

Holy crap.


If the dev team wasn't considering another patch before seeing this thread,  they probably are now.


Reminds me of some copy/paste errors that I found in the Endless Space XML when I was looking at difficulty levels..   small errors with very significant effects.


0Send private message
7 years ago
Feb 6, 2017, 1:57:36 AM

The devs didn't answer in any way, who knows if they have any planned time for future updates for this game anytime soon.


Talking on difficult settings.. That's funny, found another minor bug: The food bonuses on the harder difficulties have an 'Addition' value instead of 'Percent' value.


As example, now on impossible, AI gets 50% Empire plan reduction, 50% buyout cost and 50% unit and building cost, but 0.5 extra food on cities (literally, half unit of food).


Found the thumbnails tag name, at last! 

0Send private message
7 years ago
Feb 6, 2017, 10:47:35 AM

Thank you for this impressive post, I'll pass it along to the Legend team.

0Send private message
7 years ago
Feb 6, 2017, 3:23:39 PM
Frogsquadron wrote:

Thank you for this impressive post, I'll pass it along to the Legend team.

Please make my day and tell us that more of updates (patches and ... perhaps a bit more content) are still planned for EL.

Pretty please ? ^^

0Send private message
7 years ago
Feb 7, 2017, 5:34:14 PM
Frogsquadron wrote:

Thank you for this impressive post, I'll pass it along to the Legend team.

Thank you, really.

0Send private message
7 years ago
Feb 8, 2017, 11:01:01 AM
icarus86 wrote:
Frogsquadron wrote:

Thank you for this impressive post, I'll pass it along to the Legend team.

Please make my day and tell us that more of updates (patches and ... perhaps a bit more content) are still planned for EL.

Pretty please ? ^^


I'm certainly not gonna promise anything.

0Send private message
7 years ago
Feb 9, 2017, 10:42:00 AM
Ninakoru wrote:
The correct value should be something like:

  <AIParameterConverter Name="DistrictScience">

    <ToAIParameter AIParameter="AICityResearch">$(Input) * $Count(ClassCity/ClassDistrict)</ToAIParameter>

3. on empire plan, there's several bugs in the "AIParameters[EmpirePlan]" xml file. They affect AI evaluations greatly:


3.A- Level 4 Research & Industry plan is non existent, we can find the L3 plan repeated for the L4 plan. I've created a simple value to fix it.


On the original file:

  <AIParameterDatatableElement Name="EmpirePlanDefinitionKnowledge4">

    ...

    <AIParameter  Name="AIEmpirePlanScienceAndIndustry3"  Value="900 min ($Count(ClassEmpire/ClassCity/ClassDistrict) * 100)"/> <!-- [0 ; 900] -->

    <AIParameter  Name="AIEmpirePlanScienceAndIndustry3"  Value="900 min ($Count(ClassEmpire/ClassCity/ClassDistrict) * 100)"/> <!-- [0 ; 900] -->

  </AIParameterDatatableElement>

A possible solution:

  <AIParameterDatatableElement Name="EmpirePlanDefinitionMilitary4">

    ...

    <AIParameter  Name="AIEmpirePlanScienceAndIndustry3"  Value="900 min ($Count(ClassEmpire/ClassCity/ClassDistrict) * 100)"/> <!-- [0 ; 900] -->

    <AIParameter  Name="AIEmpirePlanScienceAndIndustry4"  Value="2500 min ($Count(ClassEmpire/ClassCity/ClassDistrict) * 125)"/> <!-- [0 ; 2500] -->

Well spotted sir  Yes this appears to be a typo. My predecessor, obviously


3.B- The value calculated for Level 3 Empire Plan for Economics is always 0, due to the Sum Property not returning nothing. After some trial and error I've found a proper value to make the calculation.



On the original file:

    <AIParameter  Name="AIEmpirePlanEconomyAndPopulation3"  Value="900 min $SumProperty(ClassEmpire/ClassCity:IntermediateTradeRoutesGain)"/> <!-- [0 ; 900] -->

Apossible value to be aggregated:

    <AIParameter  Name="AIEmpirePlanEconomyAndPopulation3"  Value="900 min $SumProperty(ClassEmpire/ClassCity:LastOverrallTradeRoutesCityDustIncome)"/> <!-- [0 ; 900] -->

3.C- The value for the Level 4 Empire plan of empire and expansion has no max value in the formula, so could get so big that make all the other plans irrelevant in certain situations.

Ah, yes - the game deletes all the trade routes just before the AI executes and then re-instantiates them right after it finishes. Bane of my existence  Apparently we didn't replace all the occurrences having discovered the issue. The "last overall trade routes income" values were created, by the way, to save the previous state of trade routes during this period of no-trade-routes limbo. 


On the original file:

    <AIParameter Name="AIEmpirePlanEmpireAndExpansion4" Value="2500 * (($SumProperty(ClassEmpire/ClassCity:CityFood) * $Property(ClassEmpire/ClassCity:CityFoodToCityGrowthConversionFactor)) / 500)"/>

Possible solution:

    <AIParameter Name="AIEmpirePlanEmpireAndExpansion4" Value="2500 min (($SumProperty(ClassEmpire/ClassCity:CityFood) * $Property(ClassEmpire/ClassCity:CityFoodToCityGrowthConversionFactor) * 5))"/>  <!-- [0 ; 2500] -->

Hmm... yes that patently isn't between 0 and 2500. 


4. On the Expansion empire state (AIStrategicPlanDefinition[Expand].xml) there's an error: "ResourceBoosters" appears twice and looking at other strategic plans, seems that the second one was "AffinityBoosters" instead.



Original file:

    <ParameterModifiers Name="ResourceBoosters">

Fix:

    <ParameterModifiers Name="AffinityBoosters">

Another typo, yes.


Now some observations I made during my AI mod, observing AI behavior.

I've done review of your XML changes - there are many interesting propositions... and also some which I wouldn't agree with  We'll see what we can do (and, I stress, we'll see - no promises as Frog' just said) about incorporating these corrections - I'd rather not integrate everything as we have no QA on Endless Legend at the moment (indeed I myself am technically stealing budget from Endless Space 2 to check out this mod  ). Also I don't want to detract from the value of your mod!


And on a side note: it's really pleasing to know that people have stuck their heads into this parameters and figured out how they work - it was my world for a good year-and-a-half so it's a pleasure to be able to share that with someone in the community

Updated 7 years ago.
0Send private message
7 years ago
Feb 9, 2017, 8:31:06 PM
wilbefast wrote:


I've done review of your XML changes - there are many interesting propositions... and also some which I wouldn't agree with  We'll see what we can do (and, I stress, we'll see - no promises as Frog' just said) about incorporating these corrections - I'd rather not integrate everything as we have no QA on Endless Legend at the moment (indeed I myself am technically stealing budget from Endless Space 2 to check out this mod  ). Also I don't want to detract from the value of your mod!



And on a side note: it's really pleasing to know that people have stuck their heads into this parameters and figured out how they work - it was my world for a good year-and-a-half so it's a pleasure to be able to share that with someone in the community

Yeah, I understand, to test out my changes I used your 'AIDebugMode' and 'AISimulationMode' plugins and made some trial games to observe the resulting values or the AI behaviour.

Many of the changes I made on the AI mod were just tricks and traps to make the AI somehow behave the way I wanted, the only real bug fixes are the ones I have introduced in this post.

As example: It was not possible to check the AI interest in the AI research, because the AIDebugMode plugin doesn't work anymore with research evaluations, (I guess some updates in the interface of the related assemblies are the guilties), so I've gone in 'creative mode' and made a "AIMusthave" sort of parameter converter with lots of AI core parameters raised inside, and with some trial and error got what I wanted. Sure this is by no means good design but I reached my goal in practice ^^

Thanks to take up the time to check out my mod, I understand the team is focused on ES2, and have little time for this game right now (as a developer, I feel your situation..).

Thank you for the reply and I hope I could remove some of the fixes of my mod with the next game patch, all the game users (not using my mod) would have a slightly better user experience (pressure) :P

0Send private message
7 years ago
Feb 17, 2017, 12:54:27 PM

I've done review of your XML changes - there are many interesting propositions... and also some which I wouldn't agree with  We'll see what we can do (and, I stress, we'll see - no promises as Frog' just said) about incorporating these corrections - I'd rather not integrate everything as we have no QA on Endless Legend at the moment (indeed I myself am technically stealing budget from Endless Space 2 to check out this mod  ). 

Don't wanna be too pushy or importunate, but I think that Endless Legend still deserves a bit more love from you guys...

0Send private message
0Send private message
7 years ago
Mar 2, 2017, 4:41:04 PM
Frogsquadron wrote:

In case you missed it: https://www.games2gether.com/endless-legend/blog/507-forgotten-love 


Just got the Steam update and read the release posted by Lt_Miles. Still, I am hoping for more updates, including (but not limited to):

- https://www.games2gether.com/endless-legend/forum/6-game-design/thread/23903-suggestions-discussion-to-create-a-balance-mod-for-endless-legend-in-multiplayer

- https://www.games2gether.com/endless-legend/forum/6-game-design/thread/22288-post-tempest-wishlist


Then there's the performance issues experienced on low-end CPUs (i3, Phenom, etc.).


C'mon guys, EL is still very much alive and deserves some more ^^


P.S. My personal favorite would be a "The Lost Tales II" DLC.

0Send private message
?

Click here to login

Reply
Comment
0Send private message