There may not be much, but there certainly is some left
.
These are things which are being worked on, also various research papers exist on this subject.
To stick to Two Minute Papers, of interest are these two videos for example:
The first using Machine Learning recently to create CS:GO bots. The second to have OpenAI defeat the DOTA2 world champions in 2019.
And there is plenty of similar research being done in this field of computer science.
There is however a serious concern in this matter. Machine learning will ultimately, inevitably, reach a state of competency in which it will be able to defeat the best human players in the world. Thatās just the machine doing what its designed to do, learn. As such, the difficulty in this is, how do you counter this.
The same machine learned AI opposing me in DOTA 2 as the AI that won from the world champions would completely obliterate me. Simply put, it would not make for a better game. It would be far too hard. So rather, what youād want is a much more tailor made experience. Seeing as we all know, too easy isnāt fun. But too hard isnāt fun either. Nobody likes that experience of wanting to smash your keyboard and throw your monitor out of the window because you died for the 10th time in 5 minutes.
However, that process of teaching an AI on a personal level, is also a tedious one.
This makes it hard to create a workable solution. The option which you have is to train various levels of AI using machine learning, at different scales of players, to then turn off the machine learning afterwards and keep the AI functioning on the obtained level. This of course is possible. However, such training sessions for different levels of player skill do come with issues of their own. You cannot do this post launch, this would need to be done prior to launch. But how does one determine level of player skill prior to launch? Competitive play competitions to determine skill level? This may work in competitive multiplayer games, but how do you do this for example in a single player RPG? This is challenging.
Procedural generation for example is used, extensively, within the underlying engine for Microsoft Flight Simulator. In which the entire world is recreated, using terrain data and satellite data for one, procedurally filled in using machine learning secondly. Some parts of the world are hand touched. But as you can imagine, recreating the entire world with the level of graphical fidelity as provided by Flight Simulator, is simply not possible without such procedural generation.
However, this comes with issues too. These sort of endless worlds, and Earth is even finite still, are large, absolutely massive. Weāre talking petabytes of data for Flight Simulator. Which we stream via Microsoftās Azure cloud in this case. But the question is of course, how practical is this for all games.
And for smaller scale games, letās be fair. The procedurally generated world in for example Flight Simulator is impressive from within the sky. But on a ground level, a city like New York in that title does not compare to for example a handcrafted city in GTA 5. Procedural generation just isnāt that far yet. Will it come over time? No doubt. But itās still in its infancy.
Machine learning within game development will at first most likely just remain supportive in nature, as within many other fields. Think not so much procedurally generating an entire world, but filling a world segment to be retouched or for example code prediction to ease the programming side of things by predicting code patterns.