Making Enemy AI Feel Less Mathematical

by Bryce Evans | Sep 17, 2026 | A Watcher In The Dark, Game Design | 0 comments

When I first started working on the enemy AI for this project, I approached it in probably the most literal way possible.

Destinations. Alert states. Cones of vision. Sightlines. Distances. Conditions for entering and leaving different modes.

It all made sense on paper.

The enemy could see the player if they were inside a certain area. The enemy could move toward a destination. The enemy could become alerted, investigate something, return to a patrol, and so on.

The problem was that "technically correct" AI is not necessarily fun AI.

I quickly found myself massaging the rules constantly. A sightline that made perfect mathematical sense could result in the enemy noticing the player a little too quickly. A patrol route that was completely logical could create a frustrating situation where the player had no reasonable opportunity to move. An alert state could technically be working exactly as intended while still completely ruining the pacing of a scene.

A surprising amount of the work has ended up being about creating space between what the AI can do and what it should do.

Part of that is fairness. The player needs to be able to recognize patterns and use them to make decisions. If an enemy always behaves completely unpredictably, there's not much strategy involved. You can't learn something that has no discernible pattern.

But at the same time, perfectly predictable behavior doesn't feel particularly believable either.

The player needs to see enough randomness to make the enemy feel like it's actually responding to the world rather than following a giant flowchart.

Finding that line has been much harder than I expected.

I've become particularly interested in the little imperfections: slight variations in timing, unexpected decisions, moments where an enemy doesn't react exactly the way you thought it would. Those things can make the behavior feel much more natural, but they also have to be carefully constrained so that the player never feels like the game simply cheated them.

It's given me a much greater appreciation for the work that goes into enemy design and implementation in games like Metal Gear Solid. What looks like a simple AI behavior from the player's perspective can involve an enormous amount of invisible tuning to make it feel fair, readable, and believable at the same time.

I'm still working on finding that balance.

It turns out making an enemy intelligent is one problem.

Making it feel intelligent is another.