[HN Gopher] Show HN: League of Legends Build Orders by Genetic A...
___________________________________________________________________
Show HN: League of Legends Build Orders by Genetic Algorithm
Author : ReflectedImage
Score : 44 points
Date : 2021-01-30 12:34 UTC (1 days ago)
(HTM) web link (www.lolsolved.gg)
(TXT) w3m dump (www.lolsolved.gg)
| mushufasa wrote:
| It doesn't look like there are any guides for most of the
| champions. I've clocked on 5 or 6 and the only one I see is for
| the first champion alphabetically, so 1/6. It's a little hard for
| me to make anything of this unless it's relevant to familiar
| champions. Is this a bug of the website or to-do?
| TameAntelope wrote:
| Click "Open Build Calculator" at the top of the page for a
| specific champion.
| Lt_Riza_Hawkeye wrote:
| Did my best to generate a jinx build, with high HP recovery and
| no lategame armor penetration (and no armor/mr). I also chose no
| gap-close because of jinx's passive and w. It generated:
|
| kraken -> boots -> rfc -> ie -> last whisper -> vamp scepter ->
| dominik -> bt
|
| I'm surprised to see this even with high hp recovery - I asked
| for no armor pen, but it decided to build dominik's anyways, and
| it doesn't buy a vamp scepter until after 3.5 completed items. If
| I went this build, about 99% of my games would end before I got
| ie, everything after that matters a lot less, and so I'm
| surprised to see it push everything non-"core" (including the
| armor pen I didn't want) into the end of the build.
| jnwatson wrote:
| There was some work using genetic algorithms determining build
| orders in Starcraft II. It produced some really innovative stuff.
|
| When your tool optimizes for "gap closer" what are the
| characteristics of the items it selects for? Move speed? Ranged
| slows? Is there a consideration of item active vs. passive
| effects? For example, Stridebreaker is in a lot of bruiser build
| orders because it has an _active_ (i.e. requires a button press)
| gap closing ability.
|
| 1.
| https://link.springer.com/article/10.1007/s13218-013-0263-2?...
| 2. https://tl.net/forum/starcraft-2/168348-scfusion-wol-hots-
| an...
| m00x wrote:
| Seems alright, but there's some major mistakes like Lich Bane on
| Xerath late game, Kraken Slayer on Jhin, full Maw early on Talon.
|
| Looks pretty good overall though. I'd love to see this, but vs
| specific matchups which is the most important part of build
| optimization. The hard part of builds is choosing which item in
| certain scenarios.
| [deleted]
| eska wrote:
| Kai'sa builds don't seem to take evolve thresholds into account.
| ReflectedImage wrote:
| I've been working on a League of Legends Build Order optimizer. I
| got the idea after hearing one of my new co-worker explaining
| that at his last job he worked in a team of five trying to create
| a build order optimizer for Dota 2 (another Moba game) via neural
| networks and they failed. More specifically, the builds were no
| better than what a standard player could come up with.
|
| I recalled back to my PhD work on solving acquisition problems
| using generic algorithms and realized I could actually do it. One
| covid year later and I've almost finished it.
|
| You give it the champion, the play style and divide up the
| abstract stats like Damage, Effective Health, Gap Close, etc...
| and the genetic algorithm gives an optimized build order for it.
|
| The site is backed by ~450,000 pre-computed build orders, which
| took a week to generate on a 32 core box.
|
| I've been talking to some challenger (really good) players and
| got a list of things that needed to be done. Basically being able
| to change the various options used by the model and being able to
| override runes/items.
|
| Since it wouldn't be practical to run the whole genetic algorithm
| in a web browser, I've implemented a hill climber, which runs in
| the web browser, that accepts the output of the genetic
| algorithm, the user requested changes and then it hill climbs the
| build order back to the local optima.
|
| The genetic algorithm was written in Kotlin (compiled to JVM) so
| I used Kotlin's compile to Javascript to create the web based
| hill climber.
|
| I've also implemented guides so you save the builds you find from
| the optimizer. You can login as guest/guest.
|
| Build Orders: https://www.lolsolved.gg/builds/ Technical
| Explanation: https://www.lolsolved.gg/about User Guide:
| https://www.lolsolved.gg/help
|
| I'm sticking around so feel free to ask questions.
| trinovantes wrote:
| The more I think about it, the players themselves and their
| match history can be thought of as agents in a GA simulation.
| The players with better builds tend to win more and their
| builds eventually dominate the gene pool. However, since most
| people just copy online builds, there's little experimentation
| so those builds may be stuck in a local optima.
|
| Assuming you have robust mutations, were you able to discover
| any new novel (and effective) builds not previously known?
| ReflectedImage wrote:
| All the builds are generated from scratch. It's maths
| descriptions of the items/abilities + the lol formula. So the
| vast majority of the builds are novel. (Some of them happen
| to line up with what is currently played.)
|
| Are they effective is a good question, basically that needs
| lots of play testing by real players. I've added guides so
| people can tell other people about good builds they have
| found.
|
| So when developing it, I took some existing builds from the
| internet and I broke them down into a ratio of stats aka (1
| damage: 1.5 cooldown (now AH): 1.2 late game health) and then
| had the GA reconstruct those builds from the ratios.
|
| On the builds being played by the pros created by
| professional analysts, I got back very similar looking
| builds. On random builds from site like mobafire I got back
| completely different builds.
|
| Thinking back, when Cloak of Agility was briefly buffed last
| year, it came back with the exact amount of them to spam and
| exactly when to do it. It took 10 minutes and the player base
| took 3 weeks to work it out.
| tylerhou wrote:
| One big unmodelled parameter is the enemy team composition.
| For example, against teams with easy-to-land poke, QSS is
| better than Banshee's Veil.
|
| If you modeled team composition, it may be possible to even
| model pick-ban phase via min-max search. A full exhaustive
| search would be computationally impossible, but you could
| approximate it AlphaGo style with a neural network
| estimator + Monte Carlo tree search. You may be able to
| sell such software to professional teams.
| gbachik wrote:
| How hard would it be to part something like this over to league
| of legends mobile?
|
| A lot of the core is there but there's less champs, runes,
| items.
|
| (Currently on a pro team for wild rift and since the game is
| relatively new this would be more useful to us)
| redrobein wrote:
| I'd assume the problem with doing this for dota2 is that items
| have more complex effects and the optimum build can vary
| depending on the state of the game at any time, is a teammate
| getting this item?, is the enemy already building to counter
| it? A lot more complexity and situational evaluation required.
| whateveracct wrote:
| a lot of dota2 builds require very intentional use of very
| small advantages with narrow timings. you'll see pros go in
| for a 1v1 kill the moment they hit level 5 and come out the
| other end with barely any HP, but that HP will be due to a
| minor totem they bought or a bottle sip in between hits or
| something
| 29athrowaway wrote:
| This approach does work, but be mindful that each patch changes
| things a lot, and there's a lot of maintenance required to keep
| it working.
|
| In StarCraft II, the 7 roach rush was developed using genetic
| algorithms. http://lbrandy.com/blog/2010/11/using-genetic-
| algorithms-to-...
___________________________________________________________________
(page generated 2021-01-31 23:01 UTC)