informa
2 min read
article

AI is Voodoo

I've been programming for 34 years now. I have never had something like this happen before.

(Originally from onemanmmo.com)

I've been programming for 34 years now. I have never had something like this happen before.

I was working on a feature for the AI for the units in my little RTS game The Imperial Realm::Miranda. If the AI decides to move to attack an enemy, I want it to return to its original location afterwards so units don't just wander off whenever an enemy comes by.

To implement this, after a unit is downloaded to the client, I save the unit's home position so it knows where to go back to. With an existing unit exactly nothing happens then -- just like I planned it.

A brand new unit's Y location isn't actually set to a good value when it is downloaded, (shortly after it is downloaded, some other code on the client sets the Y value to place the new unit at the right height above the terrain.) The first time the AI wakes up and looks for something to do, it sees the change in Y and as far as it is concerned, the unit has moved from its home. The AI then tries to move the unit back to its home location (where it actually is already) however, as part of the process of moving to its destination, it does a collision check to make sure that the destination it is moving to doesn't have any other units on it. If its destination is blocked it will move to the nearest clear location.

I had another feature on my task list which said:

Make new units find a good position to park instead of just appearing on top of one another in front of the war factory.

A bug in the AI does that for me now completely for free!

The first time a unit moved aside after creation I was completely astonished.

AI is voodoo.

Latest Jobs

Treyarch

Playa Vista, California
6.20.22
Audio Engineer

Digital Extremes

London, Ontario, Canada
6.20.22
Communications Director

High Moon Studios

Carlsbad, California
6.20.22
Senior Producer

Build a Rocket Boy Games

Edinburgh, Scotland
6.20.22
Lead UI Programmer
More Jobs   

CONNECT WITH US

Register for a
Subscribe to
Follow us

Game Developer Account

Game Developer Newsletter

@gamedevdotcom

Register for a

Game Developer Account

Gain full access to resources (events, white paper, webinars, reports, etc)
Single sign-on to all Informa products

Register
Subscribe to

Game Developer Newsletter

Get daily Game Developer top stories every morning straight into your inbox

Subscribe
Follow us

@gamedevdotcom

Follow us @gamedevdotcom to stay up-to-date with the latest news & insider information about events & more