Success: remaking the Trade AI
Moderator: puresimmer
-
- Posts: 1186
- Joined: Sat Aug 31, 2002 9:08 pm
Success: remaking the Trade AI
OK, so I have had some success altering the way the AI values players and/or contracts. Tweaked a bunch of parameters and will keep at it this weekend, honing it down. Let me give you my data for perusal.
Team: 1966 Baltimore Orioles
With the original xml file values, after spring training and initial player evaluations, all teams viewed the desirability of the 1966 Orioles players in descending order as such:
1) Moe Drabowsky (31 year old / RP)
2) Stu Miller (39/RP)
3) Dick Hall (36/RP)
4) Eddie Watt (25/RP)
5) Jim Palmer (21/duhhhh)
6) Dave McNally (24, SP)
7) Bill Short (29/RP)
8) Steve Barber (28/SP)
9) Boog Powell (25/1B)
10) Wally Bunker (21/SP)
All of the relievers are studs, all of the starters are above average to great (Palmer). But the reliever thing is ridiculous. Where is Frank F'n Robinson, he of the Triple CROWN?!? And what about Brooks?
So some initial tinkering with the xml then resulted in a priority list of:
1) Jim Palmer
2) Frank Robinson
3) Eddie Watt
4) Dave McNally
5) Boog Powell
6) Moe Drabowsky (btw, Mr Moe is 10/9/8 ratings)
7) Stu Miller
8) Wally Bunker
9) Steve Barber
10) Dick Hall
Much better, at least towards the top. Relievers are brought down some. So more tinkering.
Palmer
McNally
Powell
F. Robinson
Watt
Bunker
Barber
Drabowsky
Blair
Short
Miller
Now starters are more valued. Hitting dropped a bit since I fiddled with some values.
This shows that things can be worked around, at least for the ratings. Now the contract valuing, which I've altered, will only show up later as the season progresses and various team needs change (pennant drive, dump, etc). All the above are evaluations done after spring training, so it is initial evaluation only.
Sooooooooooo..... I am going to continue to work over the weekend on things to bring them a bit closer towards a desirable priority list evaluation from the AI. I'll post up when I get some better results.
Team: 1966 Baltimore Orioles
With the original xml file values, after spring training and initial player evaluations, all teams viewed the desirability of the 1966 Orioles players in descending order as such:
1) Moe Drabowsky (31 year old / RP)
2) Stu Miller (39/RP)
3) Dick Hall (36/RP)
4) Eddie Watt (25/RP)
5) Jim Palmer (21/duhhhh)
6) Dave McNally (24, SP)
7) Bill Short (29/RP)
8) Steve Barber (28/SP)
9) Boog Powell (25/1B)
10) Wally Bunker (21/SP)
All of the relievers are studs, all of the starters are above average to great (Palmer). But the reliever thing is ridiculous. Where is Frank F'n Robinson, he of the Triple CROWN?!? And what about Brooks?
So some initial tinkering with the xml then resulted in a priority list of:
1) Jim Palmer
2) Frank Robinson
3) Eddie Watt
4) Dave McNally
5) Boog Powell
6) Moe Drabowsky (btw, Mr Moe is 10/9/8 ratings)
7) Stu Miller
8) Wally Bunker
9) Steve Barber
10) Dick Hall
Much better, at least towards the top. Relievers are brought down some. So more tinkering.
Palmer
McNally
Powell
F. Robinson
Watt
Bunker
Barber
Drabowsky
Blair
Short
Miller
Now starters are more valued. Hitting dropped a bit since I fiddled with some values.
This shows that things can be worked around, at least for the ratings. Now the contract valuing, which I've altered, will only show up later as the season progresses and various team needs change (pennant drive, dump, etc). All the above are evaluations done after spring training, so it is initial evaluation only.
Sooooooooooo..... I am going to continue to work over the weekend on things to bring them a bit closer towards a desirable priority list evaluation from the AI. I'll post up when I get some better results.
RE: Success: remaking the Trade AI
Sounds great. Can you give us some tips if we want to experiment ourselves? What section are you focused on?
RE: Success: remaking the Trade AI
Especially glad to see the value of 39 and 36 year old relievers go down.
- Claymore Cut
- Posts: 270
- Joined: Tue May 16, 2006 9:48 am
RE: Success: remaking the Trade AI
Cool stuff! I'll be looking foward to your final results.
-
- Posts: 1186
- Joined: Sat Aug 31, 2002 9:08 pm
RE: Success: remaking the Trade AI
I've had a lot of success with the changes. I sent off a PM to Shaun to discuss some of the issues and am awaiting hearing back from him on it. That way I can know what to do with it.
-
- Posts: 1186
- Joined: Sat Aug 31, 2002 9:08 pm
RE: Success: remaking the Trade AI
Well, I haven't heard anything from Shaun. So I guess I can make this available for people to use since I have no clue what parameters might change/be included in the future. It is at least an improvement, best as I can tell. And I'll continue to work on it.
So how shall I do this?
1) Alter the default XML only and make it available via someone's site?
2) Post the XML changes so those who are tweakers can use them?
So how shall I do this?
1) Alter the default XML only and make it available via someone's site?
2) Post the XML changes so those who are tweakers can use them?
RE: Success: remaking the Trade AI
Put it on a site for download. I have been looking forward to you releasing it.
RE: Success: remaking the Trade AI
both--- with the big qualification for people not to come crying to you if they screw something up ----
-
- Posts: 1186
- Joined: Sat Aug 31, 2002 9:08 pm
RE: Success: remaking the Trade AI
OK, I'll do both. I need someone who is willing to host the file for me. Just a simple xml file of a few hundred Kb. Lemme know....
Second, those of you who want to alter your own files, I assume you know how to do this without blowing up Tahiti. If not, then research how to alter the xml file. I just explained steps for that in another thread earlier today.
So the next two posts (by me) will contain the data. First I'll give you the trade evaluation parameters only. Then in the next posts I'll give you both my trade and talent evaluation data together. You may want to use only the trade evaluation data (first post) if you want to keep all the other aspects as default or your own altered values. Or try it all with the second post. Regardless, the first (next) post is the essential meat. I'm still working with some of the talent evaluation lines (different from trade evaluation stuff).
Caveat #1: don't come to me if you're having xml problems
Caveat #2: you give me some feedback so I can keep adjusting things (post it in this thread)
Caveat #3: you bug Shaun to include Potential in the trade analysis parameters --> IN_SEASON_EVAL_WT
Final Caveat: understand the following about the program and trading:
[align=center]The program will not do multi-player trading on its own; thus, the program must find a player on each team that falls within the same value range. Very hard to find, and thus uninspiring trading, sometimes insane trading. That will pretty much always be the case, IMO, but perhaps we can slim it down some. At the least, we want to help the AI protect itself versus a human exploiter. For me, this is one of the main purposes of this project.
[/align]
And hopefully Shaun's recent tweak keeps the AI in historical leagues from trying to accumulate too many relievers. This could be huge, but I haven't played with v1.19 successfully. If it works well, I may need to alter the parameters further.
Remember, feedback is essential. Oh, and Glenn - salary is nowhere that big an issue in the trading parameters. IOW, salary isn't what is making things about trading so screwy.
Second, those of you who want to alter your own files, I assume you know how to do this without blowing up Tahiti. If not, then research how to alter the xml file. I just explained steps for that in another thread earlier today.
So the next two posts (by me) will contain the data. First I'll give you the trade evaluation parameters only. Then in the next posts I'll give you both my trade and talent evaluation data together. You may want to use only the trade evaluation data (first post) if you want to keep all the other aspects as default or your own altered values. Or try it all with the second post. Regardless, the first (next) post is the essential meat. I'm still working with some of the talent evaluation lines (different from trade evaluation stuff).
Caveat #1: don't come to me if you're having xml problems
Caveat #2: you give me some feedback so I can keep adjusting things (post it in this thread)
Caveat #3: you bug Shaun to include Potential in the trade analysis parameters --> IN_SEASON_EVAL_WT
Final Caveat: understand the following about the program and trading:
[align=center]The program will not do multi-player trading on its own; thus, the program must find a player on each team that falls within the same value range. Very hard to find, and thus uninspiring trading, sometimes insane trading. That will pretty much always be the case, IMO, but perhaps we can slim it down some. At the least, we want to help the AI protect itself versus a human exploiter. For me, this is one of the main purposes of this project.
[/align]
And hopefully Shaun's recent tweak keeps the AI in historical leagues from trying to accumulate too many relievers. This could be huge, but I haven't played with v1.19 successfully. If it works well, I may need to alter the parameters further.
Remember, feedback is essential. Oh, and Glenn - salary is nowhere that big an issue in the trading parameters. IOW, salary isn't what is making things about trading so screwy.
- PadresFan104
- Posts: 1147
- Joined: Mon Aug 08, 2005 3:29 am
- Contact:
RE: Success: remaking the Trade AI
Like you even have to ask!!!! I'll post it on my site tonight in the "Odds and Ends" section... I'll copy your post above as the description.
PadresFan's Text Sim Mod Website: http://www.padresfanmods.net
Follow Me On Twitter: http://twitter.com/padresfanmods
Follow Me On Twitter: http://twitter.com/padresfanmods
-
- Posts: 1186
- Joined: Sat Aug 31, 2002 9:08 pm
RE: Success: remaking the Trade AI
Trade Evaluation Parameters ONLY
<!--
In-season evaluation
When dynamically updating player evaluations in season, we first consider what "state" the team's
GM is in. The following states are possible:
gmsNotLooking = 1
gmsGetBetter1 = 2 (minor changes)
gmsGetBetter2 = 3 (aggressive)
gmsGetYounger = 4
gmsPennantDrive = 5
gmsDumpSalary = 6
The values above are used to lookup into this table, to detrmine which node to get weightings from
-->
<!-- gmsNotLooking -->
<EVAL_GM_STATE_LOOKUP RangeMin="1" RangeMax="1">IN_SEASON_EVAL_WT_1</EVAL_GM_STATE_LOOKUP>
<!-- gmsGetBetter1 -->
<EVAL_GM_STATE_LOOKUP RangeMin="2" RangeMax="2">IN_SEASON_EVAL_WT_2</EVAL_GM_STATE_LOOKUP>
<!-- gmsGetBetter2 -->
<EVAL_GM_STATE_LOOKUP RangeMin="3" RangeMax="3">IN_SEASON_EVAL_WT_3</EVAL_GM_STATE_LOOKUP>
<!-- gmsGetYounger -->
<EVAL_GM_STATE_LOOKUP RangeMin="4" RangeMax="4">IN_SEASON_EVAL_WT_4</EVAL_GM_STATE_LOOKUP>
<!-- gmsPennantDrive -->
<EVAL_GM_STATE_LOOKUP RangeMin="5" RangeMax="5">IN_SEASON_EVAL_WT_5</EVAL_GM_STATE_LOOKUP>
<!-- gmsDumpSalary -->
<EVAL_GM_STATE_LOOKUP RangeMin="6" RangeMax="6">IN_SEASON_EVAL_WT_6</EVAL_GM_STATE_LOOKUP>
<IN_SEASON_EVAL_WT_1 Contact="6" Power="7" YouthHitter="1" Speed="0" Arm="0" Range="0" Hands="0" Salary="2.5" Stuff="6" Control="3" Youth="1" Endurance="2"/>
<IN_SEASON_EVAL_WT_2 Contact="6" Power="7" YouthHitter="2" Speed="0" Arm="0" Range="0" Hands="0" Salary="2" Stuff="6" Control="3" Youth="2" Endurance="2"/>
<IN_SEASON_EVAL_WT_3 Contact="6" Power="7" YouthHitter="3" Speed="0" Arm="0" Range="0" Hands="0" Salary="1" Stuff="6" Control="3" Youth="3" Endurance="2"/>
<IN_SEASON_EVAL_WT_4 Contact="5" Power="6" YouthHitter="5" Speed="0" Arm="0" Range="0" Hands="0" Salary=".5" Stuff="5" Control="1" Youth="5" Endurance="3"/>
<IN_SEASON_EVAL_WT_5 Contact="6" Power="8" YouthHitter="0" Speed="0" Arm="0" Range="0" Hands="0" Salary=".5" Stuff="7" Control="3" Youth="0" Endurance="3"/>
<IN_SEASON_EVAL_WT_6 Contact="3" Power="3" YouthHitter="2" Speed="0" Arm="0" Range="0" Hands="0" Salary="-1" Stuff="3" Control="1" Youth="2" Endurance="2"/>
<!--
In-season evaluation
When dynamically updating player evaluations in season, we first consider what "state" the team's
GM is in. The following states are possible:
gmsNotLooking = 1
gmsGetBetter1 = 2 (minor changes)
gmsGetBetter2 = 3 (aggressive)
gmsGetYounger = 4
gmsPennantDrive = 5
gmsDumpSalary = 6
The values above are used to lookup into this table, to detrmine which node to get weightings from
-->
<!-- gmsNotLooking -->
<EVAL_GM_STATE_LOOKUP RangeMin="1" RangeMax="1">IN_SEASON_EVAL_WT_1</EVAL_GM_STATE_LOOKUP>
<!-- gmsGetBetter1 -->
<EVAL_GM_STATE_LOOKUP RangeMin="2" RangeMax="2">IN_SEASON_EVAL_WT_2</EVAL_GM_STATE_LOOKUP>
<!-- gmsGetBetter2 -->
<EVAL_GM_STATE_LOOKUP RangeMin="3" RangeMax="3">IN_SEASON_EVAL_WT_3</EVAL_GM_STATE_LOOKUP>
<!-- gmsGetYounger -->
<EVAL_GM_STATE_LOOKUP RangeMin="4" RangeMax="4">IN_SEASON_EVAL_WT_4</EVAL_GM_STATE_LOOKUP>
<!-- gmsPennantDrive -->
<EVAL_GM_STATE_LOOKUP RangeMin="5" RangeMax="5">IN_SEASON_EVAL_WT_5</EVAL_GM_STATE_LOOKUP>
<!-- gmsDumpSalary -->
<EVAL_GM_STATE_LOOKUP RangeMin="6" RangeMax="6">IN_SEASON_EVAL_WT_6</EVAL_GM_STATE_LOOKUP>
<IN_SEASON_EVAL_WT_1 Contact="6" Power="7" YouthHitter="1" Speed="0" Arm="0" Range="0" Hands="0" Salary="2.5" Stuff="6" Control="3" Youth="1" Endurance="2"/>
<IN_SEASON_EVAL_WT_2 Contact="6" Power="7" YouthHitter="2" Speed="0" Arm="0" Range="0" Hands="0" Salary="2" Stuff="6" Control="3" Youth="2" Endurance="2"/>
<IN_SEASON_EVAL_WT_3 Contact="6" Power="7" YouthHitter="3" Speed="0" Arm="0" Range="0" Hands="0" Salary="1" Stuff="6" Control="3" Youth="3" Endurance="2"/>
<IN_SEASON_EVAL_WT_4 Contact="5" Power="6" YouthHitter="5" Speed="0" Arm="0" Range="0" Hands="0" Salary=".5" Stuff="5" Control="1" Youth="5" Endurance="3"/>
<IN_SEASON_EVAL_WT_5 Contact="6" Power="8" YouthHitter="0" Speed="0" Arm="0" Range="0" Hands="0" Salary=".5" Stuff="7" Control="3" Youth="0" Endurance="3"/>
<IN_SEASON_EVAL_WT_6 Contact="3" Power="3" YouthHitter="2" Speed="0" Arm="0" Range="0" Hands="0" Salary="-1" Stuff="3" Control="1" Youth="2" Endurance="2"/>
-
- Posts: 1186
- Joined: Sat Aug 31, 2002 9:08 pm
RE: Success: remaking the Trade AI
Trade and Talent Evaluation Parameters together
<!--
New in 1.31
Periodically during the season, teams will evaluate talent (in other words, GMs are
adjusting their opinion of certain players based on in-season performance as well as the
strengths and weaknesses of the team. This section allows the frequency of this evaluation
to be tweaked.
The RangeMin an max below represent the normalized number of games played by the team. By "normalized" I
mean scaled to a 162 game season regardless of how long the specific assn's schedule is. The value is
the base pct chance that talent will be evaluated.
-->
<!-- ORIGINAL
<TALENT_EVAL_FREQUENCY RangeMin="1" RangeMax="20">0</TALENT_EVAL_FREQUENCY>
<TALENT_EVAL_FREQUENCY RangeMin="21" RangeMax="40">3</TALENT_EVAL_FREQUENCY>
<TALENT_EVAL_FREQUENCY RangeMin="41" RangeMax="70">5</TALENT_EVAL_FREQUENCY>
<TALENT_EVAL_FREQUENCY RangeMin="71" RangeMax="120">8</TALENT_EVAL_FREQUENCY>
<TALENT_EVAL_FREQUENCY RangeMin="121" RangeMax="999">0</TALENT_EVAL_FREQUENCY>
-->
<TALENT_EVAL_FREQUENCY RangeMin="1" RangeMax="20">0</TALENT_EVAL_FREQUENCY>
<TALENT_EVAL_FREQUENCY RangeMin="21" RangeMax="40">3</TALENT_EVAL_FREQUENCY>
<TALENT_EVAL_FREQUENCY RangeMin="41" RangeMax="70">5</TALENT_EVAL_FREQUENCY>
<TALENT_EVAL_FREQUENCY RangeMin="71" RangeMax="120">8</TALENT_EVAL_FREQUENCY>
<TALENT_EVAL_FREQUENCY RangeMin="121" RangeMax="999">2</TALENT_EVAL_FREQUENCY>
<!--
New in 1.31
Based on how many days it has been since a team has evaluated talent increase or decrease
the chance that they will evaluate talent today. The value is a multiplier
applied to the value obtained from the lookup into the TALENT_EVAL_FREQUENCY table
-->
<TALENT_EVAL_BONUS RangeMin="1" RangeMax="7">.25</TALENT_EVAL_BONUS>
<TALENT_EVAL_BONUS RangeMin="8" RangeMax="14">.65</TALENT_EVAL_BONUS>
<TALENT_EVAL_BONUS RangeMin="15" RangeMax="21">.85</TALENT_EVAL_BONUS>
<TALENT_EVAL_BONUS RangeMin="22" RangeMax="30">1</TALENT_EVAL_BONUS>
<TALENT_EVAL_BONUS RangeMin="31" RangeMax="999">1.25</TALENT_EVAL_BONUS>
<!--
New in 1.31
Evaluation Consideration - When a GM is evaluating talent this table lets you tweak how much
he considers the base ratings he gave for a player vs. the player's in-season performance. For example,
a GM may have rated a give player as a 61 CONTACT, but if that player is hitting .350 after 80 games, we
want the GM to "dynamically" adjust his opinion of the player thus leading to better decsions when
building lineups, making player assignments etc...
The Range value below refers to what percent of the season has been completed. The result is 2 numbers,
ranging from 0-10 each. The first number is how much to consider the players in-season, accumulated stats,
the second number is how much to consider the player's ratings.
Note!!! The 2 values MUST add up to 10
Note 2: This number is also adjusted internally if a player has not appeared enough to
have a reasonable amount of accumulated stats.
-->
<!-- ORIGINAL PARAMETERS
<DYNAMIC_TALENT_EVAL_CONSIDER RangeMin="0" RangeMax="12">0/10</DYNAMIC_TALENT_EVAL_CONSIDER>
<DYNAMIC_TALENT_EVAL_CONSIDER RangeMin="13" RangeMax="24">4/6</DYNAMIC_TALENT_EVAL_CONSIDER>
<DYNAMIC_TALENT_EVAL_CONSIDER RangeMin="25" RangeMax="36">5/5</DYNAMIC_TALENT_EVAL_CONSIDER>
<DYNAMIC_TALENT_EVAL_CONSIDER RangeMin="37" RangeMax="48">6/4</DYNAMIC_TALENT_EVAL_CONSIDER>
<DYNAMIC_TALENT_EVAL_CONSIDER RangeMin="49" RangeMax="61">8/2</DYNAMIC_TALENT_EVAL_CONSIDER>
<DYNAMIC_TALENT_EVAL_CONSIDER RangeMin="62" RangeMax="999">10/0</DYNAMIC_TALENT_EVAL_CONSIDER>
-->
<!-- PHILS PARAMETERS -->
<DYNAMIC_TALENT_EVAL_CONSIDER RangeMin="0" RangeMax="12">0/10</DYNAMIC_TALENT_EVAL_CONSIDER>
<DYNAMIC_TALENT_EVAL_CONSIDER RangeMin="13" RangeMax="24">1/9</DYNAMIC_TALENT_EVAL_CONSIDER>
<DYNAMIC_TALENT_EVAL_CONSIDER RangeMin="25" RangeMax="40">2/8</DYNAMIC_TALENT_EVAL_CONSIDER>
<DYNAMIC_TALENT_EVAL_CONSIDER RangeMin="41" RangeMax="55">3/7</DYNAMIC_TALENT_EVAL_CONSIDER>
<DYNAMIC_TALENT_EVAL_CONSIDER RangeMin="56" RangeMax="70">4/6</DYNAMIC_TALENT_EVAL_CONSIDER>
<DYNAMIC_TALENT_EVAL_CONSIDER RangeMin="71" RangeMax="85">5/5</DYNAMIC_TALENT_EVAL_CONSIDER>
<DYNAMIC_TALENT_EVAL_CONSIDER RangeMin="86" RangeMax="100">6/4</DYNAMIC_TALENT_EVAL_CONSIDER>
<DYNAMIC_TALENT_EVAL_CONSIDER RangeMin="101" RangeMax="999">7/3</DYNAMIC_TALENT_EVAL_CONSIDER>
<!-- New in 1.31
In-season evaluation
When dynamically updating player evaluations in season, we first consider what "state" the team's
GM is in. The following states are possible:
gmsNotLooking = 1
gmsGetBetter1 = 2
gmsGetBetter2 = 3
gmsGetYounger = 4
gmsPennantDrive = 5
gmsDumpSalary = 6
The values above are used to lookup into this table, to detrmine which node to get weightings from
-->
<!-- gmsNotLooking -->
<EVAL_GM_STATE_LOOKUP RangeMin="1" RangeMax="1">IN_SEASON_EVAL_WT_1</EVAL_GM_STATE_LOOKUP>
<!-- gmsGetBetter1 -->
<EVAL_GM_STATE_LOOKUP RangeMin="2" RangeMax="2">IN_SEASON_EVAL_WT_2</EVAL_GM_STATE_LOOKUP>
<!-- gmsGetBetter2 -->
<EVAL_GM_STATE_LOOKUP RangeMin="3" RangeMax="3">IN_SEASON_EVAL_WT_3</EVAL_GM_STATE_LOOKUP>
<!-- gmsGetYounger -->
<EVAL_GM_STATE_LOOKUP RangeMin="4" RangeMax="4">IN_SEASON_EVAL_WT_4</EVAL_GM_STATE_LOOKUP>
<!-- gmsPennantDrive -->
<EVAL_GM_STATE_LOOKUP RangeMin="5" RangeMax="5">IN_SEASON_EVAL_WT_5</EVAL_GM_STATE_LOOKUP>
<!-- gmsDumpSalary -->
<EVAL_GM_STATE_LOOKUP RangeMin="6" RangeMax="6">IN_SEASON_EVAL_WT_6</EVAL_GM_STATE_LOOKUP>
<!-- ORIGINAL PARAMETERS
<IN_SEASON_EVAL_WT_1 Contact="5" Power="3" YouthHitter="0" Speed=".5" Arm=".33" Range=".33" Hands=".334" Salary="1" Stuff="6" Control="3" Youth="0" Endurance="0"/>
<IN_SEASON_EVAL_WT_2 Contact="5" Power="3" YouthHitter="4" Speed=".5" Arm=".33" Range=".33" Hands=".334" Salary="1" Stuff="6" Control="3" Youth="0" Endurance="0"/>
<IN_SEASON_EVAL_WT_3 Contact="4" Power="3" YouthHitter="6" Speed=".5" Arm=".33" Range=".33" Hands=".334" Salary="0" Stuff="4" Control="2" Youth="3" Endurance="0"/>
<IN_SEASON_EVAL_WT_4 Contact="5" Power="3" YouthHitter="0" Speed=".5" Arm=".33" Range=".33" Hands=".334" Salary="1" Stuff="7" Control="3" Youth="0" Endurance="0"/>
<IN_SEASON_EVAL_WT_5 Contact="1" Power="1" YouthHitter="10" Speed=".5" Arm=".33" Range=".33" Hands=".334" Salary="-.35" Stuff="1" Control="1" Youth="10" Endurance="0"/>
-->
<!-- PHILS PARAMETERS -->
<IN_SEASON_EVAL_WT_1 Contact="6" Power="7" YouthHitter="1" Speed="0" Arm="0" Range="0" Hands="0" Salary="2.5" Stuff="6" Control="3" Youth="1" Endurance="2"/>
<IN_SEASON_EVAL_WT_2 Contact="6" Power="7" YouthHitter="2" Speed="0" Arm="0" Range="0" Hands="0" Salary="2" Stuff="6" Control="3" Youth="2" Endurance="2"/>
<IN_SEASON_EVAL_WT_3 Contact="6" Power="7" YouthHitter="3" Speed="0" Arm="0" Range="0" Hands="0" Salary="1" Stuff="6" Control="3" Youth="3" Endurance="2"/>
<IN_SEASON_EVAL_WT_4 Contact="5" Power="6" YouthHitter="5" Speed="0" Arm="0" Range="0" Hands="0" Salary=".5" Stuff="5" Control="1" Youth="5" Endurance="3"/>
<IN_SEASON_EVAL_WT_5 Contact="6" Power="8" YouthHitter="0" Speed="0" Arm="0" Range="0" Hands="0" Salary=".5" Stuff="7" Control="3" Youth="0" Endurance="3"/>
<IN_SEASON_EVAL_WT_6 Contact="3" Power="3" YouthHitter="2" Speed="0" Arm="0" Range="0" Hands="0" Salary="-1" Stuff="3" Control="1" Youth="2" Endurance="2"/>
<!--
New in 1.31
End of season player evaluation.
At the end of the season, GMs will refine their talent evaluations based on
how a player actually performed in the recently completed season.
The values below can be tweaked in order to influence the relative weight that the AI
gives to certain player attributes when coming up with a composite evaluation of the player.
This is same as the in-season evaluation that the AI does, but is done by all teams at the end of the season
-->
<!-- ORIGINAL PARAMETERS
<END_OF_SEASON_WEIGHTS Contact="5" Power="3" YouthHitter="2" Speed=".5" Arm=".33" Range=".33" Hands=".334" Stuff="6" Control="3" Youth="1"/>
-->
<!-- PHILS PARAMETERS -->
<END_OF_SEASON_WEIGHTS Contact="6" Power="7" YouthHitter="2" Speed="0" Arm="0" Range="0" Hands="0" Stuff="8" Control="4" Youth="2"/>
<!--
Ratings Consideration
Similar to above, used to determine how much the AI will consider ratings
over actual performance when evaluating talent
-->
<TALENT_RATINGS_CONSIDERATION>.67</TALENT_RATINGS_CONSIDERATION>
<!-- Like above except influences how much actual simulated performance is considered in relation to ratings -->
<TALENT_DYNAMIC_CONSIDERATION>1</TALENT_DYNAMIC_CONSIDERATION>
<!--
New in 1.31
Periodically during the season, teams will evaluate talent (in other words, GMs are
adjusting their opinion of certain players based on in-season performance as well as the
strengths and weaknesses of the team. This section allows the frequency of this evaluation
to be tweaked.
The RangeMin an max below represent the normalized number of games played by the team. By "normalized" I
mean scaled to a 162 game season regardless of how long the specific assn's schedule is. The value is
the base pct chance that talent will be evaluated.
-->
<!-- ORIGINAL
<TALENT_EVAL_FREQUENCY RangeMin="1" RangeMax="20">0</TALENT_EVAL_FREQUENCY>
<TALENT_EVAL_FREQUENCY RangeMin="21" RangeMax="40">3</TALENT_EVAL_FREQUENCY>
<TALENT_EVAL_FREQUENCY RangeMin="41" RangeMax="70">5</TALENT_EVAL_FREQUENCY>
<TALENT_EVAL_FREQUENCY RangeMin="71" RangeMax="120">8</TALENT_EVAL_FREQUENCY>
<TALENT_EVAL_FREQUENCY RangeMin="121" RangeMax="999">0</TALENT_EVAL_FREQUENCY>
-->
<TALENT_EVAL_FREQUENCY RangeMin="1" RangeMax="20">0</TALENT_EVAL_FREQUENCY>
<TALENT_EVAL_FREQUENCY RangeMin="21" RangeMax="40">3</TALENT_EVAL_FREQUENCY>
<TALENT_EVAL_FREQUENCY RangeMin="41" RangeMax="70">5</TALENT_EVAL_FREQUENCY>
<TALENT_EVAL_FREQUENCY RangeMin="71" RangeMax="120">8</TALENT_EVAL_FREQUENCY>
<TALENT_EVAL_FREQUENCY RangeMin="121" RangeMax="999">2</TALENT_EVAL_FREQUENCY>
<!--
New in 1.31
Based on how many days it has been since a team has evaluated talent increase or decrease
the chance that they will evaluate talent today. The value is a multiplier
applied to the value obtained from the lookup into the TALENT_EVAL_FREQUENCY table
-->
<TALENT_EVAL_BONUS RangeMin="1" RangeMax="7">.25</TALENT_EVAL_BONUS>
<TALENT_EVAL_BONUS RangeMin="8" RangeMax="14">.65</TALENT_EVAL_BONUS>
<TALENT_EVAL_BONUS RangeMin="15" RangeMax="21">.85</TALENT_EVAL_BONUS>
<TALENT_EVAL_BONUS RangeMin="22" RangeMax="30">1</TALENT_EVAL_BONUS>
<TALENT_EVAL_BONUS RangeMin="31" RangeMax="999">1.25</TALENT_EVAL_BONUS>
<!--
New in 1.31
Evaluation Consideration - When a GM is evaluating talent this table lets you tweak how much
he considers the base ratings he gave for a player vs. the player's in-season performance. For example,
a GM may have rated a give player as a 61 CONTACT, but if that player is hitting .350 after 80 games, we
want the GM to "dynamically" adjust his opinion of the player thus leading to better decsions when
building lineups, making player assignments etc...
The Range value below refers to what percent of the season has been completed. The result is 2 numbers,
ranging from 0-10 each. The first number is how much to consider the players in-season, accumulated stats,
the second number is how much to consider the player's ratings.
Note!!! The 2 values MUST add up to 10
Note 2: This number is also adjusted internally if a player has not appeared enough to
have a reasonable amount of accumulated stats.
-->
<!-- ORIGINAL PARAMETERS
<DYNAMIC_TALENT_EVAL_CONSIDER RangeMin="0" RangeMax="12">0/10</DYNAMIC_TALENT_EVAL_CONSIDER>
<DYNAMIC_TALENT_EVAL_CONSIDER RangeMin="13" RangeMax="24">4/6</DYNAMIC_TALENT_EVAL_CONSIDER>
<DYNAMIC_TALENT_EVAL_CONSIDER RangeMin="25" RangeMax="36">5/5</DYNAMIC_TALENT_EVAL_CONSIDER>
<DYNAMIC_TALENT_EVAL_CONSIDER RangeMin="37" RangeMax="48">6/4</DYNAMIC_TALENT_EVAL_CONSIDER>
<DYNAMIC_TALENT_EVAL_CONSIDER RangeMin="49" RangeMax="61">8/2</DYNAMIC_TALENT_EVAL_CONSIDER>
<DYNAMIC_TALENT_EVAL_CONSIDER RangeMin="62" RangeMax="999">10/0</DYNAMIC_TALENT_EVAL_CONSIDER>
-->
<!-- PHILS PARAMETERS -->
<DYNAMIC_TALENT_EVAL_CONSIDER RangeMin="0" RangeMax="12">0/10</DYNAMIC_TALENT_EVAL_CONSIDER>
<DYNAMIC_TALENT_EVAL_CONSIDER RangeMin="13" RangeMax="24">1/9</DYNAMIC_TALENT_EVAL_CONSIDER>
<DYNAMIC_TALENT_EVAL_CONSIDER RangeMin="25" RangeMax="40">2/8</DYNAMIC_TALENT_EVAL_CONSIDER>
<DYNAMIC_TALENT_EVAL_CONSIDER RangeMin="41" RangeMax="55">3/7</DYNAMIC_TALENT_EVAL_CONSIDER>
<DYNAMIC_TALENT_EVAL_CONSIDER RangeMin="56" RangeMax="70">4/6</DYNAMIC_TALENT_EVAL_CONSIDER>
<DYNAMIC_TALENT_EVAL_CONSIDER RangeMin="71" RangeMax="85">5/5</DYNAMIC_TALENT_EVAL_CONSIDER>
<DYNAMIC_TALENT_EVAL_CONSIDER RangeMin="86" RangeMax="100">6/4</DYNAMIC_TALENT_EVAL_CONSIDER>
<DYNAMIC_TALENT_EVAL_CONSIDER RangeMin="101" RangeMax="999">7/3</DYNAMIC_TALENT_EVAL_CONSIDER>
<!-- New in 1.31
In-season evaluation
When dynamically updating player evaluations in season, we first consider what "state" the team's
GM is in. The following states are possible:
gmsNotLooking = 1
gmsGetBetter1 = 2
gmsGetBetter2 = 3
gmsGetYounger = 4
gmsPennantDrive = 5
gmsDumpSalary = 6
The values above are used to lookup into this table, to detrmine which node to get weightings from
-->
<!-- gmsNotLooking -->
<EVAL_GM_STATE_LOOKUP RangeMin="1" RangeMax="1">IN_SEASON_EVAL_WT_1</EVAL_GM_STATE_LOOKUP>
<!-- gmsGetBetter1 -->
<EVAL_GM_STATE_LOOKUP RangeMin="2" RangeMax="2">IN_SEASON_EVAL_WT_2</EVAL_GM_STATE_LOOKUP>
<!-- gmsGetBetter2 -->
<EVAL_GM_STATE_LOOKUP RangeMin="3" RangeMax="3">IN_SEASON_EVAL_WT_3</EVAL_GM_STATE_LOOKUP>
<!-- gmsGetYounger -->
<EVAL_GM_STATE_LOOKUP RangeMin="4" RangeMax="4">IN_SEASON_EVAL_WT_4</EVAL_GM_STATE_LOOKUP>
<!-- gmsPennantDrive -->
<EVAL_GM_STATE_LOOKUP RangeMin="5" RangeMax="5">IN_SEASON_EVAL_WT_5</EVAL_GM_STATE_LOOKUP>
<!-- gmsDumpSalary -->
<EVAL_GM_STATE_LOOKUP RangeMin="6" RangeMax="6">IN_SEASON_EVAL_WT_6</EVAL_GM_STATE_LOOKUP>
<!-- ORIGINAL PARAMETERS
<IN_SEASON_EVAL_WT_1 Contact="5" Power="3" YouthHitter="0" Speed=".5" Arm=".33" Range=".33" Hands=".334" Salary="1" Stuff="6" Control="3" Youth="0" Endurance="0"/>
<IN_SEASON_EVAL_WT_2 Contact="5" Power="3" YouthHitter="4" Speed=".5" Arm=".33" Range=".33" Hands=".334" Salary="1" Stuff="6" Control="3" Youth="0" Endurance="0"/>
<IN_SEASON_EVAL_WT_3 Contact="4" Power="3" YouthHitter="6" Speed=".5" Arm=".33" Range=".33" Hands=".334" Salary="0" Stuff="4" Control="2" Youth="3" Endurance="0"/>
<IN_SEASON_EVAL_WT_4 Contact="5" Power="3" YouthHitter="0" Speed=".5" Arm=".33" Range=".33" Hands=".334" Salary="1" Stuff="7" Control="3" Youth="0" Endurance="0"/>
<IN_SEASON_EVAL_WT_5 Contact="1" Power="1" YouthHitter="10" Speed=".5" Arm=".33" Range=".33" Hands=".334" Salary="-.35" Stuff="1" Control="1" Youth="10" Endurance="0"/>
-->
<!-- PHILS PARAMETERS -->
<IN_SEASON_EVAL_WT_1 Contact="6" Power="7" YouthHitter="1" Speed="0" Arm="0" Range="0" Hands="0" Salary="2.5" Stuff="6" Control="3" Youth="1" Endurance="2"/>
<IN_SEASON_EVAL_WT_2 Contact="6" Power="7" YouthHitter="2" Speed="0" Arm="0" Range="0" Hands="0" Salary="2" Stuff="6" Control="3" Youth="2" Endurance="2"/>
<IN_SEASON_EVAL_WT_3 Contact="6" Power="7" YouthHitter="3" Speed="0" Arm="0" Range="0" Hands="0" Salary="1" Stuff="6" Control="3" Youth="3" Endurance="2"/>
<IN_SEASON_EVAL_WT_4 Contact="5" Power="6" YouthHitter="5" Speed="0" Arm="0" Range="0" Hands="0" Salary=".5" Stuff="5" Control="1" Youth="5" Endurance="3"/>
<IN_SEASON_EVAL_WT_5 Contact="6" Power="8" YouthHitter="0" Speed="0" Arm="0" Range="0" Hands="0" Salary=".5" Stuff="7" Control="3" Youth="0" Endurance="3"/>
<IN_SEASON_EVAL_WT_6 Contact="3" Power="3" YouthHitter="2" Speed="0" Arm="0" Range="0" Hands="0" Salary="-1" Stuff="3" Control="1" Youth="2" Endurance="2"/>
<!--
New in 1.31
End of season player evaluation.
At the end of the season, GMs will refine their talent evaluations based on
how a player actually performed in the recently completed season.
The values below can be tweaked in order to influence the relative weight that the AI
gives to certain player attributes when coming up with a composite evaluation of the player.
This is same as the in-season evaluation that the AI does, but is done by all teams at the end of the season
-->
<!-- ORIGINAL PARAMETERS
<END_OF_SEASON_WEIGHTS Contact="5" Power="3" YouthHitter="2" Speed=".5" Arm=".33" Range=".33" Hands=".334" Stuff="6" Control="3" Youth="1"/>
-->
<!-- PHILS PARAMETERS -->
<END_OF_SEASON_WEIGHTS Contact="6" Power="7" YouthHitter="2" Speed="0" Arm="0" Range="0" Hands="0" Stuff="8" Control="4" Youth="2"/>
<!--
Ratings Consideration
Similar to above, used to determine how much the AI will consider ratings
over actual performance when evaluating talent
-->
<TALENT_RATINGS_CONSIDERATION>.67</TALENT_RATINGS_CONSIDERATION>
<!-- Like above except influences how much actual simulated performance is considered in relation to ratings -->
<TALENT_DYNAMIC_CONSIDERATION>1</TALENT_DYNAMIC_CONSIDERATION>
RE: Success: remaking the Trade AI
That's great, Sitting Duck. I think Shaun will take a look at this, but, to be fair to the guru, I believe he's more concerned about the IE7 issues at the moment.
So, salaries aren't the culprit, then?
So, salaries aren't the culprit, then?

-
- Posts: 1186
- Joined: Sat Aug 31, 2002 9:08 pm
RE: Success: remaking the Trade AI
No, they are not. It is the mirror 'range' that player's value must fall within, assuming the weights are working well. Even then, there are issues. But salary is like the least of them, by far.
Yeah, I think Shaun has IE7 as the top dog and with good reason. He has put so much into it, and the game has to migrate to that capability. So this is, as he pointed out, a necessary birthing process.
Yeah, I think Shaun has IE7 as the top dog and with good reason. He has put so much into it, and the game has to migrate to that capability. So this is, as he pointed out, a necessary birthing process.
-
- Posts: 1186
- Joined: Sat Aug 31, 2002 9:08 pm
RE: Success: remaking the Trade AI
NOTE: I am uploading two XML files to PadresFan right now. There will be puresim.xml files with only the trade evaluation stuff in it, and one with both trade and talent evaluation. Use as you see fit.
RE: Success: remaking the Trade AI
sittingduck,
first off you might want to redo your screen name.... you don't seem to be sitting at all!!!! <G>
secondly, great work, I'll be downloading it into my xml after i back up the original and use it in my 80's association and report back!
Thanks a ton for your work
first off you might want to redo your screen name.... you don't seem to be sitting at all!!!! <G>
secondly, great work, I'll be downloading it into my xml after i back up the original and use it in my 80's association and report back!
Thanks a ton for your work
- PadresFan104
- Posts: 1147
- Joined: Mon Aug 08, 2005 3:29 am
- Contact:
RE: Success: remaking the Trade AI
Sounds good. I'll add these to my site tonight after the All-Star game.
Also, is it correct that all other sections of these XML files are stock?
Also, is it correct that all other sections of these XML files are stock?
PadresFan's Text Sim Mod Website: http://www.padresfanmods.net
Follow Me On Twitter: http://twitter.com/padresfanmods
Follow Me On Twitter: http://twitter.com/padresfanmods
-
- Posts: 1186
- Joined: Sat Aug 31, 2002 9:08 pm
RE: Success: remaking the Trade AI
You're welcome. The SittingDuck name was a nomer from my time spent playing SPWaW - a crack at myself.
SHAUN:
Need to know if there are only five possible 'Look-up Tables' for GM trading states (Not Looking, Minor Improvement, etc). I expanded it to six, based on what I had seen in there previously (it looks like you lumped 'Not Looking' and 'Minor Improvements' back into one 'stance': EVAL_GM_STATE_LOOKUP #1. My tweaks then might not be respected by the program, I realize, so then I'd have to go back and change it since it would throw the other lookup states off.
Please let me know when you get a chance. It would be awesome if we could have six 'states', thereby letting there be some difference between Not Looking, Minor Improvements, Aggressively Seeking...
SHAUN:
Need to know if there are only five possible 'Look-up Tables' for GM trading states (Not Looking, Minor Improvement, etc). I expanded it to six, based on what I had seen in there previously (it looks like you lumped 'Not Looking' and 'Minor Improvements' back into one 'stance': EVAL_GM_STATE_LOOKUP #1. My tweaks then might not be respected by the program, I realize, so then I'd have to go back and change it since it would throw the other lookup states off.
Please let me know when you get a chance. It would be awesome if we could have six 'states', thereby letting there be some difference between Not Looking, Minor Improvements, Aggressively Seeking...