09 July 2018

Deep Learning AI Potential In Game Development

Deep Learning is a topic in computer engineering which is not going to die out any time soon. There is a reason why. After finishing my current course I'm gonna do a deep learning course.

AI Programming

AI stands for Artificial Intelligence and up to this point, most AIs were designed to automate behaviors. This way you could allow monsters to find a path to the player, robots to move around mazes or to program Non-Playable Characters (NPCs) to react to the player's actions as well as acting themselves. They've been around us for centuries and there is hardly any game that does not contain one.

Artificial Neural Networks

This technology is based on Artificial Neural Networks (ANN). A Neural Network is - simply put - the recreation of the human brain or of it's Neural Network to be more specific. This technology allows us to program AI that can detect patterns. A good example of this would be the ANN programmed by Google which can detect objects in pictures.

Deep Learning

Going a step further we reach Deep Learning or when occurring in less complicated ways Machine Learning. I'm not going into the details, but by using the ANNs and let the computer itself modify the weights of each Neuron the machine can learn. Using bigger and deeper nested ANNs results in the phenomenon called Deep Learning. A good example of Deep Learning is Google's Deep Thought project. If you never heard of it, it was able to beat the world's chess champion. Another example would be the AI Elon Musk presented in the game Dota 2. This AI was able to defeat a champion as well. The usage of these works similar to the way the human brain works, hence why it's a recreation. You set up the ANN and feed it the respective information it was designed for. Then you keep teaching the machine in different ways depending on the goal and data given and it will trial and error it's a way to success. I recommend you to watch some Machine Learning AI plays Super Mario Brothers videos. It's really interesting to see how they're learning and the exponential success they make.

What Is The Potential of Deep Learning in Game Dev?

Finally, the actual reason for the topic. There are multiple ideas I have flying around my head, so, let's go through each of these reasons I have to get into Deep Learning for game development reasons.

AI-Based Instead of Procedural Generated

If you've played Diablo III or Minecraft or any game that uses generated content you can see repetitions, issues, and much more problems or unnatural looking phenomena. The fun thing is if you show a Deep Learning using a machine a map it recreates it one to one. If you show it two maps it tries to combine them. If you show it a thousand maps, who knows what the result may be. If you teach the AI which maps are great and which ones are bad, over time (a few weeks probably depending on the world size) it will be able to generate you more and always different looking worlds that are perfect or nearly perfect. This would lead to some really interesting new games, like a fully 3D generated game that goes into more detail than Minecraft, Cube World or other AMMORPGs.

A Fair Rating System

Many games and gamers struggle with rating systems that are used nowadays. Almost every rating based system depends on game wins and loses. The problem is that you may lose a game even if you play better than the others if it's a team match. This leads to customers being unsatisfied and toxicity. This might be quite a bit into the future but if we can teach an AI to play better than a champion in a game the AI can be considered the best player in the world. You could even teach the AI to play against itself to push it even further than any human could reach. If someone's good at a game they can help those who are not. This also means someone good at a game can tell if you play good or bad to a certain degree. So, if we teach an AI that's the best in the game to rate your decisions while watching how you play it should be able to rate you much better than on a win or loss basis.

Endnote

And if that's not enough these are just two ideas maybe these will spark new ideas for other people as well or I will have more ideas once I explore the ones that were mentioned here. Maybe we can use AI as playtesters to check if the game is possible on difficulties we as game developers can not beat. AIs can be used to determine world record times to get an idea of the best possible time and maybe just maybe AIs will be able to find bugs and short cuts we didn't think of too.
Liked the post? Noticed an error? Wanna discuss the content or leave a comment*? You can join or check into the discord to do so! (*Note: Comments are disabled to avoid saving user data on this website.)
>> Join Discord

About Me

My photo
I'm a junior game developer and software developer and I created this blog to share my ideas, thoughts and whatever I'm working on or doing.