by date
AI engine shaping up
AI engine shaping up
| Name: | Mathieu Marquis-Bolduc | |
|---|---|---|
| Date Posted: | Jun 19, 2006 | |
| Rating: | Not Rated | |
| Public: | YES | |
| Comments: | YES | |
| RSS Feed: | or Subscribe with . | |
| Profile Page: | View profile page for Mathieu Marquis-Bolduc |
Blog post
Well, I had a 3-pages blog entry written, but that was before I found out you should NOT use accents, it erases the whole thing. So Im just gonna sum it up...
My AI decision-making engine is going on pretty well. I now have a demo of 6 korks playing touch football. Their behavior is described in a XML feed. The Torque engine sends gameplay events and information to the AI engine, who apply this information to the behavior rules, and reacts by updating each agent's goal stack and executing actions in the Torque Engine. Right now in the demo, those actions are mainly activating steering behaviors to make the players go around.
The AI engine is finally using variables, which was a huge milestone. I can now have behavior rules that reads like "Protect X against Y if X have the ball and Y is running toward X". X and Y can be anything, as long as you can express it in a 32 bit value. The engine never actually interpret those symbols, it just pass them back and forth to the game engine.
After I improve that demo a bit, there is two features I want to implement in the AI engine. First, verbatim. I want the AI agents to be able to explain, if asked, why they decided to perform an action. That shouldnt be too hard. Next, I want to implement behavior inheritance. For example, you could describe the behavior class "dog", and the behavior class "football player". Then, you will be able to create an agent that mixes both behavior class. You will then get a dog that plays football. Or an agent that plays football like a dog ;)
My AI decision-making engine is going on pretty well. I now have a demo of 6 korks playing touch football. Their behavior is described in a XML feed. The Torque engine sends gameplay events and information to the AI engine, who apply this information to the behavior rules, and reacts by updating each agent's goal stack and executing actions in the Torque Engine. Right now in the demo, those actions are mainly activating steering behaviors to make the players go around.
The AI engine is finally using variables, which was a huge milestone. I can now have behavior rules that reads like "Protect X against Y if X have the ball and Y is running toward X". X and Y can be anything, as long as you can express it in a 32 bit value. The engine never actually interpret those symbols, it just pass them back and forth to the game engine.
After I improve that demo a bit, there is two features I want to implement in the AI engine. First, verbatim. I want the AI agents to be able to explain, if asked, why they decided to perform an action. That shouldnt be too hard. Next, I want to implement behavior inheritance. For example, you could describe the behavior class "dog", and the behavior class "football player". Then, you will be able to create an agent that mixes both behavior class. You will then get a dog that plays football. Or an agent that plays football like a dog ;)
Recent Blog Posts
| List: | 02/07/07 - The long path to AI 09/23/06 - Planner AI video demo 06/24/06 - Football AI demo movie 06/19/06 - AI engine shaping up 05/12/06 - Catch the ball 03/05/06 - Row Row Row the boat... (he's gonna need one) 03/20/05 - Plan for Mathieu Marquis-Bolduc |
|---|
Submit your own resources!| Ramen-sama (Jun 20, 2006 at 02:37 GMT) |
| Travis Wood (Jun 20, 2006 at 04:43 GMT) |
| Anthony Fullmer (Jun 20, 2006 at 06:02 GMT) |
| Ben Ewing (Jun 20, 2006 at 06:31 GMT) |
| Mathieu Marquis-Bolduc (Jun 20, 2006 at 13:07 GMT) |
When they are all tested, I might put the Steering Behaviors up as a ressource. Took me only about an hour to code the ones I needed in Torque Script.
In theory, it can work with any engine, I designed it for that. You'll need to expose the game engine to the AI engine, of course. Currently, I have choice of using function pointers or abstract pointers for that. For Torque I made some utility functions to directly expose functions in torque script, so few C++ code is needed if you dont want it.
When the demo is satisfactory to me, I promise I will put it up for you to try :) The behaviors are much too basic yet...
| Tom Bentz (Jun 20, 2006 at 16:19 GMT) |
| Alan Hembra (Jun 20, 2006 at 20:01 GMT) |
Your AI is sounding better and better all the time!
| Mathieu Marquis-Bolduc (Jun 23, 2006 at 20:25 GMT) |
Have a nice 24th of June!
| John Kanalakis (Aug 16, 2006 at 07:33 GMT) |
Edited on Aug 16, 2006 17:45 GMT
You must be a member and be logged in to either append comments or rate this resource.


Not Rated


