Many years ago, Alan Turing took the first step towards the modern computing, he did when he built a computer that was capable of breaking a cryptography that was considered, at that time, unbreakable. His computer, along with many others that came in the following years, wasn’t programmable, meaning that it had a complex system of valves and things like that that used to function as a Boolean type of variable, so, when you had to insert some information in the computer, it had to be in binary, and, after some time, it would give the answer, also in binary. Turing’s computer and the following computer could only do a single task, so, if you had a complex math problem and wanted the computer to answer, it had to be a new computer, Turing’s computer would give a wrong answer, and if it understood the information you gave it.
Let’s jump a few years, we have the programmable computer. This computer was simple, yet powerful. It was made to complete tasks, and that’s it! If you had to write a text, it could do it. If you had to solve a math problem, it could do it. But, most importantly, if you wanted to make a game from the comfort of your bedroom, only spending a few hundred bucks, it could do it. By this era, many game magazines were sprouting everywhere, and they used to come packed with easy codes to make simple games. Kids would take these codes and make these games, but them, they would learn how to make these games and started to make more complex ones, and with time, they would even sell them in small computer shops. That was the “Bedroom Coders Boom”, which jump started the pc gaming. Many of those coders would grow up and open their own company to make games with it.
Skipping a few more years, now the AI’s are the big new thing, and they still are. With an AI, the human can program what the machine has to do, but not the order, the machine does the “thinking” and sticks the different processes together. For example, you program a NPC in your game to search, attack, and stand still. Previously, you would have to design a behavior tree or states machine, and this NPC would follow exactly as told, but with and AI, the machine knows that it can attack, search, and stand still, and it will perform those actions as it wants/seems fit. Of course, we still use behavior trees and state machine, for AI consumes a lot of processing power, but it isn’t impossible to use artificial intelligence in your game, you only have to know how to optimize it, or use only with key elements and such
Another upgrade in AI is the machine learn. Machine Learn is an algorithm that, at first, knows less than John Snow, but, as the name says, it learns how to perform different tasks by trial and error. The machine learn algorithm will seek different answers to the same problem, and will learn which one gave it the right answer, and made everything work fine, and, if the previous right one doesn’t work, then it’ll try other ones.
An upgrade on the Machine Learn is the cognitive computing. Cognitive Computing is a new take that blends AI and Machine Learn in a simple way. The computer learns through human inputs, be it direct or indirect, and then it utilizes it in an AI way, but when some answer is the right one, the algorithm learns and utilizes it. It is a hard concept to explain, but all in all, It’s AI and Machine Learn, blended into one thing that uses the full capabilities of both.
The thing is, in games, we have the AI, which has a series of tasks to perform, in a same pattern, or as it seems fit. Because of it, we can balance games, and make them fun. If the machine always outplays you, you’d never have any fun out of it, it would be simply frustrating. By using AI, we tell the NPC what he’s able to do, and when, so it becomes a way of limiting the gameplay, making it viable for the player to overcome the challenges imposed by the game design.
But what if we add Cognitive Computing?
I was thinking about it, imagine a game where every NPC uses Cognitive Computing. Sounds easy enough, right? You would only program it to collide with stuff, who to hit, when it wins or loses, and, most importantly, you’d have to program it to learn and try new stuff. Of course, saying it like this, sounds like though job, and it is, but once you made the code, every other character would use this very same code. But the problem is: how would you balance it?
Let’s use Batman Arkham Knight as an example. When trying to bust Two-Face, Batman gets locked in banks, and has to take out all armed goons before proceeding. It is a really fun thing to do, and has just enough challenge so that it is frustrating and fun, but, let’s say you add this Cognitive Computing to every NPC inside those banks. Maybe you’d be able to take out two or three guys, but then, they would start to notice you’re always above them, and that you target individuals who are alone. They would notice you try to lure them into traps but making noises, that you always come from behind, and that your multi-takedown can only take so many guys before it needs a recharge. By piecing it together, enemies now stay in a corner, still, backs to the wall, half looking up, half looking down, guns always ready, because, even if you jam them, the Cognitive Computing algorithm now knows you can jam guns, and the goons check it every fifteen seconds.
Now you’re stuck. Trapped because of your own doing, not a mistake, it’s just that the enemies are so intelligent, that you can’t do anything about it.
When I first thought about it, I was like “this is the future of computers and jobs, but also the future of games!”, but, seconds later I thought the problems it could bring, and then, I wasn’t so sure anymore. But then I thought again “what if we use only in specific things?”, and that’s where lies the key, I think.
See, let’s use the same example as before. In the last bank, Two-Face himself joins the party to put an end to Batman. What if only Two-Face had Cognitive Computing? Every other enemy has their normal AI, where they walk around, if they see Batman they’ll scream and shoot and act scared. If they notice you hang guys too much, or if they see you too much, they start to shoot the vantage points, things like that. But Two-Face will learn with everything you do, and will start to use new strategies and solutions to kill the Bat. He probably won’t just stand in the corner, for a single shot of his gun isn’t enough to kill Batman, and that’s all he can score before batman kicks both of his faces, so he will, probably, try different strategies all the time.
And maybe, that’s the perfect balance.
Maybe Cognitive Computing is the future of games, but not the definitive future. We’ll have to use it in balance with other, older technologies, so that we can still make games balanced and fun, but adding more difficult to it, and also a touch of improvisation.