AI tools pool
by Mathieu Marquis-Bolduc · in Technical Issues · 09/20/2006 (8:21 am) · 30 replies
Hi!
As some of you knows, I am currently completing two high-level AI systems to be offered in a Torque AI toolkit (not to be confused with the Torque AI pack). One is a goal-oriented agent decision system. The other is to be presented 'soon' ;). These two will form version 1.0 of my toolkit.
To get a nice view ahead, I would like to know what kind of AI tools people would be interested to get in future versions. Not things you think are cool, but things you would actually use as of now.
Here are some suggestions. You can cast a vote for a suggestion, or make one of your own!
-Blackboard tool for AI systems coordination
-A tool to predict player actions
-A steering behavior tool
-A pathfinding tool for exteriors
-A pathfinding tool for interiors
-A tool to evaluated tactical positions (e.g., finding cover)
Thank you for your valuable input! I hope my tools will be of help to you in a near future.
As some of you knows, I am currently completing two high-level AI systems to be offered in a Torque AI toolkit (not to be confused with the Torque AI pack). One is a goal-oriented agent decision system. The other is to be presented 'soon' ;). These two will form version 1.0 of my toolkit.
To get a nice view ahead, I would like to know what kind of AI tools people would be interested to get in future versions. Not things you think are cool, but things you would actually use as of now.
Here are some suggestions. You can cast a vote for a suggestion, or make one of your own!
-Blackboard tool for AI systems coordination
-A tool to predict player actions
-A steering behavior tool
-A pathfinding tool for exteriors
-A pathfinding tool for interiors
-A tool to evaluated tactical positions (e.g., finding cover)
Thank you for your valuable input! I hope my tools will be of help to you in a near future.
#2
09/21/2006 (2:17 pm)
I would like to see something like this. Place the dts model in the mission by using world editor and assign AI types in the properties. That way you can assign whatever you want. NPC, Sniper, Wizard, and attacking animal or etc. Similiar to game studio, place model and assign everything in the properties. Some will probably say this too much to do. If it is then why have others done it.
#3
@Michael, that could very easily be done using the two systems I already implemented, as behaviors are regrouped in classes. When you register the agent ("NPC") with one of my main AI systems, you simply select the behavior class you want (wizard, sniper, coward, etc). The main problem is that AI agents are rarely selected in the mission editor, they are rather spawned as the need arise. The simplest way would be to add the behavior class as a property of the datablock of your agents (NPCS). Then if you place them statically in the mission editor, or when you spawn them dynamically at run time, just select the correct datablock and then it will act with the proper behavior.
09/21/2006 (2:44 pm)
@Mike, I am pretty sure there is an AIPatrol resource that does that or something similar. Its quite trivial.@Michael, that could very easily be done using the two systems I already implemented, as behaviors are regrouped in classes. When you register the agent ("NPC") with one of my main AI systems, you simply select the behavior class you want (wizard, sniper, coward, etc). The main problem is that AI agents are rarely selected in the mission editor, they are rather spawned as the need arise. The simplest way would be to add the behavior class as a property of the datablock of your agents (NPCS). Then if you place them statically in the mission editor, or when you spawn them dynamically at run time, just select the correct datablock and then it will act with the proper behavior.
#4
I am curious what algorithm you will be using to determine steering angle.
09/21/2006 (3:02 pm)
Quote:-A steering behavior tool
I am curious what algorithm you will be using to determine steering angle.
#5
09/21/2006 (4:54 pm)
Yes I used Aiguard and aipatrol. I like your idea Mathieu. I will be looking forward to your Ai Tools. Thanks! The problem is I am more of artist then coder but do very well apply codes from resource and scripting.
#6
09/22/2006 (7:56 pm)
How about a Grouping system, where you have one batch of NPC's that can have generic properties assigned to them that interact with eachother.
#7
Nick
09/23/2006 (4:43 am)
Looking forward to your toolkit Mathieu. In my opinion, none of these can by exploited properly in a game if interior/exterior pathfinding isn't in place so my vote goes to pathfinding before anything else.Nick
#8
I have a bit different approach when it comes to that. I dont think the way it was implemented in the original boids demo is ideal for most games. I prefer to see movement as a sum of steering than having steering modify the current movement...
@Mincetro, Could you give an example?
@Nick, Alright, thanks for your input :)
09/26/2006 (8:23 am)
@Badguy, I have a bit different approach when it comes to that. I dont think the way it was implemented in the original boids demo is ideal for most games. I prefer to see movement as a sum of steering than having steering modify the current movement...
@Mincetro, Could you give an example?
@Nick, Alright, thanks for your input :)
#9
09/26/2006 (8:31 am)
What ever happened to the AI pack, Did they decide to drop the project. I thought they were going to give an update this month.
#10
4 personality types with a percentage degree of each type inherited by parents or based upon learned skills from career or selected path chosen for the bot.
The different personalities would interact with each other in the game system and storing long term memory in a different location to a small short term memory. This way bots could know each other etc..
09/27/2006 (4:49 am)
I have a good Idea for AI,4 personality types with a percentage degree of each type inherited by parents or based upon learned skills from career or selected path chosen for the bot.
The different personalities would interact with each other in the game system and storing long term memory in a different location to a small short term memory. This way bots could know each other etc..
#11
@Malcom, that is several different systems working together for a purpose. Non-deterministic behavior inheritance, data-driven behavior, knowledge representation, etc. Is this just an idea, or is it an actual need you have or plan to have?
09/27/2006 (6:00 am)
@Morrie, I really dont know. Phil seems to have been over his head for a while. Not easy being an indie developper...@Malcom, that is several different systems working together for a purpose. Non-deterministic behavior inheritance, data-driven behavior, knowledge representation, etc. Is this just an idea, or is it an actual need you have or plan to have?
#12
09/27/2006 (7:47 am)
Morrie from what I read the AI pack was put on the bakburn for while.
#13
that are scriptiable.
There should be a standard for developing plug-in (drop-in) implementations that will
allow the community to publish neuro-mods.
I would be more than happy to do somthing like this , I'm currently working on a data driven datablock
manager/configuration tool, which can be used to define datablock/effects using screens.
It then exports the datablock code and updates the game.cs etc.
But I need a working implementation of an effeshient neuro-net. I just need a core model to
start with, I can then do the tool. I don't have time right now to research a neuro-net core
from scratch.
decryptoid did a good one, but I dont know what all is envolved with the details.
Thanks,
-Areal
09/28/2006 (1:09 pm)
NEURO-NET implementations that are dynamicly scalable, with polymorphic interfaceingthat are scriptiable.
There should be a standard for developing plug-in (drop-in) implementations that will
allow the community to publish neuro-mods.
I would be more than happy to do somthing like this , I'm currently working on a data driven datablock
manager/configuration tool, which can be used to define datablock/effects using screens.
It then exports the datablock code and updates the game.cs etc.
But I need a working implementation of an effeshient neuro-net. I just need a core model to
start with, I can then do the tool. I don't have time right now to research a neuro-net core
from scratch.
decryptoid did a good one, but I dont know what all is envolved with the details.
Thanks,
-Areal
#14
What is your need? ANN specificaly (why?), an high-level learning tool, or a low-level regression tool?
09/28/2006 (1:27 pm)
@Areal, if you are talking about Artificial Neural Networks, I wont touch that. This thread is not the place for a debate about ANN, lets just say that there are far better options for regression and learning. My goal is to make tools that works and are the simplest to use. If you want to make a game that works, ANN are a waste of time.What is your need? ANN specificaly (why?), an high-level learning tool, or a low-level regression tool?
#15
-Blackboard tool for AI systems coordination
-A tool to predict player actions
-A steering behavior tool
-A pathfinding tool for exteriors
-A pathfinding tool for interiors
-A tool to evaluated tactical positions (e.g., finding cover)
Sounds great to me and I'll definately be acquiring that when it comes out.
I want to add something to this which will fully complete the AI if added.
- AI personality module.
This module will give a bot the abiltity to "appear to think for itself", "appear to learn", "appear to remember people it has met and either like or dislike them" and "appear to exibit individuality". You could switch it on or off based upon what you need for that particular npc.
@Areal: I don't do polymetric and neuro - net terminator style and I get a bit lost around the terminology corner your obviously very intelligent. I've been making games for 20 years and I have toyed with many AI ideas. That data driven datablock is a fantastic idea, good one.
@Mattieu: Excellent work on your AI m8 I think it will go like hot chocolate on a winters night. Preferrably with those marshmallows, mmmmm... to answer your question...
I feel it is both a need for a game I'm doing and also a plan and of course any serious game developer wants realism in the game rather than some dumb thing runing around with a random will fire or will run attached to it based on damage. I'm trying to develop something out of the square and which doesn't need a nasa computer to run.
Introduction to Part of my Algorithm
---------------------------------------------
The individual is multi tier with 7 levels of the character affecting the out comes of decisions, first 3 are;
1. Phyiscial feeling,
2. Emotional feeling,
3. Thoughts
Over view
-------------
The pysical body affects the emotions which affect the mind which really determines our actions. So you have a few emotions that are prone to one of the personality types which will produce an emotion to varying degrees based upon it's intensity. Why do some people have a higher pain tollerance than others?
The thoughts are generated and exposed to the mind, we don't necessarily act on all our thoughts, we see the thought and if it is pumped up with a bit of emotion and physical feeling then there is more of a chance that we will act on it. In fact based on the personality and experiences of the past we all seem to exibit different personalities and as such appear to be individuals.
I can quite easily mimick this for a robust artificial intelligence light weight system. The only problem is to make it so lightweight and fast that having a number of AI in the world won't slow down the engine. I have gotten around this by putting most of the processing work when the character is created and after that he/she lives. 95% of the work is at creation. The rest is an individual with short and long term memories which can become vapour with too many of those beers at the space station. lol.
We have an internal personality and an out ward peronality that may change based upon how we feel among other things like our evironment. I'm less likely to want to have a conversation with you while I'm holding my stomach in after a mortar attack.
In Summary
---------------
Any way an easy light weight algorithm wich appears to think for itself and does more than attack or hold a gun all the time is what I'm trying to perfect. A bot who may rather interact with you or try to sell you something or want to knife you because you look like Aunt bessie's dog.
Also not every bot needs to have this type of AI and it can be saved for the main characters of the game when interaction with NPC's is essential.
Mathieu I could go on for hours as there are 7 layers i've designed along with each of the personalities, however, I don't want to send everyone zzzzzzzzzzz.
Put simply, huge result, low impact. Works in theory anyway :).
Cheers
Mal
09/29/2006 (9:05 pm)
Sorry Matheiu I should have been more descriptive, I was in a hurry in my last post. -Blackboard tool for AI systems coordination
-A tool to predict player actions
-A steering behavior tool
-A pathfinding tool for exteriors
-A pathfinding tool for interiors
-A tool to evaluated tactical positions (e.g., finding cover)
Sounds great to me and I'll definately be acquiring that when it comes out.
I want to add something to this which will fully complete the AI if added.
- AI personality module.
This module will give a bot the abiltity to "appear to think for itself", "appear to learn", "appear to remember people it has met and either like or dislike them" and "appear to exibit individuality". You could switch it on or off based upon what you need for that particular npc.
@Areal: I don't do polymetric and neuro - net terminator style and I get a bit lost around the terminology corner your obviously very intelligent. I've been making games for 20 years and I have toyed with many AI ideas. That data driven datablock is a fantastic idea, good one.
@Mattieu: Excellent work on your AI m8 I think it will go like hot chocolate on a winters night. Preferrably with those marshmallows, mmmmm... to answer your question...
I feel it is both a need for a game I'm doing and also a plan and of course any serious game developer wants realism in the game rather than some dumb thing runing around with a random will fire or will run attached to it based on damage. I'm trying to develop something out of the square and which doesn't need a nasa computer to run.
Introduction to Part of my Algorithm
---------------------------------------------
The individual is multi tier with 7 levels of the character affecting the out comes of decisions, first 3 are;
1. Phyiscial feeling,
2. Emotional feeling,
3. Thoughts
Over view
-------------
The pysical body affects the emotions which affect the mind which really determines our actions. So you have a few emotions that are prone to one of the personality types which will produce an emotion to varying degrees based upon it's intensity. Why do some people have a higher pain tollerance than others?
The thoughts are generated and exposed to the mind, we don't necessarily act on all our thoughts, we see the thought and if it is pumped up with a bit of emotion and physical feeling then there is more of a chance that we will act on it. In fact based on the personality and experiences of the past we all seem to exibit different personalities and as such appear to be individuals.
I can quite easily mimick this for a robust artificial intelligence light weight system. The only problem is to make it so lightweight and fast that having a number of AI in the world won't slow down the engine. I have gotten around this by putting most of the processing work when the character is created and after that he/she lives. 95% of the work is at creation. The rest is an individual with short and long term memories which can become vapour with too many of those beers at the space station. lol.
We have an internal personality and an out ward peronality that may change based upon how we feel among other things like our evironment. I'm less likely to want to have a conversation with you while I'm holding my stomach in after a mortar attack.
In Summary
---------------
Any way an easy light weight algorithm wich appears to think for itself and does more than attack or hold a gun all the time is what I'm trying to perfect. A bot who may rather interact with you or try to sell you something or want to knife you because you look like Aunt bessie's dog.
Also not every bot needs to have this type of AI and it can be saved for the main characters of the game when interaction with NPC's is essential.
Mathieu I could go on for hours as there are 7 layers i've designed along with each of the personalities, however, I don't want to send everyone zzzzzzzzzzz.
Put simply, huge result, low impact. Works in theory anyway :).
Cheers
Mal
#16
10/14/2006 (7:21 am)
Where'd everybody go?
#17
What you've written above looks great.
10/14/2006 (10:43 am)
We're still here. Just been busy lately. What you've written above looks great.
#18
11/27/2006 (6:09 am)
A soccer AI.
#19
What is your biggest difficulty in writing a soccer game AI? Movement, tactics, coordination, aiming?
11/27/2006 (6:20 am)
Thats both too large and too specific for a "tool"... as demonstrated, goal-oriented agent decision + steering behavior can gives rather good results for sports AI, so I'll add points for those.What is your biggest difficulty in writing a soccer game AI? Movement, tactics, coordination, aiming?
#20
11/27/2006 (6:24 am)
I'm not a good C++ Coder so I want to make this via script. Passing, shoting and the goal keeper are a bit difficult.
Torque Owner Mike Rowley
Mike Rowley