Artificial Intelligence, or Acute Idiocity? There’s a lot of fun to be had making AI and it’s actually very easy for an experienced programmer like me to invent AI that is foolproof and able to dodge your every attack while ensuring it can kill you. At Simian Squared, I’ve spent many late nights devising the perfect blend of AI, and observing my pet cats… although to be honest, I think they were observing me!
But AI is an interesting subject. Make them too smart and it becomes tiring…. make it too stupid and it becomes predictable. Instead for games, the best AI is “entertaining” AI. It must always behave interesting and make you play a little bit different for each creature, it is how you make the game or break the game.
I actually felt that the most important part for the AI in The Other Brothers would be to make the AI force the player to Play Different. Play Different is a motto of mine when it comes to playability and game mechanics. I love to make the player use the same controls, but react and act differently in response to situations the game throws up.
As you can see in the above screenshot, it shows ratty, he has a red box surrounding him which allows the level designers to change his ‘Aggro Range’ – the range in which he will get extremely annoyed with you!
The yellow line indicates the patrol route. Both are adjustable, so you can have rats which patrol a very long way, or rats that can’t see very far. The designer is able to change the tint of any creature as well as change these properties. Best of all, every property in the AI is animatable…! So without the programmer being present, it’s possible for an artist or level designer to create a virtually unlimited amount of behaviour from a simple set of behaviours. I try to discourage them though. A level designer out of control is a terrifying thing for a programmer to witness!
Each creature in TOB has 3 difficulty levels the designer can pick from. There’s stupid, average and smart. This is adjusted in the code on a per-creature basis (it’s a lot of work!) but it’s worth it because you don’t want every creature to behave the same. For example stupid dogs can’t spot you creeping up behind them, but average dogs can. Smart dogs may even avoid your stomp attacks from time to time…
It’s important to have a “controlled random fury” going on with the numbers. In my AI, the system is constantly fed inputs with random variation. The player might be close, but it has a little random fudge to it as the enemy might not judge if you’re perfectly close enough to have a nibble on. Likewise this is present for their movement behaviour.
Sometimes random numbers fight random numbers which are fed in as a fudge for a normal sensory input, which makes it feel like it is making decisions (it actually is) but sometimes it will not always be a good decision.
It was important to slow down how often enemies make decisions. This is known as the time it takes to change your mind. This also has a little random edge to it as well. Nothing is completely random at all, it is merely taking a cold logical true or false, and giving it shades of grey for exciting variation.
Emotion and Logic
Each creature has a boredom level as well. If you keep diddling around it will get bored of your pranks and wander back off… maybe. Don’t be surprised if a smart one pretends to lose interest and walk off…
After all what is more fun to fight: spock or the hulk? Spock would grip you or distract you (yawn) but the Hulk has random fury and will smash the place up, you could slip away or Hulk could get distracted by a cheeseburger. You just don’t know.
Above all, the AI in TOB is very much interested in giving the player a good time rather than being infallable. It’s entertaining AI, not stressful AI. And every single creature is different.