A.I. all the Way

The same image twice in a row is poor form, so welcome back, irrelevant fish image #2.

You know how there are many games out there that give you annoyingly weak A.I. partners, or enemies that are incompetent one second and hyper-competent the next? I think I’ve just experienced what the developers of those games experience when making A.I.

You see, I decided to make working A.I. for the partner characters next, so I did. Now they chase after enemies who are close enough, and fire off their ranged attacks with their “Target” parameter set to the closest enemy’s position. The partners just teleport directly to a position right behind the player if you get more than 100 character’s lengths away.

Note that I don’t make them run away from enemies when surrounded or low on health, and they don’t even take any enemy other than the closest into account, so any attacks that hit multiple opponents are pure coincidence. I did, however, enforce a delay of half a second between attacks (a tenth of a second for Haidrow and base form Ruyo) and prevented attack attempts without sufficient stamina, since otherwise they’d burn through all of their stamina on the nearest enemy as soon as one came into view and have none left. That said, I temporarily removed the flight ability from the partner so I could tweak it.

The partner character proceeded to sweep the entire level on the first test, while all I needed to do to prod it along was move around so it would pick up an enemy in range and start firing. Since I imposed the time restriction onto its attacks, it never ran low on stamina (which is a good thing – you don’t want to have to switch into a character with no stamina). Its aim was perfect for all attacks, so its hit rate when not acting as Haidrow exceeded 90% (the remaining 10% was mostly redundant attacks that were fired off because the first hadn’t hit the opponent within the half-second waiting period). When acting as Haidrow, missing was common, but only because attacks were fired off in quick succession at the same target (as intended), and the attack range was small enough to miss if enemies were jumping or otherwise making significant changes to their position after the attack was sent off.

I suppose, at least, I have successfully made the A.I. partners competent (in terms of what capabilities are coded in so far), though that’s a massive understatement, so the question then becomes whether or not this problem’s actually a problem. The thing is, while actually being helpful seems like a blasphemous thing when you’re referring to A.I. team-mates, that’s just conditioning from the failures of others, not an actual requirement. Plus the deliberate skimping I’ve done in coding in these behaviours (some of which I noted already) makes it so the partners still aren’t as smart as a hypothetical actual person would be, and the enforced attack delay means that everything the partner can do can be done in the same or a better way by an actual person, aside from how the A.I. has perfect aim, which I’m considering leaving in to offset this.

The A.I. being a viable replacement for a human being doesn’t seem like a problem to me, so long as the levels are made with two players in mind instead of making them for one player and having the A.I. be incompetent as sin. Basically, what many would see as overpowered A.I. is what I simply see as something that needs a different design philosophy than other games. Simple enough, right? I mean, the game is practically begging for co-op functionality between two humans, with the exception of how the Sync system would make it less than ideal, so why not make the A.I. as good as another human?

Turtles all the Way will be a single-player co-op game, so this comes with the territory.