Comment

Comment by ReflectedImage

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.

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton