Welcome Guest! To enable all features please Login or Register.

Notification

Icon
Error

84 Pages«<2021222324>»
Sepefeets Silverfish update (OG, Kara, MSG)
sadpwner
#427 Posted : Sunday, July 3, 2016 6:22:16 AM(UTC)

Rank: Advanced Member

Groups: Registered
Posts: 262
Location: somewhere

Thanks: 3 times
Was thanked: 64 time(s) in 54 post(s)
Sepes another idea is giving us the ability to create our own library of cards for each opponents class and the bot will only play around these cards.

For example,

Druid:
wrath
druid of claw
ect.

This will help the bot play around cards that people actually use and avoid calculation on cards no one plays.

_

A big issue with the bot is, it places too much value on buffing units with wolf when there are no minions on the enemy's side. It's a common occurrence.

Turn 3

Should just play impgang boss or even peddler

http://pastebin.com/3Ft7j93w

Same thing here

http://pastebin.com/svy24mdS

Turn 9 should defender
1 user thanked sadpwner for this useful post.
Somerandombot007 on 7/3/2016(UTC)
sepefeets
#429 Posted : Sunday, July 3, 2016 11:48:05 AM(UTC)

Rank: Advanced Member

Groups: Registered
Posts: 899

Thanks: 1028 times
Was thanked: 584 time(s) in 238 post(s)
sadpwner;39275 wrote:
A big issue with the bot is, it places too much value on buffing units with wolf when there are no minions on the enemy's side. It's a common occurrence.

That is something you should probably adjust yourself with a cardvalue rule.
Somerandombot007
#428 Posted : Sunday, July 3, 2016 1:42:22 PM(UTC)
Somerandombot007


Rank: Advanced Member

Groups: Registered
Posts: 33
Location: Zurich

Thanks: 63 times
Was thanked: 20 time(s) in 12 post(s)
sadpwner;39275 wrote:
Sepes another idea is giving us the ability to create our own library of cards for each opponents class and the bot will only play around these cards.

For example,

Druid:
wrath
druid of claw
ect.

This will help the bot play around cards that people actually use and avoid calculation on cards no one plays.

I think this would drastically improve the way the bot plays (around) stuff. I'm thrilled to so this coming !

I myself tried to get fammiliar with CUDA in C# but I didn't sucede yet. The AI is multithread optimized so I think it should be possible to adapt the code to run the Calculations on the GPU. I have only a brief understamding of Coding in C# and none with coding for CUDA /GPU
hearthbot8899
#430 Posted : Sunday, July 3, 2016 3:51:29 PM(UTC)
Rank: Newbie

Groups: Registered
Posts: 5

Thanks: 3 times
sepefeets;39278 wrote:
That is something you should probably adjust yourself with a cardvalue rule.

In the penalty class for Dire Wolf Alpha (which currently just returns 0 always), what would you think of adding a small penalty for playing it against empty boards?

Code:
return p.enemyMinions.Count == 0 ? 5 : 0; // Small penalty for playing dire wolf alpha against an empty board


I run a test against the provided log and after this change imp gang boss is played instead of direwolfalpha (not by much though)
parakeet
#431 Posted : Sunday, July 3, 2016 4:22:37 PM(UTC)

Rank: Advanced Member

Groups: Registered
Posts: 128

Thanks: 18 times
Was thanked: 83 time(s) in 69 post(s)
hearthbot8899;39282 wrote:
In the penalty class for Dire Wolf Alpha (which currently just returns 0 always), what would you think of adding a small penalty for playing it against empty boards?

Code:
return p.enemyMinions.Count == 0 ? 5 : 0; // Small penalty for playing dire wolf alpha against an empty board


I run a test against the provided log and after this change imp gang boss is played instead of direwolfalpha (not by much though)


I like it, nice job. I added it on Github, Sepefeets can review if he wants to keep it.
parakeet
#413 Posted : Sunday, July 3, 2016 5:18:34 PM(UTC)

Rank: Advanced Member

Groups: Registered
Posts: 128

Thanks: 18 times
Was thanked: 83 time(s) in 69 post(s)
hearthbot8899;39247 wrote:
Turn 1, enemy Druid has 2 1/1 saplings. In hand I had Flame Juggler, Huge Toad and King Elekk. I assume correct play would be to play Flame Juggler with Coin for a 66% chance of killing a sapling and a 2/3 body in field. Instead, it decides to play Huge Toad:

http://pastebin.com/z95nDjc6

I have noticed this sometimes already. I forked your GitHub to try and find if Flame Juggler was getting some penalty, but all references that I found in the code didn't show any. I was thinking that a "bonus" could be added proportionally to the likelihood of killing a unit, but I am unable to find where such a logic could be added.

Also, just wanted to say great job with your branch of Silverfish!



I am not sure what is causing the -20, -7, and 5 penalty values - but even if they were all 0, king's elekk would be the calculated best move. It looks like, if p.isServer = false, the simulation for flame juggler is going to assume the worst case scenario for its random damage. See searchRandomMinionForDamage in playfield.cs.

Assuming the worst case scenario is not going to result in ideal move choices. Can you think of a better way to simulate?
sepefeets
#432 Posted : Sunday, July 3, 2016 6:27:03 PM(UTC)

Rank: Advanced Member

Groups: Registered
Posts: 899

Thanks: 1028 times
Was thanked: 584 time(s) in 238 post(s)
There is already a dire wolf penalty in penalitymanager.cs which is where most penalties are. I just barely raised it so that the penalty is 10 for empty boards and 5 for 1 enemy, I'm not going to raise it any more because it would prevent the card being played more liberally for aggro style decks. Using a cardvalue should work just fine and as Dre recently tested it only works to raise penalties.

For flame juggler I would lean towards creating a tiny bonus for each 1 hp and divine shield enemy and penalty for every other enemy. Try to keep it as low as possible.
mixarms
#435 Posted : Sunday, July 3, 2016 6:42:12 PM(UTC)

Rank: Advanced Member

Groups: Registered
Posts: 57
Location: Brazil

Thanks: 7 times
Was thanked: 17 time(s) in 7 post(s)
What about C'Thun, SF knows how to handle it?
sadpwner
#433 Posted : Sunday, July 3, 2016 7:03:22 PM(UTC)

Rank: Advanced Member

Groups: Registered
Posts: 262
Location: somewhere

Thanks: 3 times
Was thanked: 64 time(s) in 54 post(s)
sepefeets;39286 wrote:
There is already a dire wolf penalty in penalitymanager.cs which is where most penalties are. I just barely raised it so that the penalty is 10 for empty boards and 5 for 1 enemy, I'm not going to raise it any more because it would prevent the card being played more liberally for aggro style decks. Using a cardvalue should work just fine and as Dre recently tested it only works to raise penalties.

For flame juggler I would lean towards creating a tiny bonus for each 1 hp and divine shield enemy and penalty for every other enemy. Try to keep it as low as possible.


Though, there are different profiles in silverfish (control, rush, face or mana). If the person was playing an aggro deck, he/she should use the face or rush profile. With the control profile, this shouldn't be the intended play style, but w/e, I'll get to it.

Just wondering are you still looking for misplays?
sepefeets
#434 Posted : Sunday, July 3, 2016 7:19:23 PM(UTC)

Rank: Advanced Member

Groups: Registered
Posts: 899

Thanks: 1028 times
Was thanked: 584 time(s) in 238 post(s)
sadpwner;39288 wrote:
Though, there are different profiles in silverfish (control, rush, face or mana). If the person was playing an aggro deck, he/she should use the face or rush profile. With the control profile, this shouldn't be the intended play style, but w/e, I'll get to it.

They share most code... I'm not adding behavior specific settings for 1 card when you can already do something about it yourself.
jimbob70
#436 Posted : Monday, July 4, 2016 2:57:28 AM(UTC)
Rank: Member

Groups: Registered
Posts: 21

Thanks: 7 times
Was thanked: 6 time(s) in 6 post(s)
Bot plays fairy dragon over alextraza's champion, is it a bug? Do I need a combo setting to fix it?



Edit: (Dre) Posted your log between [spoiler] [/ spoiler] to reduce size
Dre
#437 Posted : Monday, July 4, 2016 3:27:36 AM(UTC)

Rank: Advanced Member

Groups: HSModerator, Registered
Posts: 888
Man
Location: The Netherlands

Thanks: 216 times
Was thanked: 480 time(s) in 315 post(s)
Reading my logs again here below are some of the things i see, I've swaped to hunter (midrange) this season. This deck with my files (will post details later) got me to rank 10 on the first day of the season with 54% wr so very high for this early in the season.



Ofcourse there should be a penalty for playing stampeding kodo when there is no 2-attack minion on the board but i think its a bit to high now. Since it shoudnt skip the whole turn 5 (just heropower) its allot better to play the kodo on curve in this case. Since there is nothing else to play.

Does "cardvalue:NEW1_041,-5" work? I tried - value's only once then it didnt seem to have much impact, but will simulate when iam home. EDIT (i'am home) fixed it with a cardvalue of -1 allready so: cardvalue:NEW1_041,-1




Bot used turn 4 for a 3 drop, wasting one mana, while it had a 4-drop in hand. Also since it had no 5 drop. It could use the 3 drop, in combination with the 2 drop for the 5 mana turn... Now turn 5 was even uglier then i expected since bot didnt play the 4-drop again. So in these 2 turns (4 and 5) its wastes a total of 2 mana and even had to use hero power on turn 5 to fill up the mana, because it didnt play the 4 drop again.

IF it played the 4 drop on turn 4, and used the 3+2 drop on 5. It would have lost o mana. and 3 minions where played instead of 2. BIG curve offlplay imo and major loss of tempo. (23% mana lost)

Is there some kind of penalty on Infested wolf? Iam not having it in any combo, Maybe i should make a single card combo to push it a bit to play on 4 mana. EDIT had to put a value of -11 on it to play it on tgat turn 4, dunno why it wants to play the 3 drop on turn 4 so much



Not sure if this is the sync problem (i think it is) But it wastes a charge of the weapon on a doomsayer he cant kill. Aperantly the bot thinks his weapon could attack twice or so idk...



Bot found Sir finley SO treathning it used kill command on it, myself iam not so scared of sir finley, so i gave kill command a sweet little value after this play ;)



Attacks with rhino first before playing call of the wild (which buffs also the rhino)



Spends turn 3 and 4 using just hero power, shpuld have equiped the weapon on turn 3 and arguably hit face. On turn 4 should have played houndmaster to curve, since it had a 5 and 6 mana followup aswell.Lost 3 out of 7 mana now (43% tempo loss) Edit: I accualy have allot of logs where when it has no other card on turn 3 then weapon is choses hero power over playing the weapon. But it should allways play weapon in this case. EDIT: Playing the weapon on 3 mana fixed with -1 on cardvalue so: cardvalue:EX1_536,-1
Elekid
#438 Posted : Monday, July 4, 2016 7:47:45 AM(UTC)
Elekid


Rank: Advanced Member

Groups: Registered
Posts: 101
Location: Nijmegen, The Netherlands

Thanks: 29 times
Was thanked: 65 time(s) in 58 post(s)
Another misplay which makes it obvious we are botting (or just plain stupid :D):

attack Flame Juggler with Disciple of C'thun first, killing the Disciple in the process.
Killed Flame Juggler with Shadow Word: Pain after, which it could have done straight away, letting the Disciple attack something else.

Hope it's not that hard to fix:

logs
Dre
#439 Posted : Monday, July 4, 2016 8:11:51 AM(UTC)

Rank: Advanced Member

Groups: HSModerator, Registered
Posts: 888
Man
Location: The Netherlands

Thanks: 216 times
Was thanked: 480 time(s) in 315 post(s)
Elekid;39301 wrote:
Another misplay which makes it obvious we are botting (or just plain stupid :D):

attack Flame Juggler with Disciple of C'thun first, killing the Disciple in the process.
Killed Flame Juggler with Shadow Word: Pain after, which it could have done straight away, letting the Disciple attack something else.

Hope it's not that hard to fix:

logs


99% sure that is due the sync problem, Joy has to fix this - has nothing to do with silver.
Dre
#441 Posted : Monday, July 4, 2016 10:11:28 AM(UTC)

Rank: Advanced Member

Groups: HSModerator, Registered
Posts: 888
Man
Location: The Netherlands

Thanks: 216 times
Was thanked: 480 time(s) in 315 post(s)
A bit more logs to check.



In my last post it i mentioned one play where it failed to kill doomsayer and i tought it was the sync-bug, but it does fail in this play again and iam doubting if this is the sync (but i guess it is)... This turn i waste 6 damage. On failing to kill the 7 health doomsayer. As it forgot to attack with the present elek. I never saw the sync-bug like this. But i guess it is sync. full log here


Hmm iam not joking if i say that in 50 games i found atleast 5 games (10%) maybe even more, where it failed to kill the doomsayer. I believe when u say it's all sync, but it happens on doomsayer allot then. Another one here:
1 user thanked Dre for this useful post.
parakeet on 7/5/2016(UTC)
Elekid
#440 Posted : Monday, July 4, 2016 11:28:36 AM(UTC)
Elekid


Rank: Advanced Member

Groups: Registered
Posts: 101
Location: Nijmegen, The Netherlands

Thanks: 29 times
Was thanked: 65 time(s) in 58 post(s)
Dre;39302 wrote:
99% sure that is due the sync problem, Joy has to fix this - has nothing to do with silver.


I'm not a progammer or anything, but can you explain to me how we can tell this from the logs? What I see is Silverfish calculating:

attackWithMinion: Disciple of C'Thun target: Flame Juggler choice: 0 place0
and after that:
playcard: Shadow Word: Pain target: Flame Juggler choice: 0 place1

I'd like to learn so I can contribute more.
sepefeets
#448 Posted : Monday, July 4, 2016 2:20:06 PM(UTC)

Rank: Advanced Member

Groups: Registered
Posts: 899

Thanks: 1028 times
Was thanked: 584 time(s) in 238 post(s)
Please stop with all the spoilers and just post it to pastebin or similar sites so that I can just click a button to download it and quote you without walls of logs in the quote...

@jimbob70 - There is an old bonus for playing faerie dragon early but it doesn't really fit the current meta so it'll be fixed.

@Dre - One point about doomsayer, the stuff I added to play around it was very basic and needs more work. It pretty much just prevents non-charge minions from being played into doomsayer and from attacking doomsayer in most situations that it can't kill it. I already had some plans on how to do it better and simpler but I'm still working on mulligans.

@Elekid - That misplay looks like a real misplay to me, it happened after a recalc (with correct data afaict) though. The way you spot bad data from HR is you find when the actions occurred like you did, then you go up until you find when those actions were actually generated ("set best action") and find the incorrect action (it will be a lot easier to read the action list next release but for now you have to match the entity ID from the action to a card on the board's "e:#"). Once you find where the bad action was generated, you look at the action that was played right before the bad action. Then you check if whatever that action before the bad one did what it was supposed to do by comparing the boards before and after. ie. if you played bloodlust then does the board after playing bloodlust show that your minions got 3 tmpattack?
hearthbot8899
#450 Posted : Monday, July 4, 2016 2:35:25 PM(UTC)
Rank: Newbie

Groups: Registered
Posts: 5

Thanks: 3 times
One question: Why did the bot have to recalculate after every move? There is no random effect that I can see in the log. Shouldn't the "noRecalcNeeded!!!-----" message appear after the first calculation?
parakeet
#451 Posted : Monday, July 4, 2016 3:11:36 PM(UTC)

Rank: Advanced Member

Groups: Registered
Posts: 128

Thanks: 18 times
Was thanked: 83 time(s) in 69 post(s)
hearthbot8899;39314 wrote:
One question: Why did the bot have to recalculate after every move? There is no random effect that I can see in the log. Shouldn't the "noRecalcNeeded!!!-----" message appear after the first calculation?


I was looking at this the other day. If I recall correctly, Ai.cs will avoid recalculating if the playfield Heartranger sends matches what it was expecting to see. If however, the playfield does not match the anticipated playfield, recalculation will occur. For example, random effects, Hearthranger sending bad data (data sync), or incorrect simulation of an action would all cause the new playfield to not match the anticipated playfield.
Dre
#449 Posted : Monday, July 4, 2016 5:08:32 PM(UTC)

Rank: Advanced Member

Groups: HSModerator, Registered
Posts: 888
Man
Location: The Netherlands

Thanks: 216 times
Was thanked: 480 time(s) in 315 post(s)
sepefeets;39312 wrote:
Please stop with all the spoilers and just post it to pastebin or similar sites so that I can just click a button to download it and quote you without walls of logs in the quote...


Should have said ages ago mate :), i tought i was doing you a favour by cutting the excat play out of it. Much easier for me to just upload the log to pastebin and post the logd say which mana xD Again i tought i was doing you a favour with the single plays in the spoiler.

Also i edited my post (#435) where i tried some things to fix myself with -values which seemed to work (with emulating) dunno if you saw the edits, so just saying. Maybe its an idea that you "like" the post once you read it and taken note of it, so i dont have to worry if you read it xD Which i could be of more help then what i do!
84 Pages«<2021222324>»
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.

Powered by YAF | YAF © 2003-2011, Yet Another Forum.NET
This page was generated in 2.464 seconds.