Steamhammer 2.4.2 change list
Steamhammer 2.4.2 is available as source from Steamhammer’s web page. The documentation is updated too. As far as game play goes, it is identical to version 2.4.1 in the SSCAIT annual tournament. The main difference is that Steamhammer can automatically recognize when it is running under SCHNAIL and treat its opponent as a human.
I hope SCHNAIL testers will let me know how it goes, so I can adjust the behavior against human players.
Here is what’s new.
configuration
"Skills" : { "SCHNAILMeansHuman" : true, "HumanOpponent" : false, "SurrenderWhenHopeIsLost" : true, "ScoutHarassEnemy" : false, "AutoGasSteal" : true, "RandomGasStealRate" : 0.0, "Burrow" : true, "MaxQueens" : 1, "MaxInfestedTerrans" : 0 },
• The SurrenderWhenHopeIsLost
, ScoutHarassEnemy
, AutoGasSteal
and RandomGasStealRate
items are moved from the Strategy section to the Skills section of the configuration file.
• An internal flag Config::Skills::UnderSCHNAIL
is added. It does not appear in the configuration file but is set by code. It is true when Steamhammer detects SCHNAIL’s schnail.env
file in the read directory. Code can use this to do something different when running under SCHNAIL; it may be useful someday.
• A flag SCHNAILMeansHuman
is added. If UnderSCHNAIL
and SCHNAILMeansHuman
are both true, then Steamhammer overrides the configured value of the HumanOpponent
flag and sets it to true.
In other words, if you set SCHNAILMeansHuman
to true, then whenever Steamhammer is running under SCHNAIL, it will assume that its opponent is a human. That should almost always be what you want. If it’s not what you want, you can turn off SCHNAILMeansHuman
and set the HumanOpponent
flag by hand.
• Steamhammer messages “gl hf” at the start of the game if it thinks the opponent is human. It actually wishes the human to have bad luck and suffer torment (BLAST), but it doesn’t mind lying. The real purpose of the message is so you can tell whether the HumanOpponent
flag is turned on when it should be.
• The game message was formerly messed up. I think I finally fixed it.
• In the IO section of the config file, I separated Config::IO::PreparedDataDirectory
(bwapi-data/AI/om/ for prepared opponent model files) from Config::IO::StaticDirectory
(bwapi-data/AI/) for reasons of what I prefer to call clarity. The change doesn’t affect anything but a name in the code.
Comments