Final Fixes Reborn

My vote is definitively for units for a very, very obvious reason.
 
Since Hidden Nationality was recently brought up, just a quick mention of something that would be nice to change, if possible. It seems that you can't use an area-effect spell to attack a HN unit without its resulting in a Declaration of War. What specifically happened in my game was that I encountered some barbarian (Bhall) ships. I wanted to have my Ritualist cast Ring of Flames and received the popup warning me that casting the spell would cause me to declare war on another civilization. There were no units from other civilizations nearby, so I can only assume that the "barbarian" ships were actually HN. This seems to make HN more powerful than it should be, I think.
 
python exception.
 

Attachments

  • python ex0000.JPG
    python ex0000.JPG
    255.5 KB · Views: 95
A couple of other observations:

1) The Svartalfar have "Dark Elven" as their Racial Promotion, which seems to have the same effect as "Elven." Also, I didn't see a Civilopedia entry for Dark Elven under "Promotions." Once an entry is added, it probably should be tagged in some way so that it appears under "Races" when you filter Promotions that way.

2) Very early on in two recent games I got the event saying that the barbarian hordes were at the gates. I didn't see any nearby barbarians, but more significantly, mousing over the choices didn't indicate what the result would be, and when I chose an option nothing happened.

3) Some of the units available for hire as Mercenaries seem like they shouldn't be there. I've seen both the Emperor's Dagger and Martyrs of Patria available, which doesn't seem right. In a recent game there was a Crusader available as well; religion-specific units being available for hire doesn't seem quite right, either.
 
2) Very early on in two recent games I got the event saying that the barbarian hordes were at the gates. I didn't see any nearby barbarians, but more significantly, mousing over the choices didn't indicate what the result would be, and when I chose an option nothing happened.

Ditto.

Also, the option for doubled events is, over 2 separate games, just repeating the same event on back-to-back turns. So, in this case, turn n, barbarian hordes; turn n+1, barbarian hordes. EDIT: Actually, this event has triggered 5 or 6 times in the first 60 turns of the game.

Also, am finally on SVN and looking to contribute. What is the process, for example, for providing new/edited pedia and/or mouseover text?
 
Last edited:
Hmm. Same game. My muskrat just wandered into contact with the Bannor, first AI I've encountered. This happened:

upload_2017-8-26_12-16-9.png


Note the lack of options beneath the image. Hitting ESC cleared the screen.
 
What are the changes between commit 299 and 300, is there a user-friendly log somewhere on that? Or is it only low level technicalities? More importantly, are the changes save-compatible?

I vote for Units

About the Scions, remarks: their plot bonus is on ruins, I believe it would be more thematic to have it on Ancient Ruins. They search remnants of old Patria after all. (1 mn change)
Also, if Korinna can have a female voice, that would be better, but this is only cosmetic. For now this is a male voice speaking in latin.

The Velites and Cetratus moving at only 1 is very crippling. That would be better to keep them at 2 but with something that prevent them from acquiring further Mobility I/II changes. This would still convey they are heavier scouts than the norm, without the crippling aspect impacted on early game where they can't basically explore as scouts do. If they need a +5 (Velite) / +15 (Cetratus) cost to balance, that's fine for me.

On workers, I believe something can be improved on their promotions. Basically you have skilled, that gives extra work rate, and hardy that gives retreat chance. The latter is not good, because it still don't prevent a group of workers to be all captured at once if you lose. What would be much better is if hardy gave a +1 defense. This way when you lose a worker in a group, you lose only one!
Done like that hardy pioneers are really hardy, they can work your border or even in hostile lands, and you know that on a group, you'll only lose the top one.
 
Last edited:
That said, I have a major performance issue now that I'm in the current version, compared to the (very old) stable version. More than 5 mn to process a turn (mostly from barbarians it seems, and I'm not in raging barbarian mode) at turn 50 versus 15 seconds in stable version in the early game and 3 mn at turn 200!!

So I have no doubts there has been many improvements, but there is at least one and possibly several algorithms that are not optimized at all or are called many a time a turn. As I'm also a developer, I'll suggest some tracks:

a) python algorithms, as they are much slower that the code in the DLL
b) pathfinding called just too many time at some point
c) non cached calculations, i.e you iterate on the whole map (or even part of it) each time doing recalculations

there are many possible culprits, but now the game is almost not playable for me, except on a standard or smaller map Forget huge. I played a 300% huge map in the old stable version with the time I indicated!

Sorry for the remarks, you are doing an awesome job Black Imperator, but probably you'll need to do something that is not very pleasant compared to coding gameplay: to profile and evaluate your bottlenecks and see if these functions are not called too many a time or are not cached.

About caching, on a certain set of data, you can do a 'on demand' calculation, then cache the result until the next invalidation (at least once per turn), that's the best technique

edit: something that intrigues me is that for the same faction (Bhaal), I had to wait 1 mn between the first attack and the third attack of some orcish warriors against my units. So clearly the iterations over the barbarians units take too much time somewhere, if each unit needs several seconds to determine its next move.
I'm not saying that these 3 orcs took one mn by themselves, perhaps they were the 13th, 89th and 167th units from the faction, if you understand what I mean. Still, Bhaal & barbarians should be done very fast.
 
Last edited:
Since Hidden Nationality was recently brought up, just a quick mention of something that would be nice to change, if possible. It seems that you can't use an area-effect spell to attack a HN unit without its resulting in a Declaration of War. What specifically happened in my game was that I encountered some barbarian (Bhall) ships. I wanted to have my Ritualist cast Ring of Flames and received the popup warning me that casting the spell would cause me to declare war on another civilization. There were no units from other civilizations nearby, so I can only assume that the "barbarian" ships were actually HN. This seems to make HN more powerful than it should be, I think.
Agreed, i'll see about how to do it.

python exception.
on it, fixed next commit.


1) The Svartalfar have "Dark Elven" as their Racial Promotion, which seems to have the same effect as "Elven." Also, I didn't see a Civilopedia entry for Dark Elven under "Promotions." Once an entry is added, it probably should be tagged in some way so that it appears under "Races" when you filter Promotions that way.
fixed next commit

2) Very early on in two recent games I got the event saying that the barbarian hordes were at the gates. I didn't see any nearby barbarians, but more significantly, mousing over the choices didn't indicate what the result would be, and when I chose an option nothing happened.
hmmm, it can sometimes appear when you don't see any barb if there's a hidden one. ( the role of that event is to avoid early wipes). The fact that the help text don't appear and that the options are not apparently working is more problematic. i'll do some tests

3) Some of the units available for hire as Mercenaries seem like they shouldn't be there. I've seen both the Emperor's Dagger and Martyrs of Patria available, which doesn't seem right. In a recent game there was a Crusader available as well; religion-specific units being available for hire doesn't seem quite right, either.
fixed next commit

Also, the option for doubled events is, over 2 separate games, just repeating the same event on back-to-back turns. So, in this case, turn n, barbarian hordes; turn n+1, barbarian hordes. EDIT: Actually, this event has triggered 5 or 6 times in the first 60 turns of the game.
Also, am finally on SVN and looking to contribute. What is the process, for example, for providing new/edited pedia and/or mouseover text?
use this thread for new pedia : https://forums.civfanatics.com/threads/ashes-of-erebus-civilopedia-update-project.608283/
for anything else, send it to me by pm.
Hmm. Same game. My muskrat just wandered into contact with the Bannor, first AI I've encountered. This happened:

View attachment 476426

Note the lack of options beneath the image. Hitting ESC cleared the screen.
any python exception to go with that ? i've been hunting that one for a while now.

What are the changes between commit 299 and 300, is there a user-friendly log somewhere on that? Or is it only low level technicalities? More importantly, are the changes save-compatible?
just small fixes to various bug reports i've had in the past week, completely save-compatible, along with some try for the performance issue.

About the Scions, remarks: their plot bonus is on ruins, I believe it would be more thematic to have it on Ancient Ruins. They search remnants of old Patria after all. (1 mn change)
Hmm i'll add ancient ruins but keep ruins. Ancient ruins only pop up with a specific option right now.

Also, if Korinna can have a female voice, that would be better, but this is only cosmetic. For now this is a male voice speaking in latin.
i'll see if i can find a female sample that works
The Velites and Cetratus moving at only 1 is very crippling. That would be better to keep them at 2 but with something that prevent them from acquiring further Mobility I/II changes. This would still convey they are heavier scouts than the norm, without the crippling aspect impacted on early game where they can't basically explore as scouts do. If they need a +5 (Velite) / +15 (Cetratus) cost to balance, that's fine for me.
will think on it
On workers, I believe something can be improved on their promotions. Basically you have skilled, that gives extra work rate, and hardy that gives retreat chance. The latter is not good, because it still don't prevent a group of workers to be all captured at once if you lose. What would be much better is if hardy gave a +1 defense. This way when you lose a worker in a group, you lose only one!
Done like that hardy pioneers are really hardy, they can work your border or even in hostile lands, and you know that on a group, you'll only lose the top one.
i'm pretty sure it was that way at some point but was causing some kind of issue, which is why it was changed. i'll do some tests.

That said, I have a major performance issue now that I'm in the current version, compared to the (very old) stable version. More than 5 mn to process a turn (mostly from barbarians it seems, and I'm not in raging barbarian mode) at turn 50 versus 15 seconds in stable version in the early game and 3 mn at turn 200!!

So I have no doubts there has been many improvements, but there is at least one and possibly several algorithms that are not optimized at all or are called many a time a turn. As I'm also a developer, I'll suggest some tracks:

a) python algorithms, as they are much slower that the code in the DLL
b) pathfinding called just too many time at some point
c) non cached calculations, i.e you iterate on the whole map (or even part of it) each time doing recalculations

there are many possible culprits, but now the game is almost not playable for me, except on a standard or smaller map Forget huge. I played a 300% huge map in the old stable version with the time I indicated!

Sorry for the remarks, you are doing an awesome job Black Imperator, but probably you'll need to do something that is not very pleasant compared to coding gameplay: to profile and evaluate your bottlenecks and see if these functions are not called too many a time or are not cached.

About caching, on a certain set of data, you can do a 'on demand' calculation, then cache the result until the next invalidation (at least once per turn), that's the best technique
Someone reported something similar last week and i've been working on looking for a cause. My first instincts are that it's less a calculation issue than a data access/writing issue as i've seen no performance issue on my computer which is using SSDs. rev 300 should limit those as i've deactivated most of the heavy log files i had added.
If there's no improvement, i'll do more profiling.
(Note that the svn version should have less python than the standard one, since i moved some of those mechanic to DLL).

For the next dev diary, we have a three-way tie between Religions, Alignments and Units, we're gonna need a tie breaking vote ^^

List of the themes you can vote on, along with former dev diaries are here : https://docs.google.com/document/d/14P90zYvnsodp-PLfRDmAehvX--nuhGV6yhKZMUxy9NI/edit#
 
A couple of other observations:

1) The Svartalfar have "Dark Elven" as their Racial Promotion, which seems to have the same effect as "Elven." Also, I didn't see a Civilopedia entry for Dark Elven under "Promotions." Once an entry is added, it probably should be tagged in some way so that it appears under "Races" when you filter Promotions that way.

The only thing that separates Elven and Dark Elven is that they have Ljosalfar and Svartalfar art styles for their units respectively. Mechanically, they are, as you noticed, identical.

________________________________

Speaking of performance issues, the combat odds calculations for two units who both have a non-zero amount of first strike chances seem to be very costly, and they are constantly redone as you're right click/Alt hovering over the enemy unit, causing a considerable amount of lag.

Also, the civilopedia takes a lot of time to load.
 
The only thing that separates Elven and Dark Elven is that they have Ljosalfar and Svartalfar art styles for their units respectively. Mechanically, they are, as you noticed, identical.

________________________________

Speaking of performance issues, the combat odds calculations for two units who both have a non-zero amount of first strike chances seem to be very costly, and they are constantly redone as you're right click/Alt hovering over the enemy unit, causing a considerable amount of lag.

Also, the civilopedia takes a lot of time to load.
i'll take a look at the odds calculation. Not sure how much i can do about the pedia though. is it the case in release version too or just the svn ?

I have a plagued Hill Giant who has a healing potion, but he cannot "cast" it. Is that by design?
hmm no i'll fix that.
 
The only thing that separates Elven and Dark Elven is that they have Ljosalfar and Svartalfar art styles for their units respectively. Mechanically, they are, as you noticed, identical.


Yeah, I did realize that. It's just that when I saw that the Svartalfar had a new Racial Promotion of Dark Elven, I thought it might provide different abilities from Elven, not just a different art style, to further differentiate them from the Ljosalfar.
 
Hi again,

Regrettably after having switched to commit 300, there was no significant change in speed. Still around 4 mn for a turn. There can also be up to one minute before an attack of a unit from the savage faction and a unit from the demonic faction, meaning the time to process one of these faction is at least on mn!
 
Back
Top Bottom