AI Engine

I would be very interested in generalizing behavior multi-queues

…and implementing some sort of modular/nodal component-based behavior editor (envisioning something like the Blender UI where you pipe node output into other node input - nice and visual :wink:

…and perhaps something along the lines of U of A’s Behavior Capture research, letting the designer act the part and generalizing the behavior from his actions (as opposed to massively parallel seeded or semi-random learning cycles).

Just a couple druthers bubbling away on my back-burner… :slight_smile:

Ok, here is what we’re about to do.

We want to have a lightweight agent framework - something like Google Code Archive - Long-term storage for Google Code Project Hosting.
that will provide an Agent class
An agent should have different types of behaviours, that can be added and removed.
A single tactic may be implemented as behaviour, and adaptive tactic selection can also be implemented as behaviour whic choose one of the available tactics to execute.
This system should also provide an environment definition, sensory information and entity description from the environment (based on some existing entity system).
One of the behaviours for adaptive tactic selection will be based on neural networks, and it can be also implemented using something else, so one can choose what to use.
This is all very similar to Google Code Archive - Long-term storage for Google Code Project Hosting.

@Paul, are you the author of this motiveai, or you maybe know the author?

I would be very interested in generalizing behavior multi-queues

…and implementing some sort of modular/nodal component-based behavior editor (envisioning something like the Blender UI where you pipe node output into other node input – nice and visual :wink:


@Charles I guess you can plug in into this

Now the only thing is to pick some game that will be used as a development ground and for testing.
Any recommendations?

@sevarac said: Ok, here is what we're about to do.

We want to have a lightweight agent framework - something like Google Code Archive - Long-term storage for Google Code Project Hosting.
that will provide an Agent class
An agent should have different types of behaviours, that can be added and removed.
A single tactic may be implemented as behaviour, and adaptive tactic selection can also be implemented as behaviour whic choose one of the available tactics to execute.
This system should also provide an environment definition, sensory information and entity description from the environment (based on some existing entity system).
One of the behaviours for adaptive tactic selection will be based on neural networks, and it can be also implemented using something else, so one can choose what to use.
This is all very similar to Google Code Archive - Long-term storage for Google Code Project Hosting.

@Paul, are you the author of this motiveai, or you maybe know the author?

@Charles I guess you can plug in into this

Now the only thing is to pick some game that will be used as a development ground and for testing.
Any recommendations?

Sorry, I did not see that you mentioned me. Just ping me as @mifth and i’ll get notification. :slight_smile:

Here is the topic of the author of MotiveAI: http://hub.jmonkeyengine.org/forum/topic/motiveai-new-video/
@oxplay2 is the Author.

@sevarac said:

Now the only thing is to pick some game that will be used as a development ground and for testing.
Any recommendations?


@foxhavendesigns

Possibly, these 2 simplest games will help you.
https://code.google.com/p/jme-simple-examples/source/browse/JMESimpleExamples/src/com/robotfight/Main.java
https://code.google.com/p/jme-simple-examples/source/browse/JMESimpleExamples/src/com/gameAsteroids/AsteroidsMiniGame.java

Another interesting link germaine to this (found chain-linking like a research monkey from something Normen said…) is http://www.agentfactory.com/index.php/Main_Page

The Agent Factory Framework is an open source collection of tools, platforms, and languages that support the development and deployment of multi-agent systems. The framework is broadly split into two parts: support for deploying agents on laptops, desktops, and servers; and support for deploying agents on constrained devices such as mobile phones and sensors. The former support is realised through Agent Factory Standard Edition (AFSE), and the latter support is realised through Agent Factory Micro Edition (AFME).

thank you @mifth for your notification.

MotiveAI is mostly based on Evolutionary Algorithms, to make it simpler.

The most popular agent systems in those times i think are:

Jade + ontology system(usually created with protege program) managed by external api class(because Jade have too weak ontology managment)
if you interested i can send you Api for good Jade Ontologies.

Why i tell about this?
Because ,as i good know, Neural network can be implemented in Ontology system.

But anyway as mifth said, it would be cool if you improve the existing one.

Possibly, these 2 simplest games will help you.

https://code.google.com/p/jme-simple-examples/source/browse/JMESimpleExamples/src/com/robotfight/Main.java

Google Code Archive - Long-term storage for Google Code Project Hosting.

Thanks @mifth exactly what we were looking for. We’ll go for robot fight

@foxhavendesigns
Agent Factory looks very nice, and Jade which @oxplay2 suggested is also full featured agent framework and I have some experience with it. I like them both and at the begining we were thinking of something like Jade.
Now my main concern is should go with some existing full featured FIPA compliant agent framework like those above, and are they too heavy for game development and game developers?
Another approach is to put simple lightweight agent framework like motiveai, or develop similar custom framework.

The question is also, is it better to have some agent language like AgentFactory, or just go with pure Java API. Having agent language is cool, but it requires that one learn it, in order to be able to use it.

On the other hand, having full agent support would turn JMonkeyEngine into full simulation environment.

I would really like to hear what you think about this.

1 Like

Suffice to say, the more dependencies you have, the less likely it is that this will make it into core. There’s always the plugin route though, so your options are pretty open.

I for one would really like to see Motiveai be developed further as a collaborative effort.

1 Like
@sevarac said: Thanks @mifth exactly what we were looking for. We'll go for robot fight

@foxhavendesigns
Agent Factory looks very nice, and Jade which @oxplay2 suggested is also full featured agent framework and I have some experience with it. I like them both and at the begining we were thinking of something like Jade.
Now my main concern is should go with some existing full featured FIPA compliant agent framework like those above, and are they too heavy for game development and game developers?
Another approach is to put simple lightweight agent framework like motiveai, or develop similar custom framework.

The question is also, is it better to have some agent language like AgentFactory, or just go with pure Java API. Having agent language is cool, but it requires that one learn it, in order to be able to use it.

On the other hand, having full agent support would turn JMonkeyEngine into full simulation environment.

I would really like to hear what you think about this.

I would prefer Java API Language. The simplier the better. :slight_smile:
I love Java because it’s simple to learn.

I’d like the best of two worlds :slight_smile:

@sevarac To start with, developing MotiveAI (or similar) lightweight, java API-based “core” for something that can be extended toward FIPA compliance and a “higher-level” agent language (though my preferences for that, only half thought-out, are for a visual UI rather than a pure script-like implementation - see Scriptease and any of the node-based shader editors for the kinda thing I imagine).

To put it another way, although I have a lot of asset management stuff to work out first, I will want something lightweight and “native”, if possible, for development. But would really like to see it developed into a full-featured, mature and generic AI engine.

@erland_sh @oxplay2 I’d like to see both MotiveAI and EasyFinding developed collaboratively :slight_smile: But I’m greedy and lazy :stuck_out_tongue:

@foxhavendesigns

MotiveAI and EasyFinding are my projects and i would like to improve them myself(but i dont have much time now) or add someone to repository to help me(especially MotiveAI, because EasyFinding is not good enough - is based on simple algorithm that work slow for far distances)

EasyFinding is good for only some cases(like tile based strategy game). in other cases better would be NaviMesh + MotiveAI and its possible to use them both, so i see no problem.

anyway look here http://hub.jmonkeyengine.org/forum/topic/ai-plugin-now-with-navmesh-pathfinding/

ofc i am always willing for creating larger group(like 3-5 people), which will make good project 8)

2 Likes

If you could make bindings for the unported recastnavigation that would be huge.

2 Likes

very interesting project, thank you for your link.

i like the license of it, but i dont like GitHub due to it’s bugs(one person noticed how to log in to every account(ruby on rails bug? - i dont remember), he post fix for creators, and they made lawsuit instead of thank to him)

ofc i will share, if i will port it. I would like to be be a student again, with more free time :slight_smile:

Anyway ty for idea.

he post fix for creators, and they made lawsuit instead of thank to him
Really? I'd like a link to read up on that. I've generally heard nothing but positive things about GitHub and its management, so this comes as quite the surprise to me.

I’m not proposing a port though. It would be better to create bindings for it, like we’ve done with the Bullet Physics library.

1 Like

like 2 years ago, when i was studying, professor(that teaches Ruby on Rails) told us about this case(more particularly)

i found link and i think it’s about it:

Huh, interesting case indeed. Couldn’t find anything about a lawsuit though. Quite on the contrary:

GitHub fixed the vulnerability in less than an hour and temporarily suspended Homakov's account pending an investigation into his actions. His account was later reinstated after the GitHub team determined that his intentions were not malicious.

it was like 2 years ago, so, maybe i could change facts, but i remember that professor told that he(hacker) was punished instead of awarded. So i can be wrong about lawsuit, but this is what i remember from his words.

On the Github story:
Perspective of Github: https://github.com/blog/1069-responsible-disclosure-policy
Perspective of the temporarily suspended user: http://egorhomakov.com/post/44506887852/commit-that-changed-my-life
Oh, and Egor has been thanked actually; he’s on the list of people who helped Github with securty.

tl;dr: Everybody is sorry, nobody intended harm, all is well between Github and Egor Homakov.

@oxplay2 Spreading damaging false rumours about somebody is called slander, and it’s unethical.
Aggravating is that checking your facts would have been simple. Digging up and reading the above links took me less time than wording this posting.
Mitigating is that you didn’t do it intentionally (I’m pretty sure of that).
Still, I ask you to do at least basic checking before giving advice, or repeating rumours.

And now… I’d be happy to see this thread return on topic.

1 Like

yeah, just kill me

all i know is what i remember, so maybe it was just about other case.

@erlend_sh said: If you could make bindings for the unported recastnavigation that would be huge.

Ca. 60k lines of C++ code if I read Contributors to recastnavigation/recastnavigation · GitHub correctly. A lot of that is documentation and stuff that’s irrelevant in Java (such as memory management) and JME (such as triangle storage - scene graph code should do).
That’s way less than Bullet (fortunately), but nothing that can be ported in a lazy weekend. It might be easier to figure out the algorithms used and rewrite the thing from scratch in Java.

Things that I don’t see it covering:

  1. Going upwards is harder than walking a level surface. Agents should consider that by factoring in a higher distance for plans that involve an upward slope (this could complicate the computations). Similar considerations apply for rough ground (gravel, swamp etc.), and obstacles that don’t block a path but need to be jumped or otherwise require extra effort.
  2. Agents that can walk vertical or overhanging surfaces. E.g. the Xenomorphs can climb walls and ceilings in the various Alien/Predator games.
1 Like