Artificial Intelligence Depot
Visiting guest. Why not sign in?
News, knowledge and discussion for the AI enthusiast.
FEATURES COMMUNITY KNOWLEDGE SEARCH  
Multiagent Systems
The first comprehensive introduction to multiagent systems and contemporary distributed artificial intelligence suitable as a textbook, providing detailed coverage of basic topics as well as several closely related ones.
More information at Amazon US UK

Reply to Message

Not registered yet?

The AI Depot has a focused community of friendly users. Rather than let anyone abuse the site at the brink of promiscuity, we prefer to let only those with an active interest participate... this simply requires registering.

Why not sign up!

Joining the site's community is completely free. You can then post messages freely, and customise your personal profile at will. Specific privileges will also be granted to you, like being able to access printer-friendly articles without restrictions. So, why not register?

Username:
Password:
Subject:
Email me when someone replies.
Body:

Parent Message

Navigation functions

The source code of Q3 seems to contain a lot of navigation functions, which seem to be of high level like. They can be found in be_ai_move.h file. Their code is in fact not present in the distribution. These functions seems to command the pathfinder :
- Move to a goal with BotMoveToGoal
- Move in a direction with BotMoveInDirection
- Avoid a place with BotAddAvoidSpot
- General movestate functions
It should be really interesting to test these functions in a bot !
Some higher level functions can be found in ai_demq3.c. These functions use the precedent ones to manage the bot behavior (choose weapon, attack, navigate). They can be modified for minor changes...

7 posts.
Thursday 23 May, 07:33
Reply
Bot movestate

In my opinion, you have to do this first :
-Alloc a move state with BotAllocMoveState
-Initialize this movestate with BotInitMoveState
Then you can use other functions. For example BotAddAvoidSpot add an area to avoid during the compiutation of your path (this is done for you by the main engine of Q3). You have to specify :
-the movestate you want to modify (cf the one you create)
-the center coordinates of the area you want to avoid
-the radius of this area
-the type of action you want to use on this area :
// avoid spot types
#define AVOID_CLEAR 0 //clear all avoid spots
#define AVOID_ALWAYS 1 //avoid always
#define AVOID_DONTBLOCK 2 //never totally block
If you have any information...

7 posts.
Tuesday 04 June, 04:30
Reply

Back to the Artificial Intelligence Depot.