Plan for Dee
by Dee · 10/12/2005 (4:16 pm) · 8 comments
Funny how so much is coming out with Torque in such a short time frame...
Seems you start working on something and finish around the same time as so many others.
Well, I'm thinking this might mesh with some other projects, as it's not really bound specifically to one implementation, or genre, so I'll finish up and see : )
Some of the doc preamble so far:
Really brief
- C++ and Torque script AI framework for a Manager/Agent and Radius triggered implementation of AI, combined with Finite State Machine (FSM) methodology...plus some other goodies : )
Not so detailed, but not so brief
- AI State Manager class to smoothly execute and manage changing of states (actions) (C++)
- AI Marker class to easily add AI Players to the game via the Torque World Editor (C++ & script)
- AI Manager class to 'manage' and 'direct' the AI Players (C++)
- Modified AI PlayerE class to integrate the above items (C++)
- Definable 'Action' radiuses to trigger state changes based on distance w/optional LOS use (C++)
- Built in Attack, Follow and Avoid actions with adjustable/combinable radiuses w/optional LOS use (C++)
- Ready to run (with source code) action examples of:
Dijkstra Way Point Path find/follow (C++)
Path Point Follow (C++)
Watch Player (C++)
Play/Repeat Sounds (C++ -> script callback)
Play/Repeat Specific Animation (C++ -> script callback)
Goto Specific Object (C++)
Etc.
Now, let's get down to business!
Let's quickly break down the pieces of the puzzle a little further.
AI Manager class (AIManager.*)
- Designed to hold the action radius, actions etc. settings for use by an AI Player assigned to it
- Designed to allow quick personality changes (i.e. when you're in a building, xxx is important at that distance, when outside, maybe yyy would be more appropriate, given the space)
- * Simply pointing an AI Player to a new AI Manager, will cause the AI to use all the new settings from the new AI Manager, immediately
- Provides console calls for 'on the fly' settings/changes
AI Marker class (AIManagerMarker.*)
- Designed to allow addition of AI Players and AI Managers to the game via the Torque World Editor
- Designed to allow initial settings of the AI Managers action radii, items and actual actions, to be done via the World Inspector
- As it's tied to the AI Manager directly, most changes take effect immediately, allowing real time feedback
AI State Manager class (AIStateManager.*)
- Multiple AI State Managers may exist
- AI State Managers can be assigned to different AI Player classes
- Designed to manage the smooth and consistent transition of states through use of
'Enter->Execute->Exit' methodology
- Each 'Change state' request performs the previous states 'exit' then the New states 'enter'
- C++ functions designed to run the enter, execute and exit code
- Provides script callbacks for enter, execute and exit phases of each state
- Provides console calls for main State change functions
AI PlayerE class (AIPlayerE.*)
- Updated/modified to work with the AI State Manager & AI Manager
- Some basic script functions have been rolled back into C++ calls, for both script and C++ use
- Provides the usual and additional script callbacks
- Provides the usual and additional console calls
Example Actions (AIWayPoint.*, ):
- These are described further in the document, and additional specific detail is commented in the actual code.
Seems you start working on something and finish around the same time as so many others.
Well, I'm thinking this might mesh with some other projects, as it's not really bound specifically to one implementation, or genre, so I'll finish up and see : )
Some of the doc preamble so far:
Really brief
- C++ and Torque script AI framework for a Manager/Agent and Radius triggered implementation of AI, combined with Finite State Machine (FSM) methodology...plus some other goodies : )
Not so detailed, but not so brief
- AI State Manager class to smoothly execute and manage changing of states (actions) (C++)
- AI Marker class to easily add AI Players to the game via the Torque World Editor (C++ & script)
- AI Manager class to 'manage' and 'direct' the AI Players (C++)
- Modified AI PlayerE class to integrate the above items (C++)
- Definable 'Action' radiuses to trigger state changes based on distance w/optional LOS use (C++)
- Built in Attack, Follow and Avoid actions with adjustable/combinable radiuses w/optional LOS use (C++)
- Ready to run (with source code) action examples of:
Dijkstra Way Point Path find/follow (C++)
Path Point Follow (C++)
Watch Player (C++)
Play/Repeat Sounds (C++ -> script callback)
Play/Repeat Specific Animation (C++ -> script callback)
Goto Specific Object (C++)
Etc.
Now, let's get down to business!
Let's quickly break down the pieces of the puzzle a little further.
AI Manager class (AIManager.*)
- Designed to hold the action radius, actions etc. settings for use by an AI Player assigned to it
- Designed to allow quick personality changes (i.e. when you're in a building, xxx is important at that distance, when outside, maybe yyy would be more appropriate, given the space)
- * Simply pointing an AI Player to a new AI Manager, will cause the AI to use all the new settings from the new AI Manager, immediately
- Provides console calls for 'on the fly' settings/changes
AI Marker class (AIManagerMarker.*)
- Designed to allow addition of AI Players and AI Managers to the game via the Torque World Editor
- Designed to allow initial settings of the AI Managers action radii, items and actual actions, to be done via the World Inspector
- As it's tied to the AI Manager directly, most changes take effect immediately, allowing real time feedback
AI State Manager class (AIStateManager.*)
- Multiple AI State Managers may exist
- AI State Managers can be assigned to different AI Player classes
- Designed to manage the smooth and consistent transition of states through use of
'Enter->Execute->Exit' methodology
- Each 'Change state' request performs the previous states 'exit' then the New states 'enter'
- C++ functions designed to run the enter, execute and exit code
- Provides script callbacks for enter, execute and exit phases of each state
- Provides console calls for main State change functions
AI PlayerE class (AIPlayerE.*)
- Updated/modified to work with the AI State Manager & AI Manager
- Some basic script functions have been rolled back into C++ calls, for both script and C++ use
- Provides the usual and additional script callbacks
- Provides the usual and additional console calls
Example Actions (AIWayPoint.*, ):
- These are described further in the document, and additional specific detail is commented in the actual code.
About the author
#2
are you thinking to share your AI Pack ? and make it as resource? or sell it to the public?
10/12/2005 (5:21 pm)
greate work Dee :)are you thinking to share your AI Pack ? and make it as resource? or sell it to the public?
#3
10/12/2005 (6:17 pm)
Very cool! Is this for 1.3 or 1.4?
#4
Please make sure that you get in contact with Josh Williams if you haven't already to discuss your plans for this!
10/12/2005 (6:19 pm)
This is sounding really, really amazing man!Please make sure that you get in contact with Josh Williams if you haven't already to discuss your plans for this!
#5
10/13/2005 (3:29 am)
Great work Dee !! Can't wait to see it in action !
#6
@Grugin - will likely post a demo + overview docs, in a bit
10/13/2005 (9:52 pm)
@Firas - likely sell@Grugin - will likely post a demo + overview docs, in a bit
#7
and is your AI system work in interior ?
and what about avoiding obstacles?
10/14/2005 (12:32 pm)
Dee colud you tell us about waypoint, and will there be a terrain analysis tool to analyze and distibute the wayponits ?and is your AI system work in interior ?
and what about avoiding obstacles?
#8
Read the latest doc here for a basic overview:
http://www.bullpendesignstudios.com/AI_C_F_P_draft5.zip
No terrain analysis for distribution today...but I like the idea...will slate for future dev
Yes, works in interior.
Avoiding obstacles automatically, no, based on waypoints currently, or direct line.
The first focus was to create/provide a solid framework & base.
The goal was to design a robust/easily expandable AI frame to work with & build upon.
Thus the State, Manager & Radius design.
The second focus was to add some common AI items as (usable) examples of how to utilize the framework, and easily expand upon it.
The third focus is to release a demo to the community, for review, criticism, although without seeing 'behind the scenes' some of the real power of the framework may not be noticeable.
The final focus is to release now/soon, so people can utilize right away, and enhance/add all the glitter over the coming weeks.
10/18/2005 (1:31 pm)
@FirasRead the latest doc here for a basic overview:
http://www.bullpendesignstudios.com/AI_C_F_P_draft5.zip
No terrain analysis for distribution today...but I like the idea...will slate for future dev
Yes, works in interior.
Avoiding obstacles automatically, no, based on waypoints currently, or direct line.
The first focus was to create/provide a solid framework & base.
The goal was to design a robust/easily expandable AI frame to work with & build upon.
Thus the State, Manager & Radius design.
The second focus was to add some common AI items as (usable) examples of how to utilize the framework, and easily expand upon it.
The third focus is to release a demo to the community, for review, criticism, although without seeing 'behind the scenes' some of the real power of the framework may not be noticeable.
The final focus is to release now/soon, so people can utilize right away, and enhance/add all the glitter over the coming weeks.

Torque Owner Chris Byars
Ion Productions