irrAI 0.50 - AI module for Irrlicht [Updated 28/11/09]

Announce new projects or updates of Irrlicht Engine related tools, games, and applications.
Also check the Wiki
JP
Posts: 4526
Joined: Tue Sep 13, 2005 2:56 pm
Location: UK
Contact:

Post by JP »

Dronchik wrote:JP, I downloaded latest version irrAI and compiled. But source irrAI don't new. Please, update source files because files in the src-folder - old files.
As far as i can see in the latest download (0.3) it's all up to date and fine.. everyone else seems to be managing fine with it so all i can assume is that there's some problem your end. Delete all the IrrAI stuff on your PC and then extract the 0.3 zip again, see if that helps.
Image Image Image
raptoravis
Posts: 9
Joined: Tue Apr 15, 2008 3:28 pm

Post by raptoravis »

say, there are no obstacles between A and B, B and C, but, there is a building between A and C

A----------------*------B
|
something |
|
C

so, A and B are connected, B and C are connected, A and C are not through.

when NPC's desitination is C and the path is A, B, C, now it moves from A to B and arrives star point, and it can 'see' C there, would it be cleverer to directly move to C instead of first to B then to C? and, also, the path would be smooth...

btw, is it because that in your design, along the path is the top priority?

thanks
JP
Posts: 4526
Joined: Tue Sep 13, 2005 2:56 pm
Location: UK
Contact:

Post by JP »

Well to determine if you can move to C from a mid-point between A and B would require casting rays from your position to C and you'd have to cast a fair few probably to make sure the gap is big enough for you to fit through so i don't think that's particularly sensible at run-time.

But i suppose you could spread the ray casts out over numerous frames to reduce the impact and just not do anything until the ray casts are done (would only take a few frames so wouldn't be a noticable pause probably).
Image Image Image
JP
Posts: 4526
Joined: Tue Sep 13, 2005 2:56 pm
Location: UK
Contact:

Post by JP »

Ok, finally got a new version released... god damn that was hard.. :lol:

Unfortunately there's not a huge amount of new stuff i don't think... but here's a list of what's new:

- The FOV detection has also been imrpoved, it's now based on box, not a point so is much more accurate. It also works in 3D now, whereas before it was effectively 2D. This means that multi-level maps should work and the NPCs should be able to see friend/foe who are above/below ;)
- FOV occlusion has been added so that NPCs can't see through walls. This can be turned off though if you actually want them to look through walls. NPCs can see over obstacles but not through them (seeing over obstacles can be seen in the PathfindingFOVExample, other examples how NPCs not being able to see through walls). I should point out though that the occlusion is done using a raycast from the NPC to the position of the NPC in question, so this is still point based rather than box based... i'm thinking of ways to do occlusion on a box nicely.. got a few ideas.
- You can now have a Player entity which means you can actually play against the NPCs now! The ChasingFleeingExample has been updated to allow you to join a team or spectate.
- I've made an 'intro device' which runs before each example and allows you to configure some options and it also pops up again once the demo is finished/exited so you can restart easily.
- I've also seperated out some common code from the examples which provides an 'easy' to use class for implementing your own NPCs, though a bit more work needs to be done on this i reckon so improvements will be made for the next release hopefully!
- The waypoint linker has now become the IrrAI Editor. No new functionality i don't think but in the future i hope to put in some way of placing/testing NPCs in your scene.
- Some very basic testing of NPCs is provided in the NPCTestExample, basically just verifies that the FOV works as i want it to...
- IrrEdit Plugins have been removed for now as i was having trouble making them work... i'd like to bring them back in the future as it'd be nice to support IrrEdit if people prefer to use that...
- I've provided a download for an Irrlicht 1.4.1 version.. Unfortunately it's suffering some heavy performance issues as well as waypoint textures not showing up, the top of the Calmageddon car is black and the zombie doesn't animate.... So this is just a pre-release for now and hopefully i can sort out these issues (with a little help from ma friends, that's you ;)) and get it working nicely.
- Also the much sought after MSVC projects have finally been supplied... It's MS Visual Studio 2003 i used to make them with so i hope that's ok... it damned well better be because i've spent 3 and half hours this morning basically making them! :lol:

Dronchik, I have to apologise to you for saying those files you were having trouble with were no longer in the SDK, as it turns out they were! It was basically just main.cpp in the IrrAI/SRC folder which was causing the problems, that shouldn't have been there (now removed) and that was asking for some files to be included which were no longer present in the SDK.

Right, so i think in this release i kinda focuses a bit too much on pretty features so i'm gonna buckle down and get on with some better AI features for 0.5! (although that might be a while as i've got to focus on my Alestorm PS3 game as much as i can and get that finished...).

Some of the next things on my list to do include improvements to chasing and fleeing behaviours, and 'under attack' event that you send from your app to an NPC when you detect he's being hit by bullets etc so that he can react to that and run away or stand and fight etc. Also i'm gonna looki into flood-filling an irr scene with waypoints so you don't have to place them manually. I've also got a good idea for how to get doors working nicely which should also for dynamic blocking of the waypoint graph, so you could block certain paths at will, maybe due to changes to the environment like a tree falling on a path.
Image Image Image
JP
Posts: 4526
Joined: Tue Sep 13, 2005 2:56 pm
Location: UK
Contact:

Post by JP »

Oooook, been fiddling around with the 1.4.1 version and i've found that it's just the OGL driver which gives me crappy performance, DX9 works fine so if you see similar problems just use the DX9 driver, support for DX9 is already provided for both the MSVC and DevC++ versions so that's fine.

I've also solved the zombie not animating problem, that's down to an apparent fix for the frame numbers of models exported from Milkshape, in 1.3.1 you had to multiply the frame number by 100, in 1.4.1 you don't!

I also noticed a new problem with DX9 which is that the progress bar doesn't work properly, the bar is just always filled up 100% so i'll have to look into a solution for that...
Image Image Image
pera
Posts: 460
Joined: Wed May 14, 2008 1:05 pm
Location: Novi Sad, Serbia
Contact:

Post by pera »

you solved the zombie problem but in binary precompiled example with cars they are still frozen. Also, some cars just stop in the middle of the road for no reason (or is that with reason?) and other car eventually stack up behind them.

Im gonna play with it some more, its great job, and Im surely gonna use it in my project!
JP
Posts: 4526
Joined: Tue Sep 13, 2005 2:56 pm
Location: UK
Contact:

Post by JP »

When i say i've solved the zombie problem i mean i've solved it on my PC but haven't uploaded the fixed version yet ;)

This is for the 1.4.1 version btw.

i've not seen the cars stop for no reason.. that's quite strange... was it on startup or was it after a while they just stopped? They should only stop if they see another NPC in their FOV which should be clear from the positions of the cars and zombies though you could switch on the debug visuals (press V) to see if there's something weird going on...
Image Image Image
Dorth
Posts: 931
Joined: Sat May 26, 2007 11:03 pm

Post by Dorth »

OpenGL? 1.4.1? Slow?

Are your textures ALL pow of 2? if not, go in the bug section and get the patch for it ;)
JP
Posts: 4526
Joined: Tue Sep 13, 2005 2:56 pm
Location: UK
Contact:

Post by JP »

Yep as far as i can remember i made sure they're all POT textures, i've been developing games long enough to know this ;) heh

I tried it out on my gfs laptop, with the latest drivers and OGL ran well so i think it's outdated drivers and 1.4.1 requiring updated ones!
Image Image Image
pera
Posts: 460
Joined: Wed May 14, 2008 1:05 pm
Location: Novi Sad, Serbia
Contact:

Post by pera »

bin/vc examples/ calmageddon/ when i start exe i have 'loading dialog' i chose number of cars and zombies and directx9, when exit example im back on loading screen, if i chose diferent number of cars/zombies and leave directx9 again, when i press start program exits instead of start.

I caught this behaviour one more time today, car was frozen from start on the road (5 cars, 3 pedestrians, directX9). But I ran it like 10 more times everything was ok!
JP
Posts: 4526
Joined: Tue Sep 13, 2005 2:56 pm
Location: UK
Contact:

Post by JP »

The cars being stuck at startup could be down to two cars occupying the same waypoint from the start. i've not put any code in to make sure they don't start from the same point, they just grab a random waypoint to start from... i'll have to look into this... i think it's a problem that's been introduced due to the new bounding box FOV detection instead of point FOV detection. But obviously NPCs shouldn't start from the same point anyway so i'll just have to add in a bit of code to prevent that.

thanks for mentioning it!

As for the other problem... sounds strange... i'll look into it... if you run the demo from the command line then you'll be able to see the output before it exits, maybe it says there's been an error..?
Image Image Image
pera
Posts: 460
Joined: Wed May 14, 2008 1:05 pm
Location: Novi Sad, Serbia
Contact:

Post by pera »

"Was not able to create Direct3D9 device" - thats the message.
Probably trying to recreate device and it hasn't been released or something.

I have one more suggestion, if Im not too picky, for example when I start ChasingFleeingExample theres a blue guy and a red guy and I have no idea what is going on. I suppose one should follow me and another flee from me, but maybe they are running from each other? so my suggestion is like adding a little textual description of example - what is it about. Add it in the program so pressing F1 will popup window about, or write few lines in the header, or even txt file in the same folder as exe. Right now I think i have to go to source code to read it there, its ok, but if you already made bin examples - add that little thing to their exampleness.
JP
Posts: 4526
Joined: Tue Sep 13, 2005 2:56 pm
Location: UK
Contact:

Post by JP »

It's a fair point. The examples are explained in the first page of this thread but i think an explanation in the actual example itself would be a good idea too.

Basically red chases blue. And you can pick which team you want to be on, either chasing or fleeing. If you chase then you get a gun and can shoot the blue guys, if you flee then the red guy will chase and shoot you.

Oh and cheers for checking out that DX9 error. Does it only have with DX9? I thought i'd handled everything shutting down properly but maybe with DX9 it's not working quite right as i generally just tested it on OGL.
Image Image Image
pera
Posts: 460
Joined: Wed May 14, 2008 1:05 pm
Location: Novi Sad, Serbia
Contact:

Post by pera »

OGL can restart alright, only I don't see a thing with OGL (my onboard graphic just won't do OGL). IrrAIEditor.exe could also have that loading screen to chose DirectX from, (it is set default to OGL and I must recompile it to see it).
JP
Posts: 4526
Joined: Tue Sep 13, 2005 2:56 pm
Location: UK
Contact:

Post by JP »

Actually IrrAIEditor is set to Burnings Video by default, in the code and then it reads the preferred video driver from Media/config.xml, so you can change it there to DX9. It's just listed as an integer, 5 for OGL i think so 4 for DX9, just reduce it by one and you'll get DX9 anyway, it's the same index as the enum you pass to device creation. (possibly i should have mentioned this xml file before :lol:)
Image Image Image
Post Reply