Hi Riot - Let's Talk Neural Networks and Gaming
I loved the April Fool's joke you had about playing AIs trained with advanced machine learning techniques; I think you should make it happen.
You could build an AI which would defeat even the best players - and perhaps the best teams. And not just by being better tactically, but also better at strategy. Remember how everyone thought an AI would never be able to learn Go, and then Google used a neural network to take on some of the most talented human players? A lot of people might not know what neural networks are, but essentially they are the culmination of years of machine learning, hardware, and data collection progress. In one approach, through examining training data (in this case, recorded games) they can learn to abstract the concepts behind decision making to more accurately predict a classification or action through a process called backpropagation. In another, called reinforcement learning, it can use feedback metrics to self improve while testing. This approach is used here in a similar application - playing smash bros melee. There is also the NEAT approach, in which the architecture of the network itself is changed along with the weight updates in a mimicry of evolution.
First, I would suggest capturing training data of players fighting other players/AI and training the network through backprogatation to mimic human decision structure. The overall architecture of the network will be less important than the way in which the data is fed to the network... but my personal suggestion would be a temporal input feed capturing the last 24s of game data - or however long the longest qwe spell's cooldown is - along with data entries to track whether the bot should believe that significant longer cooldowns (like flash) are available to the enemy/self at each captured data point just like a real player. This way, the AI can incorporate opponent and self cooldown usage into its decision making. The data just needs to be fed to it in a way which it can understand. The less convoluted the data, the easier it will learn to recognize patterns. For example, in the case of the smash melee bot, it had access to game data such as player positions and state which, along with reinforcement learning, allowed it to best talented human players. A similar bot was made for N64 smash bros which often struggled staying on the edge as it only had camera data - the same camera data a player has - to rely on. Because it had to sift through the camera to judge relative locations and then make a prediction, it wasn't as effective. It also lacked reinforcement learning to bring it above the humans it learned from.
Second, after the bots have been trained to reasonable performance levels in mimicking people, utilize reinforcement learning against traditional bots and other players to bring them above the performances they trained on. The NEAT approach would introduce species, which would be similar to the bots with separate "personalities" the April Fool's day joke alluded to. You could also segment training data from certain playstyles to achieve a similar result. If you want further guidance I can send over a github of code I've used for capturing game data for neural networks, or implementations of different neural networks for gameplay.
Finally, consider a larger neural network which coordinates all 5 players under one command structure. Think of the synergy possibilities! All this to say, I'm sure Riot is already utilizing neural networks either directly in market research or indirectly through service providers like Google. However, I would love to see them implemented in League of Legends AI gameplay.
So, Riot pls; unleash your AI possibilities.