Auto-play improvement idea

Dear developers,

I have been playing E&P for about 2 years now, and still have fun with it. Thanks!

There are of course a lot of ideas on this forum about what heroes should be buffed, how the ascension mats should occur more often, and so on. While many sound good in theory, I am pretty sure that implementing them would affect a sort of equilibrium that exists in the game, and either make it too simple, or too hard.

Anyway, what I am addressing here is another issue: the quality of the auto-play. It is very often the case that when auto-playing a level the AI makes the weirdest choices of gem combinations, leading to very long and boring battles. Sometimes, one might even lose a battle that should have been a win. As I am a programmer/computer scientist myself I tried to figure out what you guys are doing and also to propose another solution for that.

Firstly, my impression is that the current algorithm is somehow deterministic. Kind of: look quickly for a match, make it; explode gems or “cross”-tiles if they occur (“cross”-tiles first), etc. Maybe I am wrong, and maybe your search is a bit more sophisticated, but it is clearly nothing very complex (like game trees, etc.) - in the end you want something that works fast and is lightweight. As said, this may lead to weird choices of matchings, sometimes very frustrating w.r.t. the choice of heroes in the attacking party.

Secondly, we come to my proposal. It is pretty often the case that many good puzzle game-engines use now Neural Networks and machine learning. Why not use this too to design the auto play. As I see it, the problem can be (at least on a starting level) easily formulated as follows: given a 5x7 matrix of numbers from 1 to 5, the NN needs to decide what two adjacent positions should be switched. So, we have as input the matrix, we need to compute a move. With a sort of deep architecture this should be learnable, provided that we have enough training data. Want to make it more difficult: add the colors of the attacking team in the mix.

Data is something that you should maybe have: just record all the games in beta-testing. For each tile screen one get, record the move the player made. Many beta-players are good players, so it should be easy to learn “good-moves”. Also, there are enough beta-players to avoid over-fitting.

I am pretty sure that this approach could be as fast and lightweight as your current one. And maybe it would increase the level of the auto-play.

Cheers,
Dr J.

A post was merged into an existing topic: If X then Y - programmable AI