Notes on rev 5670

Describe your experience with the latest version of FreeOrion to help us improve it.

Moderator: Oberlus

Forum rules
Always mention the exact version of FreeOrion you are testing.

When reporting an issue regarding the AI, if possible provide the relevant AI log file and a save game file that demonstrates the issue.
Message
Author
yandonman
Creative Contributor
Posts: 699
Joined: Thu Aug 30, 2012 12:32 am

Notes on rev 5670

#1 Post by yandonman »

Notes on rev 5670
  • Like the tool tips for all top-icons.
  • Like the Detection Strength (though that's been in there for two builds)
  • Complete description of Gysache on mouse-over for species selection seems a bit much
  • Turn lag noticeable around turn 100+
  • Max AI Aggression set to "Maniacal" means that AIs will get an aggression randomly up to Maniacal, correct?
  • Ship it already!
Code released under GPL 2.0. Content released under GPL 2.0 and Creative Commons Attribution-ShareAlike 3.0.

User avatar
Dilvish
AI Lead and Programmer Emeritus
Posts: 4768
Joined: Sat Sep 22, 2012 6:25 pm

Re: Notes on rev 5670

#2 Post by Dilvish »

yandonman wrote:
  • Max AI Aggression set to "Maniacal" means that AIs will get an aggression randomly up to Maniacal, correct?
yes, though right now it's pretty heavily center-weighted. I considered adding a min aggression setting as well, but it doesn't really seem needed currently. My goal was that the Aggressive AI wouild actually probably be the toughest to beat in the long run; the Maniacal AI might do a couple things more effectively but would ultimately be too much of a risk taker. It's not at all clear to me whether I've succeeded; by my charting it very often seems that a Cautious or Moderate AI is the leader, and before I nerfed them a week ago sometimes even a Turtle could be the leader. There is at least a definite difference in difficulty from Beginner to Turtle, and from Turtle to the rest. If the rest all wind about about the same difficulty but can be distinguished at least a bit by playstyle, I guess I'll be content with that (for a while at least)

Code: Select all

                //            % Distributions (read row-wise)
                // Aggression   :  0   1    2    3    4   5   (0=Beginner, 5=Maniacal)
                //                     __  __  __  __  __  __
                //Max 0         :100    0    0    0   0   0
                //Max 1         : 25   75    0    0   0   0
                //Max 2         : 11   56   33    0   0   0
                //Max 3         :  6   31   44   19   0   0
                //Max 4         :  4   20   36   28   2   0
                //Max 5         :  3   14   25   31  19   8
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0

User avatar
Sloth
Content Scripter
Posts: 685
Joined: Sat Mar 17, 2007 12:28 am

Re: Notes on rev 5670

#3 Post by Sloth »

yandonman wrote: Complete description of Gysache on mouse-over for species selection seems a bit much
Yes, currently the Gysache have the longest description of all playable species. If there is consent that it's too long, i can shorten it a bit and use it as threshold for the upcoming write-ups.
All released under the GNU GPL 2.0 and Creative Commons Attribution-ShareAlike 3.0 licences.

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 12818
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: Notes on rev 5670

#4 Post by Geoff the Medio »

yandonman wrote:Ship it already!
Not until eleazar / Bigjoe5 are done dealing with submitted content patches, and at least one release candidate build has been out for 3+ days.

Zireael
Space Dragon
Posts: 429
Joined: Mon Aug 15, 2011 5:33 pm

Re: Notes on rev 5670

#5 Post by Zireael »

1) Some species (Cray, Eaxaw, Etty, George, Laenfa, Trith) are lacking descriptions.
2) Some tech descriptions are messy (eg. Xenological Genetics, Xenological Hybridization)
3) Does the Research cost reduction for Telepathic species work?

User avatar
Dilvish
AI Lead and Programmer Emeritus
Posts: 4768
Joined: Sat Sep 22, 2012 6:25 pm

Re: Notes on rev 5670

#6 Post by Dilvish »

Zireael wrote:3) Does the Research cost reduction for Telepathic species work?
Yes it does, & as soon as I capture a planet with a telepathic species I fast-track Psionics and Distributed Computing
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0

User avatar
qsswin
Pupating Mass
Posts: 93
Joined: Tue Oct 18, 2011 6:48 pm
Location: UTC-5

Re: Notes on rev 5670

#7 Post by qsswin »

Zireael wrote:1) Some species (Cray, Eaxaw, Etty, George, Laenfa, Trith) are lacking descriptions.

2) Some tech descriptions are messy (eg. Xenological Genetics, Xenological Hybridization)
1. I believe Sloth has submitted patches for George and Trith, and will probably make some for other species.

2. Yes, the fact that it says "hostile poor" in both is quite confusing. I imagine there isn't really a good way to display all the effects of those techs, since have so many possibilities.

unjashfan
Creative Contributor
Posts: 175
Joined: Fri Dec 30, 2011 8:08 am

Re: Notes on rev 5670

#8 Post by unjashfan »

I think the more aggressive AIs colonize hostile planets too much. It tends to screw them over more than it helps them. Maybe it even slows them down since they're wasting a lot of colony ships just to end up with outposts. Perhaps change them so that they spam outposts instead?

With the new population mechanics, the Trith can colonize poor planets straight off the bat!! Definitely an easy species to play as, and also feels like it's borderline OP with the great detection range and raw stats.
Yes, the fact that it says "hostile poor" in both is quite confusing.
Agreed. Changing "hostile poor" back to "hostile" should clear up some of the confusion.

User avatar
Sloth
Content Scripter
Posts: 685
Joined: Sat Mar 17, 2007 12:28 am

Re: Notes on rev 5670

#9 Post by Sloth »

unjashfan wrote:With the new population mechanics, the Trith can colonize poor planets straight off the bat!!
I can confirm this.The script is set up to prevent that though:

Code: Select all

SELF_SUSTAINING_BONUS
'''     EffectsGroup
            scope = Source
            activation = And [
                Planet
                HasTag "SELF_SUSTAINING"
                TargetPopulation low = 0 high = 9999
            ]
            accountinglabel = "SELF_SUSTAINING_LABEL"
            effects = SetTargetPopulation Value + 3 * Target.SizeAsDouble    // Gets double the base population
'''
But the "TargetPopulation low = 0 high = 9999" restriction doesn't seem to work right.

I've tested setting it to "TargetPopulation low = 4 high = 9999" and the bonus is not applied on Poor planets.
Setting it to "TargetPopulation low = 1 high = 9999" and the bonus is applied on Poor planets (Their target population is 3).
So it looks like the effect counts its own bonus when checking the restriction. :?:
All released under the GNU GPL 2.0 and Creative Commons Attribution-ShareAlike 3.0 licences.

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 12818
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: Notes on rev 5670

#10 Post by Geoff the Medio »

Meter conditions test the initial value of a meter, which is the value it had at the start of a turn, which is likely the value it had on the previous turn (or after initial meter value setting). So yes, an effects group that tests a meter and sets it would "count" its own contribution to the meter on the previous turn.

If you want to test for poor planets, than use that condition, not an unstable test on target meter values for a condition that sets the same meter.

User avatar
Sloth
Content Scripter
Posts: 685
Joined: Sat Mar 17, 2007 12:28 am

Re: Notes on rev 5670

#11 Post by Sloth »

Geoff the Medio wrote:Meter conditions test the initial value of a meter, which is the value it had at the start of a turn, which is likely the value it had on the previous turn (or after initial meter value setting). So yes, an effects group that tests a meter and sets it would "count" its own contribution to the meter on the previous turn.
That's what i suspected. What does the initial meter setting do with the restriction "TargetPopulation low = 0 high = 9999"?
Geoff the Medio wrote: If you want to test for poor planets, than use that condition, not an unstable test on target meter values for a condition that sets the same meter.
That condition should make sure that the bonus is only given if the planet is habitable (which could be any planet after the right tech has been researched).
All released under the GNU GPL 2.0 and Creative Commons Attribution-ShareAlike 3.0 licences.

User avatar
Dilvish
AI Lead and Programmer Emeritus
Posts: 4768
Joined: Sat Sep 22, 2012 6:25 pm

Re: Notes on rev 5670

#12 Post by Dilvish »

The problem with the Trith script is not so much that population test, it's that the comment in it explaining itself is misleading and I think led to an incomplete script. The boost it gives claims that it

Code: Select all

// Gets double the base population
whereas in fact it gives an extra allotment of base Good Environment population. Doing it correctly will be a little tricky especially since (it's my understanding) we do NOT want them to get double the homeworld bonus. But, I think I know how to do it, I'm going to give it a spin now.
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 12818
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: Notes on rev 5670

#13 Post by Geoff the Medio »

Sloth wrote:What does the initial meter setting do with the restriction "TargetPopulation low = 0 high = 9999"?
I don't understand the question.
That condition should make sure that the bonus is only given if the planet is habitable...
There's no good way to do that, assuming "habitable" means target population > 0. There's no way to check in a condition "what would the meter value be if this effect isn't applied"; all that can be tested is what the meter's value was on the previous turn. There could also often be another affect applied after the current one that changes what the meter's value would be.

Also, be aware that things are also a bit different for persistent and non-persistent meters... Target meter values are non-persistent, and have their values recalculated from 0 each turn (which does not mean their initial value is 0), while other meters like industry have their value retained between turns, and are modified relative to their initial value by effects.

User avatar
Dilvish
AI Lead and Programmer Emeritus
Posts: 4768
Joined: Sat Sep 22, 2012 6:25 pm

Re: Notes on rev 5670

#14 Post by Dilvish »

ok, my adjustment to Self Sustaining seems to work out, at least the way I was expecting it to. I'm going to be pretty busy the rest of the day & I'm pretty sure that everyone would at least consider the changed version an improvement over them being able to colonize Poor planets from the get-go, so I'm going to go ahead and commit it so you guys and try it out and adjust it further if need be.
Here's the revised version:

Code: Select all

// This is dependent on current placement in population effects calc, just after Homeworld and Environment
SELF_SUSTAINING_BONUS
'''     EffectsGroup
            scope = AND [
                Source
                NOT Homeworld name = Source.Species
            ]
            activation = And [
                Planet
                HasTag "SELF_SUSTAINING"
                TargetPopulation low = 0 high = 9999
            ]
            accountinglabel = "SELF_SUSTAINING_LABEL"
            effects = SetTargetPopulation Value * 2    // Gets double the population based on environment and environment techs
        EffectsGroup
            scope = AND [
                Source
                Homeworld name = Source.Species
            ]
            activation = And [
                Planet
                HasTag "SELF_SUSTAINING"
                TargetPopulation low = 0 high = 9999
            ]
            accountinglabel = "SELF_SUSTAINING_LABEL"
            effects = SetTargetPopulation Value * 2 - (2 * Target.SizeAsDouble)    // prevents doubled homeworld bonus
'''
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0

User avatar
Sloth
Content Scripter
Posts: 685
Joined: Sat Mar 17, 2007 12:28 am

Re: Notes on rev 5670

#15 Post by Sloth »

Dilvish wrote:ok, my adjustment to Self Sustaining seems to work out, at least the way I was expecting it to. I'm going to be pretty busy the rest of the day & I'm pretty sure that everyone would at least consider the changed version an improvement over them being able to colonize Poor planets from the get-go, so I'm going to go ahead and commit it so you guys and try it out and adjust it further if need be.
Why didn't you move the homeworld bonus to be applied after the self-sustaining bonus here:

Code: Select all

AVERAGE_POPULATION
'''
        [[ENVIRONMENT_MODIFIER]]
        [[SELF_SUSTAINING_BONUS]]
        [[HOMEWORLD_BONUS_POPULATION]]
        [[PHOTOTROPHIC_BONUS]]
        [[HOMEWORLD_GROWTH_FOCUS_BOOST]]
        [[GAIA_POP_MODIFIER]]
        [[TUNNELS_MODIFIER]]
        [[POPULATION_TECHS]]
that way the self-sustaining macro would be much simpler:

Code: Select all

SELF_SUSTAINING_BONUS
'''     EffectsGroup
            scope = Source
            activation = And [
                Planet
                HasTag "SELF_SUSTAINING"
                TargetPopulation low = 0 high = 9999
            ]
            accountinglabel = "SELF_SUSTAINING_LABEL"
            effects = SetTargetPopulation Value * 2    // Gets double the population based on environment and environment techs
'''
All released under the GNU GPL 2.0 and Creative Commons Attribution-ShareAlike 3.0 licences.

Post Reply