First, from your point of view, why should another developer use the EnvSupport instead of, say, Swing for displaying and interacting with a multi agent system? I'm sure
It's very useful for large complex systems, but for projects the size of the examples provided with Jadex such as Cleaner World, it just seems so complex to think of it in term of Spaces, Percepts, Processes, Avatars, etc.
Second, any plans for an Env Tutorial? Alternatively, which examples should I analyse to learn more about using environments? Are environments Java Classes in Jadex 2.4 or just configurations in the XML?
To summarize, could you try to convice me to use EnvSupport?
Thanks in advance!
lopis
Last edit: lopis 2013-11-07
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I will not try to convince you using EnvSupport, it is of course just a matter of taste how you want to design and implement environments. EnvSupport has been conceived to speed up the development of agent based simulations with 2d/3d visualization support (cf. the agentkeeper project http://code.google.com/p/jadex-agentkeeper/ ). In your case it might be a smart solution to just implement an environment object or service (if it should be used in a dsitributed setting) and implement the getNearObjects() on your own using the kd-tree algorithm.
Philip is working on a tutorial for 3d environments in the spirit of agentkeeper but it concentrates on 3d issues.
Best Lars
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
please also note that EnvSupport offers a lot of functionality to address a large variety of simulation problems, so not all the concepts like percepts and so on and always needed.
Also, EnvSupport not only provides graphical support (though it does with optional 2D OpenGL acceleration and 3D support) but also addresses other issues with simulation. Some of the issues exist whether you use EnvSupport or not: How do you address timing? What is the relationship between software agents and the world objects? (Is it 1:1 ("Avatar")? Or 1:m? Or even m:n? (shared objects)). Should all the fine-grained logic (movement and position vector calculations) be done with the agent or can it be "outsourced" to the space object ("Tasks") and the agent only generates high-level commands ("move to position x,y")? How do I organize the communication between objects within the environment and the software agents?
What EnvSupport does is offer a tool kit to quickly address these issues. As a result, it is fairly complex and offers a lot of options. However, like Lars pointed out, it's not necessary to use all or any of them.
With regards
Kai
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Dear devs!
I've been reading about environments in Jadex.
First, from your point of view, why should another developer use the EnvSupport instead of, say, Swing for displaying and interacting with a multi agent system? I'm sure
It's very useful for large complex systems, but for projects the size of the examples provided with Jadex such as Cleaner World, it just seems so complex to think of it in term of Spaces, Percepts, Processes, Avatars, etc.
Second, any plans for an Env Tutorial? Alternatively, which examples should I analyse to learn more about using environments? Are environments Java Classes in Jadex 2.4 or just configurations in the XML?
To summarize, could you try to convice me to use EnvSupport?
Thanks in advance!
lopis
Last edit: lopis 2013-11-07
Hello Lopis,
I will not try to convince you using EnvSupport, it is of course just a matter of taste how you want to design and implement environments. EnvSupport has been conceived to speed up the development of agent based simulations with 2d/3d visualization support (cf. the agentkeeper project http://code.google.com/p/jadex-agentkeeper/ ). In your case it might be a smart solution to just implement an environment object or service (if it should be used in a dsitributed setting) and implement the getNearObjects() on your own using the kd-tree algorithm.
Philip is working on a tutorial for 3d environments in the spirit of agentkeeper but it concentrates on 3d issues.
Best Lars
ETA on the tutorial?
Hello Lopis,
please also note that EnvSupport offers a lot of functionality to address a large variety of simulation problems, so not all the concepts like percepts and so on and always needed.
Also, EnvSupport not only provides graphical support (though it does with optional 2D OpenGL acceleration and 3D support) but also addresses other issues with simulation. Some of the issues exist whether you use EnvSupport or not: How do you address timing? What is the relationship between software agents and the world objects? (Is it 1:1 ("Avatar")? Or 1:m? Or even m:n? (shared objects)). Should all the fine-grained logic (movement and position vector calculations) be done with the agent or can it be "outsourced" to the space object ("Tasks") and the agent only generates high-level commands ("move to position x,y")? How do I organize the communication between objects within the environment and the software agents?
What EnvSupport does is offer a tool kit to quickly address these issues. As a result, it is fairly complex and offers a lot of options. However, like Lars pointed out, it's not necessary to use all or any of them.
With regards
Kai