AI Culling

Started by
1 comment, last by strangebreed 23 years, 3 months ago
I''m interested to hear about any AI "culling" methods people here are employing in games. I’m thinking specifically about the “Shemue” style of AI rather than “BOT” AI in games like Quake and Unreal. BOT’s traditionally need to be active in the world at all times, but in a game like Shenmue a lot of AI is static, (or statically triggered), in nature and so can be culled from a VLW, (very large world). Is anyone using a similar mapping system to a rendering pipeline, (like oct-trees, scene-graphs or other spatial system), to cull AI from a VLW? Also, what do people think about time based culling, (like Tribes), where AI furthest from the camera is time-sampled to run at a lower update rate? ---Strange
---Strange
Advertisement
I''ve been developing, mostly in my head or various scraps of paper scattered all throughout my work area, the idea of a tree based AI system, whereby characters are grouped in a simple hierarchy. Each branch of the tree inherits the average values of their members. Similar to time culling, when a group of AI''s are far enough from the player, they are forgotten as individual objects and the AI instead works on the branch that represents them all. So rather than having your bots go stupid at a distance, they go similar, or average. Whether that''s advantageous for you or not depends on what applications you''re using it in.

Because the branch represents the average of all its members, the AI simulation can still progress, but with less CPU and memory usage (the exact state of each individual member of the branch can be dumped to a temp area on disk).

Unfortunately this idea is a rather vague concept - at present, at least - and the specifics of the game effect how it works exactly. It works very simply for strategy games, where a branch would be a squad, and when they''re not near you, you don''t need to deal with the individual movements of the whole thing, but simply the overall movement of the squad. The difficulty comes when you have to resolve the branch back to its individual members, and update them appropriately. For a simple squad, that might only involve placing them within the squad''s new location, but for other applications it becomes a lot more difficult.

As I''ve stressed, the idea doesn''t work easily for everything, but if you can post more details of what you''re working on, I could post more specific details.

Also, if anyone has any comments on this concept, I''d love to receive them. I''ve been contemplating this system for months now, in anticipation of using it in an upcoming project, so I''d greatly appreciate anyone pointing out the problems ahead of time.
Your plan sounds pretty cool for RTS style games. You’re basically breaking AI down into larger groups as they move father from the camera. I think that makes sense, especially for a game where your AI is grouped, (like squads in C&C/Warcraft/TA:K).

What happens when you travel away from a squad, the AI starts treating the squad as a group, then you get close to them again and they become individual avatars again?

Do you locally randomize their positions slightly to make them look like they’ve been moving individually?

Also, have you thought about multiplayer?

What happens when one players ’camera’ is near one squad that is actually faraway from another multi-player camera? In that scheme it’d be pretty hard to have one client updating in squad mode, and another updating in avatar mode.



---Strange

---Strange

This topic is closed to new replies.

Advertisement