Blog Blog Post Uncategorized

Atavism Dev Log 11 – Tribesman Combat AI Progress

AI KInda

Week 11: March 15-21

It’s still Wednesday somewhere in the world, which means it’s time to share what I did over the past 7 days – this time from a hotel in San Francisco. I talk a little about the AI’s current capabilities and what I hope to accomplish next.

Breath Beneath Barren Bones

I ended up with generally the same AI plan as discussed in the previous blog: the Consensus (squad controller) component holds references to each Anima (unit) that it’s responsible for, granting attack permissions and overseeing squad-related states and conditions autonomously. The individual Animas now differ slightly, however, being much more autonomous in their state changes and entirely self-thinking on their movement in relation to the player.

This change was mostly inspired by this article on battle-circle AI, which I’m roughly implementing the concept of as a foundation for my melee units. Translating the concepts here from 2D phyics-manipulated code stacks to 3D state-oriented navmesh scripts hasn’t been easy, but I’m making fair progress – the results of which should be generic enough for reuse with little hassle.

The color around them indicates their state – currently a light red indicating that they’re seeking to close into a combat range of the player. The red line indicates their current destination, which is set to their attack range away from the FPS controller.

The article basically lays out the AI around the player as something that is seeking to get close and attack – where the AI strafes around and avoids other units before being granted permission. Currently, I’ve got the AI able to consistently switch into combat and follow the player convincingly out to a defined distance from any angle, but finishing their avoidance requires a bit more work. They are able to choose attacks on intervals, however, up to a defined maximum of units attacking at once.

Next Week

Despite the larger-than-usual amount of hours I worked this week, the above doesn’t feel like much progress, which leaves me wanting to get the rest of the AI out faster. This isn’t the kind of work, however, that gives really fast turn around until it’s in a usable state, so while it’s a tough build right now getting all the moving parts working in some form, the polish afterwards will be a lot more fulfilling. After I get combat AI done, I’ll be working on the watching/walking idle AI for the tribes, as well as synching the animations to the AI along with getting the upper bodies to follow the player (a much bigger task that I’m not really familiar with).

I am, however, at GDC. The first day has passed, and while I’ll talk more about my experience in the next blog, it’s been a lot of fun so far and I’m looking forward to the Unity keynotes and Advocacy talks over the next two days.

The next blog might be either a little sparse or a little late, depending on my mood. We’re flying back on Saturday, which is my normal working day, so I won’t be able to do much, and that’s followed up by moving back into the college dorms on Sunday. Expect something short or something unrelated to AI, but fair warning.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s