- Joined
- May 27, 2017
Bit of a distinction to make here, you are lumping two different things together as "AI"; procedural generation and machine learning.AI has been in game design for a while, people have just recently started making a stink over it for the artistic side of it. Do people think every rock, pebble, stump, or blade of grass in games like Starfield were individually hand-placed on their procedurally generated worlds? Fuck no, an algorithm spits those out at random. With the push for ever-growing world/map sizes, it becomes unfeasible at a point to design worlds without some form of automation.
Procedural generation is creating a set of assets and developing a set of parameters to randomly arranged these assets. This is what Starfield uses, where Bethesda created a bunch of pre-built small buildings and keeps track of them on a list. When you land on a planet, the game randomly picks from the list and places it in the world. This is is how rouge-likes, such as The Binding of Isaac, work. There rooms are picked from a list and arranged in a certain order based on pre-programmed limitations.
Machine learning (ML for short) is what OpenAI and similar use, where you take pre-existing assets, typically referred as the training data, and use what is called a neural network to associate each asset with certain values (such as art tags).
For instance, say your program has a value called "Eye_Color". In your training data, you tag each image with the eye color of the person inside. As the ML reads through the data, every picture tagged with "blue_eyes", Eye_Color = 3. Every picture with "green_eyes", Eye_Color = 7.
Once the neural network has been trained, it can create new assets by using the input values to essentially randomly make things until it matches with what the neural network thinks the output should be, based on the input values.
So if you type in say [girl, pink_hair, blue_green_eyes, anime] the machine will randomly make images until the neural network reads an output that can fit within the same category as the images inside its training data. For this instance, it will try to create an image where the value Eye_Color = 5, halfway between blue eyes and green eyes.
Machine learning (ML for short) is what OpenAI and similar use, where you take pre-existing assets, typically referred as the training data, and use what is called a neural network to associate each asset with certain values (such as art tags).
For instance, say your program has a value called "Eye_Color". In your training data, you tag each image with the eye color of the person inside. As the ML reads through the data, every picture tagged with "blue_eyes", Eye_Color = 3. Every picture with "green_eyes", Eye_Color = 7.
Once the neural network has been trained, it can create new assets by using the input values to essentially randomly make things until it matches with what the neural network thinks the output should be, based on the input values.
So if you type in say [girl, pink_hair, blue_green_eyes, anime] the machine will randomly make images until the neural network reads an output that can fit within the same category as the images inside its training data. For this instance, it will try to create an image where the value Eye_Color = 5, halfway between blue eyes and green eyes.
TL;DR:
Procedural generation is like randomly rearranging puzzle pieces you made in a different order.
Machine learning is taking a bunch of puzzle pieces, almost always made by other people, and feeding them to a robot to make new puzzle pieces.
Plenty of games use procedural generation to make terrain and other minor background details, but to my knowledge, no major game has been released that using machine learning to generate art assets.