<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Game Engines to Model MAS: A Research Roadmap</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Stefano Mariani</string-name>
          <email>s.mariani@unibo.it</email>
        </contrib>
      </contrib-group>
      <fpage>106</fpage>
      <lpage>111</lpage>
      <abstract>
        <p>-Game engines are gaining increasing popularity in various computational research areas, and in particular in the context of multi-agent systems (MAS)-for instance, to render augmented reality environments, improve immersive simulation infrastructures, and so on. Existing examples of successful integration between game engines and MAS still focus on specific technology-level goals, rather than on shaping a general-purpose game-based agent-oriented infrastructure. In this roadmap paper, we point out the conceptual issues to be faced while attempting to exploit game engines as agent-oriented infrastructures, and outline a possible research roadmap to follow, backed up by some early experiments involving the Unity3D engine.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>RESEARCH LANDSCAPE</p>
      <p>As a preparatory background for the remainder of the
paper, in this section we briefly recall agent-oriented abstractions
(Subsection I-A) and overview early attempts to exploit game
engines within multi-agent systems (Subsection I-B),
motivating the need for further advancing their pioneer experience
(Subsection I-C).</p>
    </sec>
    <sec id="sec-2">
      <title>A. Agents &amp; MAS</title>
      <p>
        Agent-oriented models and technologies represent the
richest sources of abstractions and mechanisms for the engineering
of complex software systems—in particular, those demanding
for advanced features such as distribution, interoperability,
intelligence, mobility, and autonomy [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Multi-agent systems
(MAS) in particular provide a well-established technological
framework for all those scenarios mandating for
decentralisation, fault-tolerance, adaptiveness, situatedness, and
selforganisation. As its basic design abstractions, any MAS
features agents as the proactive components of the system, the
environment as the (mainly) reactive, either virtual or physical
context where the agents are situated, and agent societies as
a way to capture and possibly govern agents relationships of
any sort [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>
        More in detail, agents are computational entities whose
defining feature is autonomy [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Agents model activities
within a MAS, expressed in terms of their actions along
with their motivations—namely, the goals and intentions that
prompt and set the agent’s course of actions. Agent societies
represent then the groups where MAS collective behaviours
are coordinated towards the achievement of the overall system
goals. Coordination models and languages are then the most
suitable tools to tackle complexity in MAS [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], as they are
explicitly meant to supply the abstractions that “glue” agents
together [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] by governing agent interaction [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
      </p>
      <p>
        Besides agents and societies, environment is an essential
abstraction for MAS modelling and engineering [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], to be
suitably represented, and related to agents. On the one side,
the notion of environment captures the unpredictability of the
MAS context, by modelling the external resources and features
that are relevant for the MAS, along with their evolution over
time. On the other side, it makes it possible to model the
resources, tools, services that agents and MAS need to carry
on their own activities. Along with the notion of situated
action – as the realisation that coordinated, social, intelligent
action arises from strict interaction with the environment,
rather than from rational practical reasoning [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] – this leads to
the requirement of situatedness for agents and MAS, often
translated into the need of being sensitive to environment
change [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
    </sec>
    <sec id="sec-3">
      <title>B. Game Engines</title>
      <p>Game Engines (GE) are increasingly popular in many
different areas of computer science. In particular, they are
mostly used in order to implement two MAS abstractions,
that is, agents and MAS environment—typically, in specific
domains, aimed at achieving some specific goals. For instance,</p>
      <p>
        QuizMASter [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] focusses on the agent abstraction by
linking MAS agents to game engines characters, in the
context of educational learning
CIGA [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] considers both agents and environment
modelling, for general-purpose virtual agents in virtual
environments
GameBots [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] focusses on the agent abstraction, but
still considers environment while providing a
development framework and runtime for multi-agent systems
testing in virtual environments
UTSAF [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] focusses on environment modelling in
the context of distributed simulations in the military
domain1
Although they clearly represent examples of (partially)
successful integration of MAS within GE, the aforementioned
works share a few shortcomings w.r.t. the goal we pursue in
this paper:
      </p>
      <p>1Agents are considered, but only as an integration means between different
simulation platforms, not in the context of the GE exploited for simulation
rendering.
with the only exception of CIGA (which recognises
the conceptual gap between MAS and GE, and
proposes solutions to deal with it—although on the
technological level), the only layer taken into account
while pursuing integration is the technological one—
no model, no architecture, no language
integration is mostly domain- and goal-specific—as it
happens for instance in QuizMASter and UTSAF, and
even in GameBots to some extent2
whereas most approaches provide programmers with
some abstractions to deal with agents and
environment, no attention is given to social abstractions</p>
    </sec>
    <sec id="sec-4">
      <title>C. Motivation</title>
      <p>Besides the lack of completeness and generality just
highlighted, and the increasing interest in the topic, a few other
considerations motivate worthiness of our research efforts.</p>
      <p>First of all, there is huge gap in the technological
advancement GE have reached w.r.t. the technological level of
agentoriented infrastructures born within the academic community.
This should not surprise anyone: the gaming scene may rely
on a billionaire industry and on millions of developers and
testers (besides gamers), which are well paid to push stability,
performance, usability of their products to unprecedented
and incomparable levels of quality. Therefore, it is worth to
consider the possibility of taking advantage of such a
finelyoptimised products for improving the overall quality of MAS
technologies.</p>
      <p>Second, and dually, there is a huge gap in the conceptual
and design abstractions GE provides to developers w.r.t. far
richer abstractions agent-oriented software engineering
provides. All the GE we considered in this paper provide really
low level abstractions, especially on the agent side, where,
for instance, programming cyclic behaviour amounts to write
coroutines spanning multiple rendering stages.</p>
      <p>
        Third, integrating MAS with GE may provide novel
solutions to deal with the typical issues of augmented reality
scenarios, such as those targeted by the mirror worlds model
[
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], in which coordination is requested to be space-aware and
spatially situated in a physical environment.
      </p>
      <p>
        For the above reasons, in this paper we provide the
foundation for a research roadmap towards a well-founded
integration of GE and MAS, with particular emphasis on
how GE could be exploited so as to model MAS constituent
abstractions not just as a solution to a rendering problem,
but as they provide rather rich features and stimulating
opportunities, in general. Accordingly, Section II tries to map
MAS abstractions upon those provided by two exemplary and
widespread GE—Unity3D (Subsection II-A) and Unreal
Engine (Subsection II-B); Section III discusses the general issue
of exploiting GE to model MAS given the aforementioned
analysis, providing a first working prototype of a tuple-based
coordinated MAS [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] implemented in Unity3D as a
proof-ofconcept; finally Section IV provides final remarks along with
a research roadmap for organising exploration of such a novel
research line.
•
•
•
•
•
      </p>
      <sec id="sec-4-1">
        <title>AGENTS, ENVIRONMENT, AND SOCIETIES</title>
        <p>IN GAME ENGINES</p>
        <p>Game Engines (GE) are frameworks for supporting
design and development of games. Modern GE are all-around
frameworks geared toward every aspect of game design and
development, such as 2D/3D rendering of game scenes, physics
engines for environmental dynamics (movements, particles
dynamics, collision detection, obstacle avoidance, etc.), sounds,
behavioural scripting, characters’ artificial intelligence, and
much more.</p>
        <p>As meaningful examples well representing the full range
of available platforms, in this section we examine two of the
most popular and used GE – Unity3D and Unreal Engine –
with the aim of:
detecting those abstractions and mechanisms most
likely to have a counterpart in MAS, or at least those
which seem to provide some support in re-formulating
MAS missing abstractions
highlighting opportunities for closing
conceptual/technical gaps hindering integration of the two worlds</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>A. Unity3D</title>
      <p>Unity3D3 is developed by Unity Technologies, and (as
of version 5.3.4) it features a few abstractions worth to be
mentioned here:
the game object, which actually is the only first-class
citizen in Unity3D world, being everything a scene
contains a game object: a human player, a Non-Player
Character (NPC), an environmental item, everything
the script, which is a piece of code defining the
behaviour to be attached to a game object; scripts are
executed by the unique Unity3D game loop, which
sequentially executes once each script at each game
frame rendered—no concurrency, all the scripts must
be executed within each frame rendering step
the co-routine, which acts as a sort of workaround to
sequentiality imposed to scripts, by enabling
developers to partition a computation and distribute its pieces
over multiple frame rendering steps, suspending and
resuming execution at precise points within the code
through explicit API calls
Looking at MAS, the abstraction gap is quite wide, being
Unity3D totally missing an agenthood abstraction as well as
dedicated abstractions to handle sociality.</p>
      <p>
        The only MAS abstraction somehow represented and
directly supported is that of environment, through game objects.
Indeed, in some sense, its support to environment modelling,
control, and interaction is far superior w.r.t. the average MAS
technology – e.g. JADE[
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], Jason [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], RETSINA [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ],
TuCSoN [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], CArtAgO [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] –, since Unity3D is capable of
directly supporting many forms of agent-environment
interaction, such as shaping movement pathways, handling obstacle
avoidance and collision detection, and the like.
2It focusses on rapid prototyping and testing MAS in virtual worlds.
3http://unity3d.com
      </p>
      <p>As far as agenthood is concerned, no first-class abstraction
is provided by Unity3D. However, there is still an opportunity
for bridging the gap, although mostly through a workaround:
the combination of a game object with an attached behavioural
script (and possibly a co-routine too) is the best we can ask
for to Unity3D. However, most of the behavioural logic would
have to be implemented by the developer with little or even
no support from Unity3D.</p>
      <p>To conclude analysis of Unity3D, also a societal abstraction
is missing among first-class ones. However, the possibility to
leverage some sort of message passing4 among game objects,
in various forms such as unicast based on objects unique
names, multicast based on tags attributed to arbitrary group
of objects, and broadcast by generally referring to the scene,
makes it possible to implement message-based interaction—
and coordination, to some extent (see Subsection III-A).</p>
      <p>Summing up, both agenthood and sociality present a quite
large abstraction gap to fill in order to conceptually frame an
integration effort, whereas on the environment side, although
the gap is less apparent, mapping is still far from being perfect.
On a more technical level, there are opportunities for exploiting
workarounds, but the implementation effort to reconstruct even
a primitive support to agenthood is expected to be huge, the
same holding for more complex forms of interaction, such as
asynchronous conversations and full-fledged protocols.</p>
    </sec>
    <sec id="sec-6">
      <title>B. Unreal Engine</title>
      <p>Unreal Engine5 is developed by Epic Games, and (as of
version 4) it features a few abstractions worth to be described
for the purpose of the paper:
•
•
•
•
the game object, similar to Unity3D game objects,
except they are not the only first-class abstractions—
see below
the actor, which is any game component which can
be rendered, and whose behaviour is enacted by a
controller, either interfacing a human player or an
artificial intelligence (bot);characters are a special kind
of actor with humanoid resemblance and capabilities
(e.g. walking)
the blueprint, similar to Unity3D script, being more
or less the code6 specifying the behaviour of an actor
the direct blueprint communication, which enables
blueprints to communicate one-to-one; also, the event
is a game-related happening (e.g. level started, damage
taken, shots fired, etc.) which may trigger execution
of blueprints code; finally, the event dispatcher plays
the role of producer in a publish/subscribe-like
communication architecture, where blueprints always play
the role of consumers
As far as the MAS model is concerned, the abstraction gap
is still considerable—yet possibly smaller, if compared to
Unity3D.</p>
      <p>4Actually, sending a message to an entity requires to specify which method
the receiver is expected to execute to handle reception.</p>
      <p>5http://www.unrealengine.com
6Actually, blueprints are programmed visually, by wiring functions, data,
etc. in a graphical editor.</p>
      <p>In fact, agenthood can be reconstructed based on actors and
blueprints, whereas social interaction may be engineered on
top of event dispatchers and direct blueprint communications—
although still with considerable conceptual and technical
effort. Finally, on the environment side, the situation is almost
identical to the one described for Unity3D.</p>
      <p>III.</p>
      <sec id="sec-6-1">
        <title>GE &amp; MAS: TOWARDS THE INTEGRATION</title>
        <p>Based on the analysis reported in Section II, integration
between GE and MAS is certainly interesting, likely useful,
and seemingly possible—although with considerable effort
according to the state of art.</p>
        <p>
          It is worth to note here that besides trying to reconstruct
MAS abstractions by (ab)using GE features, another path
toward integration is available, promoted by, e.g., literature on
mirror worlds [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ], that is, virtual representations of the real
world—which in this case might be virtual too. In fact, it is
possible to imagine MAS agents exploiting GE to represent the
physical/virtual environment they are immersed in (situated)
so as to delegate to the GE handling of, e.g., movement,
environment-mediated interaction, discovery, and the like. The
social dimension may be kept within the MAS world if direct
communication between agents is needed, or expanded to the
GE virtual world if communication mediated by the
environment is what MAS designers are looking for. Nevertheless,
the virtual world managed by the GE may influence social
interactions, e.g., by either facilitating or hindering discovery.
        </p>
        <p>In the following section, we report on an early experiment
conducted to verify feasibility of the aforementioned approach.</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>A. A Case Study</title>
      <p>We test the extent to which workarounds can be exploited
to reconstruct some (approximated) MAS notions – agenthood,
social interaction, and environment mediation – in Unity3D by
implementing the most well-known scenario involving all the
aforementioned facets of a MAS: the Dining Philosophers (DP)
coordination problem, tackled in a shared-space setting.</p>
      <p>
        In the DP scenario, depicted in Figure 1, five
philosophers are sharing a table with a big spaghetti bowl, five
smaller bowls, five chopsticks, and five chairs (one for each
philosopher)—the scenario can be easily extended to an
arbitrary number of philosophers. Thus, there are agents –
the philosophers – and an environment with a few shared
resources—the chopsticks and the chairs. On the society side,
philosophers interact and coordinate by exploiting environment
mediation: in fact, we choose to solve the dining
philosophers coordination problem adopting a tuple-based approach
[
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. Accordingly, the table plays the role of the tuplespace,
chopsticks of shared tuples, and chairs decouple and mediate
interaction, while enabling situated coordination.
      </p>
      <p>First of all, the tuple space is implemented by decorating
the table game object with a few properties: a tupleSet
(list of strings) representing the tuple storage medium, a
inputQueue tracking requests for tuples (Unity3D messages)
as soon as they arrive, and a pendingQueue tracking requests
yet unsatisfied. Three request types are supported: out, in,
rd. Operationally, at every frame rendering step, the table
script does the following:
1) the pendingQueue is considered first, and the request
type is checked
sitting on it.
in case of an out, the pendingQueue is checked
looking for pending requests having a matching
template
◦ in case there is a pending request, it is served</p>
      <p>and removed from the queue
◦ in case there is not, the tuple is inserted in</p>
      <p>the tupleSet
• in case of an in, if it is satisfiable, that is, a
tuple matching the given template (simple regular
expressions on strings) exists, the tuple is removed
from the tupleSet and given to the requestor—
whose reference is dynamically retrieved
• in case of a rd, if it is satisfiable the tuple is not
removed and given to the requestor
2) the inputQueue is considered then, and the request type
is checked as above
3) in case requests cannot be satisfied, they are
either removed from the inputQueue and put into the
pendingQueue, or kept in the latter
Agent game objects are implemented to request the three
coordination primitives provided by the table synchronously,
exploiting Unity3D co-routines: for every request sent, the
agent waits for a reply, suspending execution (actually,
delaying to next frame rendering step) until it arrives.</p>
      <p>Chairs work as decouplers of interaction as well as
situatedness enablers, by letting philosophers dynamically acquire
the right chopsticks based on their position at the table. In
fact, philosopher agents asks for chopsticks to the chair they
are currently sit on, rather than directly to the table, and do
not explicitly refer chopsticks: not by name, neither by address,
nor by any other means. Each chair dynamically knows where
it is w.r.t. the table and therein placed chopsticks thanks to
raytracing, enabling game objects to detect nearby objects.
Then, it is the chair that asks the table for the right pair of
chopsticks on behalf of the philosopher agent that is currently</p>
      <p>The scenario works as follows:
1) each philosopher thinks until it gets hungry
2) when this happens, it looks for a free chair to sit—
exploiting raytracing
3) when a free chair is found, the philosopher goes there –
movement pathway and collision avoidance are a “free
lunch” when using GE – and sits, waiting to acquire the
chopsticks required according to the position of the chair
w.r.t. the table
4) when a chair gets occupied, it acquires information about
which chopsticks should be handed over to the hungry
philosopher – through raytracing – and performs the
corresponding requests to the table—on behalf of the
agent
•
•
in case the requests are satisfied, the philosopher
starts eating (Figure 2)—and leaves the chair to
think again when done, thus restarting its
thinkingeating loop
in case at least one request cannot be satisfied, the
philosopher waits as described above (Figure 3)
All interactions happen through Unity3D messaging facilities.</p>
      <p>IV.</p>
      <sec id="sec-7-1">
        <title>DISCUSSION &amp; ROADMAP</title>
        <p>The implementation effort described in Subsection III-A,
although rather successful on the technical side, raises many
conceptual issues regarding MAS and GE integration in the
same infrastructure.</p>
        <p>First of all, agent autonomy is all but trivial to preserve:
regardless of the approach taken to marry MAS and GE
– either the reconstruction one or the mirror worlds one –
autonomy is likely to be the toughest issue to tackle. For GE
very own nature, the flow of control should be in their hands
no matter what, because fluidity of the rendering process is the
foremost concern. This is an obvious clash with the definition
of autonomy as encapsulation of the flow of control and of the
criteria to handle it. However, co-routines in Unity3D and the
actor abstraction in Unreal Engine may be exploited to build
some notion of autonomy, and/or for linking virtual agents in
a mirror world with their MAS counterparts while preserving
their autonomy.</p>
        <p>As far as situatedness is concerned, thus focussing on the
environment abstraction, things get better: being environmental
resources and agent-environment interaction first-class citizens
in any GE, any MAS willing to exploit GE facilities is
likely to benefit of some free lunch—e.g. movement pathways
computation, objects discovery, collision avoidance.</p>
        <p>Finally, when focussing on the social side, issues differ
depending the kind of interaction: for direct interactions among
agents, support provided by GE is limited to basic
messagepassing facilities; for environment-mediated interactions,
support is a lot better thanks to situatedness-related features such
as discovery, routing, etc.</p>
        <p>Summing up, from the early conceptual speculations and
practical experimentations undertaken in this work, we can
guess that integration is likely to happen, at least at first, mainly
through environmental abstractions, since they are the most
well represented in the GE world. Accordingly, we conclude
the paper by outlining the research roadmap we think is the
more likely to lead to some successful results.</p>
        <p>First of all, the mirror worlds approach seems the most
appropriate, given that the reconstruction approach is hindered
by the constraints on the flow of control imposed by
state-ofart-GE technologies.</p>
      </sec>
    </sec>
    <sec id="sec-8">
      <title>Then, environmental abstractions as provided by MAS and</title>
      <p>
        GE should be carefully analysed to seek for mapping
opportunities, with the aim of drawing correspondences between
the GE-based virtual representation of the MAS world—which
could be virtual, physical, hybrid. An interesting path to follow
in this sense is represented by, e.g., the artefact abstraction [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]
as defined in the A&amp;A meta-model for MAS [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>Once that the environment layer of the envisioned
GEbased MAS is settled, agenthood could be (re)shaped around
this, by exploiting GE capabilities regarding situated
interaction. For instance, whereas the goal-directed/oriented
behaviour of agents could be still programmed on top of the
more expressive mechanisms provided by traditional MAS
paradigms, such as BDI reasoning, it could also take advantage
of GE features for, e.g., practical reasoning and situated
planning, relying on GE virtual world representation to, e.g.,
estimate the effects of actions.</p>
      <p>Sociality too can be (re)shaped around the environmental
layer: for instance, whereas direct communication between
agents may be still allowed and based on traditional MAS
mechanisms, accessory facilities may be delegated to the GE
part of the system, such as discovery of recipients based on
spatial proximity.</p>
      <p>This way, a GE-based MAS infrastructure could in
principle be designed, by suitably integrating the different
mechanisms and paradigms brought by GE and MAS around
environmental abstractions, while avoiding to abuse either technology
so as to carrying out activities and pursuing goals it was
not meant to deal with—such as, for instance, attempting to
reconstruct some notion of autonomy for GE agents.</p>
      <sec id="sec-8-1">
        <title>ACKNOWLEDGEMENTS</title>
        <p>We would like to thank Mattia Cerbara and Nicola Poli
for their analysis of Unity3D and Unreal Engine, and for the
prototype implementation of the case study. Also, our gratitude
goes to the reviewers, stimulating the discussion in Section IV
with their stimulating questions and thoughtful remarks.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>F.</given-names>
            <surname>Zambonelli</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Omicini</surname>
          </string-name>
          , “
          <article-title>Challenges and research directions in agent-oriented software engineering</article-title>
          ,” Autonomous Agents and
          <string-name>
            <surname>Multi-Agent</surname>
            <given-names>Systems</given-names>
          </string-name>
          , vol.
          <volume>9</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>253</fpage>
          -
          <lpage>283</lpage>
          , Nov.
          <year>2004</year>
          , Special Issue:
          <article-title>Challenges for Agent-Based Computing</article-title>
          . [Online]. Available: http://link.springer.com/10.1023/B:AGNT.
          <volume>0000038028</volume>
          .66672.1e
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>D.</given-names>
            <surname>Weyns</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Omicini</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J. J.</given-names>
            <surname>Odell</surname>
          </string-name>
          , “
          <article-title>Environment as a firstclass abstraction in multi-agent systems</article-title>
          ,” Autonomous Agents and
          <string-name>
            <surname>Multi-Agent</surname>
            <given-names>Systems</given-names>
          </string-name>
          , vol.
          <volume>14</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>5</fpage>
          -
          <lpage>30</lpage>
          , Feb.
          <year>2007</year>
          ,
          <article-title>Special Issue on Environments for Multi-agent Systems</article-title>
          . [Online]. Available: http://link.springer.
          <source>com/10.1007/s10458-006-0012-0</source>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>A.</given-names>
            <surname>Omicini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ricci</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Viroli</surname>
          </string-name>
          , “
          <article-title>Artifacts in the A&amp;A meta-model for multi-agent systems</article-title>
          ,” Autonomous Agents and
          <string-name>
            <surname>Multi-Agent</surname>
            <given-names>Systems</given-names>
          </string-name>
          , vol.
          <volume>17</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>432</fpage>
          -
          <lpage>456</lpage>
          , Dec.
          <year>2008</year>
          , special Issue on Foundations,
          <article-title>Advanced Topics and Industrial Perspectives of Multi-Agent Systems</article-title>
          . [Online]. Available: http: //link.springer.com/10.1007/s10458-008-9053-x
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>P.</given-names>
            <surname>Ciancarini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Omicini</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Zambonelli</surname>
          </string-name>
          , “
          <article-title>Multiagent system engineering: The coordination viewpoint,” in Intelligent Agents VI. Agent Theories, Architectures, and Languages, ser</article-title>
          . LNAI,
          <string-name>
            <given-names>N. R.</given-names>
            <surname>Jennings</surname>
          </string-name>
          and Y. Lespe´rance, Eds. Springer,
          <year>2000</year>
          , vol.
          <volume>1757</volume>
          , pp.
          <fpage>250</fpage>
          -
          <lpage>259</lpage>
          . [Online]. Available: http://link.springer.
          <source>com/10.1007/10719619 19</source>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>D.</given-names>
            <surname>Gelernter</surname>
          </string-name>
          and
          <string-name>
            <given-names>N.</given-names>
            <surname>Carriero</surname>
          </string-name>
          , “
          <article-title>Coordination languages and their significance,” Communications of the ACM</article-title>
          , vol.
          <volume>35</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>97</fpage>
          -
          <lpage>107</lpage>
          ,
          <year>1992</year>
          . [Online]. Available: http://dl.acm.org/citation.cfm?doid=
          <fpage>129635</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>P.</given-names>
            <surname>Ciancarini</surname>
          </string-name>
          , “
          <article-title>Coordination models and languages as software integrators,” ACM Computing Surveys</article-title>
          , vol.
          <volume>28</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>300</fpage>
          -
          <lpage>302</lpage>
          , Jun.
          <year>1996</year>
          . [Online]. Available: http://dl.acm.org/citation.cfm?doid=
          <fpage>234732</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>P.</given-names>
            <surname>Wegner</surname>
          </string-name>
          , “
          <article-title>Coordination as constrained interaction,” in Coordination Languages and Models, ser</article-title>
          . Lecture Notes in Computer Science, P. Ciancarini and C. Hankin, Eds. Springer,
          <year>1996</year>
          , vol.
          <volume>1061</volume>
          , pp.
          <fpage>28</fpage>
          -
          <lpage>33</lpage>
          . [Online]. Available: http://link.springer.
          <source>com/10.1007/3-540-61052-9 37</source>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>L. A.</given-names>
            <surname>Suchman</surname>
          </string-name>
          , “
          <article-title>Situated actions,” in Plans and Situated Actions: The Problem of Human-Machine Communication</article-title>
          . New York, NYU, USA: Cambridge University Press,
          <year>1987</year>
          , ch. 4, pp.
          <fpage>49</fpage>
          -
          <lpage>67</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>J.</given-names>
            <surname>Ferber</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.-P.</given-names>
            <surname>Mu</surname>
          </string-name>
          <article-title>¨ller, “Influences and reaction: A model of situated multiagent systems</article-title>
          ,
          <source>” in 2nd International Conference on Multi-Agent Systems (ICMAS-96)</source>
          , M. Tokoro, Ed. Tokio, Japan: AAAI Press, Dec.
          <year>1996</year>
          , pp.
          <fpage>72</fpage>
          -
          <lpage>79</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>J.</given-names>
            <surname>Blair</surname>
          </string-name>
          and
          <string-name>
            <given-names>F.</given-names>
            <surname>Lin</surname>
          </string-name>
          , “
          <article-title>An approach for integrating 3D virtual worlds with multiagent systems,” in Advanced Information Networking and Applications (WAINA</article-title>
          ),
          <source>2011 IEEE Workshops of International Conference on, Mar</source>
          .
          <year>2011</year>
          , pp.
          <fpage>580</fpage>
          -
          <lpage>585</lpage>
          . [Online]. Available: http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=
          <fpage>5763564</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>J. van Oijen</surname>
          </string-name>
          , L. Vanhe´e, and
          <string-name>
            <given-names>F.</given-names>
            <surname>Dignum</surname>
          </string-name>
          ,
          <article-title>CIGA: A Middleware for Intelligent Agents in Virtual Environments</article-title>
          . Berlin, Heidelberg: Springer Berlin Heidelberg,
          <year>2012</year>
          , pp.
          <fpage>22</fpage>
          -
          <lpage>37</lpage>
          . [Online]. Available: http://dx.doi.
          <source>org/10.1007/978-3-642-32326-3 2</source>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>G. A.</given-names>
            <surname>Kaminka</surname>
          </string-name>
          ,
          <string-name>
            <surname>M. M. Veloso</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Schaffer</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Sollitto</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Adobbati</surname>
            ,
            <given-names>A. N.</given-names>
          </string-name>
          <string-name>
            <surname>Marshall</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Scholer</surname>
            , and
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Tejada</surname>
          </string-name>
          , “
          <article-title>GameBots: A flexible test bed for multiagent team research,” Communications of the ACM</article-title>
          , vol.
          <volume>45</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>43</fpage>
          -
          <lpage>45</lpage>
          , Jan.
          <year>2002</year>
          . [Online]. Available: http://dl.acm.org/citation.cfm?doid=
          <fpage>502293</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>P.</given-names>
            <surname>Prasithsangaree</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Manojlovich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Hughes</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Lewis</surname>
          </string-name>
          , “
          <article-title>UTSAF: A multi-agent-based software bridge for interoperability between distributed military and commercial gaming simulation</article-title>
          ,
          <source>” Simulation</source>
          , vol.
          <volume>80</volume>
          , no.
          <issue>12</issue>
          , pp.
          <fpage>647</fpage>
          -,
          <year>2004</year>
          . [Online]. Available: http://sim.sagepub.com/content/80/12/647
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>A.</given-names>
            <surname>Ricci</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Croatti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Brunetti</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Viroli</surname>
          </string-name>
          , “
          <article-title>Programming mirror worlds: An agent-oriented programming perspective,” in Engineering Multi-Agent Systems, ser</article-title>
          . Lecture Notes in Computer Science,
          <string-name>
            <given-names>M.</given-names>
            <surname>Baldoni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Baresi</surname>
          </string-name>
          , and M. Dastani, Eds. Springer,
          <year>2015</year>
          , vol.
          <volume>9318</volume>
          , pp.
          <fpage>191</fpage>
          -
          <lpage>211</lpage>
          , 3rd International Workshop, EMAS 2015, Istanbul, Turkey, May 5,
          <year>2015</year>
          , Revised, Selected, and Invited Papers. [Online]. Available: http://link.springer.
          <source>com/10.1007/978-3-319-26184-3 11</source>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>D.</given-names>
            <surname>Rossi</surname>
          </string-name>
          , G. Cabri, and E. Denti, “
          <article-title>Tuple-based technologies for coordination,” in Coordination of Internet Agents: Models, Technologies, and</article-title>
          <string-name>
            <surname>Applications</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Omicini</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Zambonelli</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Klusch</surname>
          </string-name>
          , and R. Tolksdorf, Eds. Springer, Jan.
          <year>2001</year>
          , ch. 4, pp.
          <fpage>83</fpage>
          -
          <lpage>109</lpage>
          . [Online]. Available: http://link.springer.
          <source>com/10.1007/978-3-662-04401-8 4</source>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>F. L.</given-names>
            <surname>Bellifemine</surname>
          </string-name>
          , G. Caire, and
          <string-name>
            <given-names>D.</given-names>
            <surname>Greenwood</surname>
          </string-name>
          ,
          <article-title>Developing MultiAgent Systems with JADE</article-title>
          . Wiley, Feb.
          <year>2007</year>
          . [Online]. Available: http://eu.wiley.com/WileyCDA/WileyTitle/productCd-0470057475.html
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>R. H.</given-names>
            <surname>Bordini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. F.</given-names>
            <surname>Hu</surname>
          </string-name>
          <article-title>¨bner, and</article-title>
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Wooldridge</surname>
          </string-name>
          ,
          <article-title>Programming Multi-Agent Systems in AgentSpeak using Jason</article-title>
          . John Wiley &amp; Sons, Ltd, Oct.
          <year>2007</year>
          . [Online]. Available: http://eu.wiley.com/WileyCDA/ WileyTitle/productCd-0470029005.html
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>K.</given-names>
            <surname>Sycara</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Paolucci</surname>
          </string-name>
          ,
          <string-name>
            <surname>M. Van Velsen</surname>
            ,
            <given-names>and J.</given-names>
          </string-name>
          <string-name>
            <surname>Giampapa</surname>
          </string-name>
          , “
          <article-title>The RETSINA MAS infrastructure</article-title>
          ,” Autonomous Agents and
          <string-name>
            <surname>Multi-Agent</surname>
            <given-names>Systems</given-names>
          </string-name>
          , vol.
          <volume>7</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>29</fpage>
          -
          <lpage>48</lpage>
          ,
          <year>2003</year>
          . [Online]. Available: http://link.springer.com/10.1023/A:1024172719965
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>A.</given-names>
            <surname>Omicini</surname>
          </string-name>
          and
          <string-name>
            <given-names>F.</given-names>
            <surname>Zambonelli</surname>
          </string-name>
          , “
          <article-title>Coordination for Internet application development</article-title>
          ,” Autonomous Agents and
          <string-name>
            <surname>Multi-Agent</surname>
            <given-names>Systems</given-names>
          </string-name>
          , vol.
          <volume>2</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>251</fpage>
          -
          <lpage>269</lpage>
          , Sep.
          <year>1999</year>
          , special Issue:
          <article-title>Coordination Mechanisms for Web Agents</article-title>
          . [Online]. Available: http://link.springer.com/10.1023/ A:1010060322135
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>A.</given-names>
            <surname>Ricci</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Piunti</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Viroli</surname>
          </string-name>
          , “
          <article-title>Environment programming in multi-agent systems - an artifact-based perspective</article-title>
          ,” Autonomous Agents and
          <string-name>
            <surname>Multi-Agent</surname>
            <given-names>Systems</given-names>
          </string-name>
          , vol.
          <volume>23</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>158</fpage>
          -
          <lpage>192</lpage>
          , Sep.
          <year>2011</year>
          ,
          <string-name>
            <given-names>Special</given-names>
            <surname>Issue</surname>
          </string-name>
          <article-title>: Multi-Agent Programming</article-title>
          . [Online]. Available: http://link.springer.
          <source>com/10.1007/s10458-010-9140-7</source>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>