[Master] Faster autoplay / Improve Autoplay AI

No hurry. Let’s not rush this. Good things come to those who take the early bird…

Auto play is great, saves time and lets us make coffee while the game defeats whole creeps for us. But all we know manual play is more advanced, we can use heros special skill more efficently. I would like to see game could provide us better auto play in 2019 like;

  • Healers should not be active every time, it should check the healt of each alive heros healt if one of them is under %80-%90 then the healer should heal.

  • if there is a diamond chanse system should detect it is stead of wasting it!!

  • Splash skills should target to middle of team

  • We know where we can play auto, we sense it, no one wants to lose energy, so if a heros special skill effect is still on the team, activated hero should not use its speacial skill should wait next time.

  • When is time to face BOSS most powerfull speacial skill attach should target the Boss first.

*Speed boost would be great. Most of the time we need Recruits with lees energy. So we attack the weak creeps it takes much time.

what more we can add?

@JonahTheBard you will like the post I am not compalining this time. Do we have chanse to see advanced auto play in 2019?

2 Likes

I like it very much as it agrees very closely with an idea I proposed myself.

Will it be implemented? SG have given themselves a long to-do list in 2019 but it could be the next big thing :blush::+1:

2 Likes

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.

4 Likes

Would be nice to set up a “defense team strategy” that would default your defending heroes to target certain types of heroes or target specific situational elements.
Either a team strategy that is very broad such as:
-Target Healers First
-Target Flanks
-Target Lowest HP
-Target Elemental Opposite
Or for more in-depth AI strategy, you could select a specific behavior for each hero.
-Tiburtus - target in order, center - flank - rear
-Lianna - Target Lowest health
-Kageburado - target healers first
-Joon - Target Hero with most mana ( special activated first)
Something along those lines of being able to select default targets for your defense to strike.
I’d probably limit the targeting to special skills only.

This is a great idea. Could offset the current balance in wars a bit.

There is just one part of your example I do not get.

Why would you setup something like this for Lianna?

I like this idea too, and was going to suggest the same. Unfortunately since we cannot actually watch our defense teams in action it would be difficult to judge the effectiveness of our choices though.

1 Like

It’s an example. Literally, just picked a name, and an example of an effect…

smh

1 Like

True. Perhaps this is something that would be possible for auto-play as well? To judge it’s effectiveness. I know my 3500 team has been defeated on an easy level because my multi-hit guy target the loner on the sidelines, or my “auto-tile” decides to always try to use the dumbest possible combination of tile attacks, or @Aggoras Lianna decides to target the character with 1hp left instead of the strongest target…

1 Like

This is more than likely hiw the defense teams operate their attacks against us already which is why you see the opposing team targeting your attacking team in different ways based on your positions, strengths and many other factors but all in all your suggestion is pretty much already created.

So what your suggesting is to remove that power from SG control and place it in each players control.

That will never happen for a number of reasons but the simplest and easiest reason which is the most important first step, is the time and work it would take to create this on a per hero per player system would almost be as long as it took them to create the game to start with.
This would also pretty much double the storage soace on each device.

I never se this ever making past reading this OP for SG

I tend to disagree with this reasoning, however do agree that there are lots of reasons not to implement this.

The difficulty to put such control on a hero/team per user base depends how the team composition is currently programmed. So unless you’ve got access to the source code I guess your not in the position to decide if there is too much work involved or.not.

About storage consumption this might increase a bit but would certainly not double as depending on the level of control SG might allow could just be some additional flags to be set per team creation which could eaily be done with 10 bytes per team which might posibly be already allocated as extra free space for potential growth.

Opening control on a truly “if then else” base would indeed consume a big capacity and has potential to be abused by hackers.

This type of comment can only come from someone who knows nothing about how much work is involved in the background when it comes to programming and getting it right
I work with websites so I do, sorry m8.

Cheers

My apologies, apparently having over 10 years of experience in both back-end development and server system engineering makes me inexperienced compared to someone who “works with websites”.

That being said. Have had some experiences where management accepts an update to a program seemingly easy that is actually a major impact as core components need complete rewriting.
Luckily management accepts what they think are major updates as big projects as well, which end up Costing only 3 man-days.

Good thing these days they realise more and more to value the input of the actual programmers supposed to work on these projects.

Sorry if I came on a bit harsh but no hard feelings towards you @Ozy1

Well then if you know that and you obvisously know more than SG and can do it better yourself then contact them m8 as you seem to know more than they do by the way your speaking.

Lol, if only it where truely that easy as I am pretty sure SG see the fact they spend months working on programs and testing it a total waste of time when there is someone who can do it all in 3 days

Good Luck

No taken at all m8, I always enjoy a good laugh. I am not an actual programmer that is true but but I do hire them to do my programming on my server, that said, both our fields is one that most users don’t relise the time involved to create things online.

I was just saying it is up to them to put a number on the amount of man-days required for changes to happen as neither of us have a view on how things are implemented at SG.

I just know that what seems to be big changes not always are and vice versa.

I have never presumed to know how their programming works and only based my comments on what I have read over the past year of being here.

But it has been my experience seeing that mostly anyone on the outside always seem to think they now more than the ones actually doing it.
This the part that makes me laugh, nothing personal m8.

Actually programming such a feature would not be difficult at all. However having given it more thought, I think it would be a mistake. It would be too complex for players that choose these match three games for their ease of play, and would likely alienate a lot of the player base. As an aside, Dragon Age: Origins has this programmable AI feature and is an excellent rpg, though it might be a little too dated for some.

I noticed with autoplay, even if a monster has only 1 health if my hero has a special to be used it will use it. Can we have some kind of setting that says “If the monster has less than XX health, do not use special”

1 Like

Well that also just like the easy round counter people are clamoring for?? It would be easy they already use it in events

+1 and BUMP to very simple improvements on the Autoplay feature. This has already been mentioned earlier, but just to simplify it for the devs to hope it increases the chances it might actually happen:

  • At the beginning of every turn, run an IF loop where IF health of Monster1 < 1/4 AND IF health of Monster2 <1/4, etc (for monster = 1:totalmonsters), you SKIP the specials loop and run the gem matching loop. ELSE you run the usual specials loop.
  • IF running the specials loop, always launch the specials loop on the center monster (int center= totalmonsters/2)
  • Only use healing specials IF health of Hero1 < 1/2 OR health of Hero2 <1/2, etc (for Hero = 1:totalheroes).

When running the gems loop:

  • Run an algorithm to search for a match-5.
  • IF no Match-5 exists, run an algorithm to search for a Match-4 of the most common Heroes color.
  • IF no Match-4 of the most common Heroes color exists AND IF a gem exists on the board AND IF the gem can be Match-3ed or Match-4ed, MATCH IT (rather than launching it by itself!! NOT HARD!)
  • IF no Match-4 of the most common Heroes color exists AND IF a dragon exists on the board. AND IF the dragon can bet Match-3ed or Match-4ed, MATCH IT (rather than launching it by itself!! NOT HARD!)

Each feature I suggested above is an independent loop feature, meaning if think it’s “too complicated” to integrate (which it shouldn’t be!), you could always just integrate one or two of the features.