AutumnCrocus / shadow_sim

Emulator and AI of Shadowverse
Other
11 stars 1 forks source link

Permission to use your sim #18

Open Pr0gCat opened 4 years ago

Pr0gCat commented 4 years ago

Hello, I recently working on playing SV with reinforcement learning, and I did like to use the simulator you create. Cuz there is no License in your project, so I would like to ask for permission.

p.s: maybe we can have a nice chat :D

AutumnCrocus commented 4 years ago

I'm sorry for the delay in replying. Naturally I'm happy to allow it! But this simulator and card database is not yet complete, so there will probably be some bugs. Sorry for the poor translation.

Pr0gCat commented 4 years ago

how did you handle choosing card? Currently my solution is randomly pick one, maybe you have better way to do it? And I am currently encountering skills(or abilities) embedding, skills like 剥落の暴圧 is hard to embed, Ignoring those skills will result poor performance(mostly those cards are powerful), I would like to know how do you implement these skills.

look forward to your reply :) sorry for poor English

AutumnCrocus commented 4 years ago

Are you referring to the ability to take effect as the turn progresses? I simply use methods such as generating a search tree for each action or turn and evaluating it on its branches. I have created an AI that uses MCTS, which uses a neural network that learns from a log of self-competition for its evaluation function to determine actions, but it is not much stronger than one that uses a home-built evaluation function.

Pr0gCat commented 4 years ago

so far I am able to interact with the game, playing with built-in bot, utilize searching method like MCTS will need to implement a virtual environment of the game, which is hard and time consuming, my approach is let agent learn to generate moves and hoping it works, Shadowverse cards has lot's of different skills, and my question is how to you turn skill into neural networks inputs.

AutumnCrocus commented 4 years ago

I currently simply use the id corresponding to the card name as the input. This method cannot be used immediately well with new cards being added, but it does allow the AI to learn how well a card works in a situation by learning from a self-playing log. I haven't currently come up with a way to immediately adapt to new cards on an ongoing basis...

Pr0gCat commented 4 years ago

interesting, did it perform well?