irrAI 0.50 - AI module for Irrlicht [Updated 28/11/09]
Re: irrAI - AI module for Irrlicht [Updated 21/7/08]
Hi ,JP,I can`t download irrAI from your link, Can you send it to my mailbox.Thank you very much!
My mailbox:xtayxkjyhh@163.com
My mailbox:xtayxkjyhh@163.com
不明白, why China gov keeps blocking websites. :s
My company: http://www.kloena.com
My blog: http://www.zhieng.com
My co-working space: http://www.deskspace.info
My blog: http://www.zhieng.com
My co-working space: http://www.deskspace.info
I am eagerly awaiting that. I would like to test out some things. Would you mind if I messaged you about some ideas later on JP?JP wrote:I would certainly advise waiting for the 0.5 release as it will be much easier for you to use.
By the way, I was fooling around with your IrrAI editor, and it is a great tool. Definitely makes placing waypoints loads easier and more efficient. It's very intuitive as well. Once I got the hang of it I went waypoint crazy!
TheQuestion = 2B || !2B
Just thought i'd leave a quick message saying that IrrAI 0.5 is coming along well. I've been slowed down quite a lot in the past week or so due to some rather nasty stress to do with sorting out my new job, finding a new flat, getting out of my current flat without pishing off the landlord so much that he keeps my £750 deposit and sorting out a car to get me to my new job...
Anyway, i start my new job in mid January and i aim to get IrrAI 0.5 done by then, after that i'll be unsure as to how much more development i'll be able to do, at least at any useful rate!
Anyway, i start my new job in mid January and i aim to get IrrAI 0.5 done by then, after that i'll be unsure as to how much more development i'll be able to do, at least at any useful rate!
-
- Admin
- Posts: 3590
- Joined: Mon Oct 09, 2006 9:36 am
- Location: Scotland - gonnae no slag aff mah Engleesh
- Contact:
New job? I'm thinking pirate, or perhaps a pirate's moll.
Please upload candidate patches to the tracker.
Need help now? IRC to #irrlicht on irc.freenode.net
How To Ask Questions The Smart Way
Need help now? IRC to #irrlicht on irc.freenode.net
How To Ask Questions The Smart Way
I really don't want to abandon these projects entirely... They've been great experience for me and have been fun (most of the time anyway ) and it does seem that there are people who want to use them and so will require ongoing development and support.
I think i'll have to see how it goes with my new job and everything. To be honest I reckon I can probably pull my finger out a bit and do some work in the evenings and weekends instead of sitting in front of the TV watching soaps with the missus... It's just habit now instead of being interested.. the missus watches and I just collapse there after a long days work! Instead I can collapse in from of the PC
Incidentally my new job will be working for a studio under Activision, obviously on games programming, so it's not going to be too bad leaving Sony as Activision are a pretty big publisher! Currently I can't tell you what project i'll be working on as it hasn't been announced to the public yet
I think i'll have to see how it goes with my new job and everything. To be honest I reckon I can probably pull my finger out a bit and do some work in the evenings and weekends instead of sitting in front of the TV watching soaps with the missus... It's just habit now instead of being interested.. the missus watches and I just collapse there after a long days work! Instead I can collapse in from of the PC
Incidentally my new job will be working for a studio under Activision, obviously on games programming, so it's not going to be too bad leaving Sony as Activision are a pretty big publisher! Currently I can't tell you what project i'll be working on as it hasn't been announced to the public yet
Phew 0.5 is finally done and uploaded... See the first post for the download link.
There's a new example showing how to make custom entities so you can basically write your own NPCs or whatever as necessary if my basic implementations aren't up to scratch.
The IrrAI Editor has had a complete overhaul and is much better now. It uses its own .irrai file format now instead of piggybacking the .irr scene format which should make it much more flexible. There's waaaay too many updates to the editor for me to say here so just check out the PDF manual for it in the irrai/doc folder and feel free to post if you're confused at all! One addition i will note is that the editor can now create entities, see the rpg example for an example of how to handle entities which have been created in the editor.
I've dropped devc++ support a little as i've now switched to MSVC (much better!). Though after seeing all the people trying to convert IrrPhysx to devc++ or similar i've taken pity on you and provided a GCC library so you don't need to recompile IrrAI yourself. (note that the lib is completely untested i just compiled it up, didn't get any warnings and hopefully that's enough!)
This version of 0.5 is for Irrlicht 1.4.2... My next task will be to make sure i can get it working with Irrlicht 1.5 and then i'll release that version too.
Some of the examples have changed names... the pathfinding & fov example is now called 'simple example' and the chasing & fleeing example is called 'fps example'. The new 'custom entity example' shows how to create your own entities without needing to recompile IrrAI. It also shows the new AI sensors used as checkpoints and powerups. The powerups were placed in the editor as a special group of unlinked waypoints which are basically used as markers, that's an idea from FMX, clever chap!
In the FPS example you can now choose which map you'd like to play on (only the 0th waypoint group is used by the NPCs though). I've also added a toggle so that you can see how it works with field of view occlusion on and off. The example is compiled to use IrrPhysx for the occlusion raycasting but can be changed to just use standard irrlicht raycasting instead by commenting a #define (just like in the irrlicht demo app). An 'Under Attack' event has been added to the NPCs so that they can react if they're attacked by an unseen enemy. NPCs can also alert their allies when they see an enemy so they can converge on that enemy, or flee from it.
The horrible thing about 0.5 is that i've completely broken the API so it'll be rather hard to update to from 0.4... i'm really sorry about that but it really had to be done and i figured sooner was better than later! so feel free to have a rant at me but i only did it for your own good! cruel to be kind and all that! If you are updating from 0.4 then feel free to ask me for advice on it, most of the changes are name changes so could be quite easy to spot and fix.
Here's a list of some more changes:
CNPC split into CPathFindingNPC (INPC) and CCombatNPC (INPC->ICombatNPC)
Combat NPC's FOV dimensions are now 3D rather than 2D to allow for ease of expansion to different FOV types.
NPC AT_GOAL is an event rather than a state now
Calling smgr->clear() will really screw up the AI manager so you should clear the AI manager first, then call smgr->clear() and then call reinit() on the AI manager to recreate necessary nodes used by the manager
IrrAI now has its own namespace, namely IrrAI... easy fix when updating from 0.4 is to just add using namespace IrrAI to your files.
You can specify whether an NPC should check its FOV for enemies, allies or both, the default is to check for enemies but not for allies which to me seems the most common requirement so will save unecessary checks and events. This can easily be changed though with the descriptor structs or functions in ICombatNPC.
Acki's SimpleSteering AStar search implementation has been added and is the default search algorithm, you can revert back to using breadth first search if you wish by commenting the #define in CPathFindingNPC/CCombatNPC
IPathFinder interface has been added to implement multiple search algorithms and for search to be available outisde of NPCs if necessary
Added an interface for field of views to allow different ones to be implemented. One gripe some people had with the FOVs and waypoints in 0.4 was that they were all scene nodes and so clogged up the scene graph etc. Now they're not scene nodes at all but special debug scene nodes are provided if you wish to visualise the FOVs and waypoints. The waypoint debug node is actually a single node containing all the waypoints so is much better for rendering efficiency.
An occlusion callback has been added to allow you to use physics engines for occlusion checking instead of standard Irr collision. The standard irrlicht implementation (or an IrrPhysx implementation) is provided in the examples and should be easy to add to your own projects if need be.
Next job, other than getting it working with irr1.5 i think will be to update the 'About' page on the IrrAI website to be a bit more useful!
There's a new example showing how to make custom entities so you can basically write your own NPCs or whatever as necessary if my basic implementations aren't up to scratch.
The IrrAI Editor has had a complete overhaul and is much better now. It uses its own .irrai file format now instead of piggybacking the .irr scene format which should make it much more flexible. There's waaaay too many updates to the editor for me to say here so just check out the PDF manual for it in the irrai/doc folder and feel free to post if you're confused at all! One addition i will note is that the editor can now create entities, see the rpg example for an example of how to handle entities which have been created in the editor.
I've dropped devc++ support a little as i've now switched to MSVC (much better!). Though after seeing all the people trying to convert IrrPhysx to devc++ or similar i've taken pity on you and provided a GCC library so you don't need to recompile IrrAI yourself. (note that the lib is completely untested i just compiled it up, didn't get any warnings and hopefully that's enough!)
This version of 0.5 is for Irrlicht 1.4.2... My next task will be to make sure i can get it working with Irrlicht 1.5 and then i'll release that version too.
Some of the examples have changed names... the pathfinding & fov example is now called 'simple example' and the chasing & fleeing example is called 'fps example'. The new 'custom entity example' shows how to create your own entities without needing to recompile IrrAI. It also shows the new AI sensors used as checkpoints and powerups. The powerups were placed in the editor as a special group of unlinked waypoints which are basically used as markers, that's an idea from FMX, clever chap!
In the FPS example you can now choose which map you'd like to play on (only the 0th waypoint group is used by the NPCs though). I've also added a toggle so that you can see how it works with field of view occlusion on and off. The example is compiled to use IrrPhysx for the occlusion raycasting but can be changed to just use standard irrlicht raycasting instead by commenting a #define (just like in the irrlicht demo app). An 'Under Attack' event has been added to the NPCs so that they can react if they're attacked by an unseen enemy. NPCs can also alert their allies when they see an enemy so they can converge on that enemy, or flee from it.
The horrible thing about 0.5 is that i've completely broken the API so it'll be rather hard to update to from 0.4... i'm really sorry about that but it really had to be done and i figured sooner was better than later! so feel free to have a rant at me but i only did it for your own good! cruel to be kind and all that! If you are updating from 0.4 then feel free to ask me for advice on it, most of the changes are name changes so could be quite easy to spot and fix.
Here's a list of some more changes:
CNPC split into CPathFindingNPC (INPC) and CCombatNPC (INPC->ICombatNPC)
Combat NPC's FOV dimensions are now 3D rather than 2D to allow for ease of expansion to different FOV types.
NPC AT_GOAL is an event rather than a state now
Calling smgr->clear() will really screw up the AI manager so you should clear the AI manager first, then call smgr->clear() and then call reinit() on the AI manager to recreate necessary nodes used by the manager
IrrAI now has its own namespace, namely IrrAI... easy fix when updating from 0.4 is to just add using namespace IrrAI to your files.
You can specify whether an NPC should check its FOV for enemies, allies or both, the default is to check for enemies but not for allies which to me seems the most common requirement so will save unecessary checks and events. This can easily be changed though with the descriptor structs or functions in ICombatNPC.
Acki's SimpleSteering AStar search implementation has been added and is the default search algorithm, you can revert back to using breadth first search if you wish by commenting the #define in CPathFindingNPC/CCombatNPC
IPathFinder interface has been added to implement multiple search algorithms and for search to be available outisde of NPCs if necessary
Added an interface for field of views to allow different ones to be implemented. One gripe some people had with the FOVs and waypoints in 0.4 was that they were all scene nodes and so clogged up the scene graph etc. Now they're not scene nodes at all but special debug scene nodes are provided if you wish to visualise the FOVs and waypoints. The waypoint debug node is actually a single node containing all the waypoints so is much better for rendering efficiency.
An occlusion callback has been added to allow you to use physics engines for occlusion checking instead of standard Irr collision. The standard irrlicht implementation (or an IrrPhysx implementation) is provided in the examples and should be easy to add to your own projects if need be.
Next job, other than getting it working with irr1.5 i think will be to update the 'About' page on the IrrAI website to be a bit more useful!