Continue the development of PandaAi?

I had been working with the PandaAi library for a while, fixing bugs, reimplementing some behaviors, reimplementing the locomotion layer and implementing a new behavior (wall avoidance). Also i could figure out how to use interrogate (by taking into account the suggestions in the forum), and i compiled my modified libraries. Actually, i am experimenting using my version of the library. I want to collaborate with the PandaAi project, but i don’t know how to do this. I saw that the last stable version of Panda3d (1.8.1) still has errors in PandaAi found some years ago. So, it seems that nobody is working on PandaAi. I don’t know if that is because nobody use the library or because it is very problematic to use interrogate, the first step in the compiling process (i knew about some member of the community that stops his working on PandaAi because the troubles in using that tool). The modified version of the PandaAi that i have is actually made to fit my needs, so in order to collaborate with the original project, it would be better to start from the beginning, but i could point out the bugs that i found and the things that we could change. The things that i made (and plans to make), are very basic (they are present in any introductory text of “Steering Behaviors”). But as a first step, to continue the development of PandaAi, i find them useful. So, in short, i have things to contribute with, but i don’t know how to do this. Any suggestions?, somebody wants to collaborate?.

I would suggest that you post a link to this thread on the PandAI thread so that the original authors get notified about it (assuming they have a watch set on that thread).

Also, if you could provide the code, or even a build, with your changes so everyone interested could try it out, that would be highly appreciated.

For me, there are two problems with PandAI. The first is that the graph is inherently 2 dimensional, which is OK for some games, but just doesn’t cut it for others, and the second is that it takes complete control over the agents – moving them instead of just providing a vector to the next position (or just returning a set of way points).

For me pandAI is also to agresive, I’d rather have a path and make the moving myself. For now it’s a showcase AI, the faster the game runs the faster ai-characters move, that’s just not acceptable for most games.

Ok!, i posted a link to this thread, as rdb recommended. I was thinking about beginning a discussion about the changes that PandaAi needs, and from that discussion, determine the things to change and/or new features to add. My code is very experimental, and there are some things that i made that need some discussion.
PandaAi is an implementation of “steering behaviors”, mainly based on Reynold’s work ( Steering behavious do have an application in real games. In particular, they were used in 3d strategy games, like Dungeon Keeper 2 and ThemePark World, to give the characters the ability to traverse the level in an autonomous manner (see Robin Green “Steering Behaviours”, Proceedings of the Games Developer Conference 1999).
Because PandaAi is based on Reynold’s work, it is designed in 2 layers (steering behaviour and locomotion layers), making possible to make changes likes translating the behaviours to 3d (there is a chapter devoted to this in the book ARTIFICIAL INTELLIGENCE FOR GAMES, Second Edition, of IAN MILLINGTON and JOHN FUNGE) or to make the movements time-based (i mention that because wezu pointed that today, the movements in PandaAi are frame-based; in my version of the library, the movements are time-based, all that i have to do is to add some minor changes in the locomotion layer ). Well, i will wait for any comment from the authors of the library or any suggestion about the direction to take!.

Well. After i posted a link to this thread in the original PandaAi thread in order to inform to the original authors of the library, i tried to communicate with NNair and Sorcus, two members of the community that developed the original PandaAi, but theirs accounts had been removed. So…mmm…is there any other way to establish contact with the team that developed the library?

If you cannot get in contact with either of them, perhaps you could try contacting MikeC, which I believe was overseeing the project at the time.

I think it’s great that you’re identifying issues with PandAi (using the community to help), and then addressing them with code improvements. First developers of PandAi may have moved on to other projects, but I will reach out to them and see if any can help answer questions. But, I would not wait for them. Continue with your updates, post improvements and test as rdb suggests as he has successfully guided numerous Panda improvements across many fronts. With your help, PandAi can be yet another improvement. Thanks for taking the initiative and moving these behaviors forward!

In which way i could start the work?. Using this thread or a new one to suggest some thing to change and in which way, and then discussing it with the community, until reaching an agreement?. Sorry, i am not familiar with developments in this settings!. Thanks in advance!.

Are you still working on this Mallku? I am willing to help out if you need it. This is a definitely a project I am interested in and would like to make some tweaks to better work in a side-view 2D environment.

Nice!. I stayed waiting for any reply, because sincerely, i don’t know where to begin. I was thinking about discuss with other people about all the changes and how to correct the present bugs, maybe through this thread or another one. This doesn’t mean that i haven’t done some work, no. I made changes in the original code and i want to discuss about those changes and to know about work and ideas from other people in order to reach to a solution that satisfies the needs of everyone.
With respect to your present needs, i have to say that i have also used the library into an application where the vehicles move in a plane. So the changes that i implemented were using the algorithms that works over the plane. But i was thinking that we could implement the, more general, algorithms in 3d-space. They will still work in your application.
At the moment i am occupied in other projects, but maybe we could begin with a one-or-two-e-mail-per-week discussion, to identify work to do, and then determine how and when to begin the development.

That sounds great. I went ahead and created the initial repo on BitBucket for us to collaborate on and keep track of milestones/issues/tasks.

Also, It is not directly stated anywhere but does PandAI share the same license as Panda3D?

Well done, lets begin the project!. I understand that the source code is distributed under the same license as Panda3d (it is specified in each file of the PandAi’s source code). Does anybody else wants to join the team?. XeltEnton i will contact you.

Keep in mind that the current source code of PandAI is in Panda3D CVS: … rc/pandai/
This is the most up-to-date version of the code.
As you can see, the files carry the BSD license as with the rest of Panda.

The coding style is pretty horrible, and doesn’t adhere to the coding guidelines that the rest of Panda adheres to. It’d be great if you could not follow the example of the existing AI code when you add new features. :wink: