Visualizing the behavior of CBR agents in an FPS Scenario Philipp Yasrebi-Soppa1 , Jobst-Julius Bartels1 , Sebastian Viefhaus1 , Pascal Reuss1,2 , and Klaus-Dieter Althoff1,2 1 University of Hildesheim Samelsonplatz 1 31141 Hildesheim {reusspa, bartelsj, viefhaus, yasrebis}@uni-hildesheim.de 2 German Research Center for Artificial Intelligence (DFKI) Trippstadter Str. 122 67663 Kaiserslautern kalthoff@dfki.uni-kl.de Abstract. The analysis and visualization of agent behavior enables a developer to identify unexpected or faulty behaviors and can show room of improvement. Therefore, visualization tools can be helpful to analyze behaviors during or after simulations. This paper presents a visualization tool VISAB developed for analyzing and visualizing the movement and actions of CBR agents in a first-person scenario. We describe the settings of the scenario and in more detail the visualization possibilities to get a better understanding of agent behavior during game-play. Keywords: Visualization · Case-Based Reasoning · Agent behavior · Multi- Agent System · First-Person Scenario 1 Introduction and motivation Visualization of agent behaviors can also be helpful for teaching Artificial Intel- ligence (AI). It can be used to support students and inexperienced AI developers during knowledge modeling and designing decision making processes for agents. The goal of this work was to create a visualization tool to display agent behav- ior in a first person scenario. This scenario is part of a platform for teaching Case-based Reasoning (CBR), learning software agents and multi-agent systems (MAS) during a advanced programming practical. The basic idea of this platform is to have several modules that represent different scenarios that can be played and solved by software agents. The students design and implement an agent or a team of agents with a CBR system (or other AI technologies that enables de- cision making) for one of the given scenarios. The implemented agent then plays the scenario and the behavior of the agent will be analyzed and visualized to Copyright c 2020 by the paper’s authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0). give feedback to the students. The students should be able to watch their agent while playing and get an evaluation after completing the scenario. In addition to play a scenario solo, it will be also possible to compete with the ”home team” of agents in directly competitive scenarios. Figure 1 givens an overview of the desired architecture of the teaching platform. Fig. 1. Overview of the planned platform architecture Currently, several modules are being implemented and in different states of completion: a first-person game, a real-time strategy game, an economic simula- tion, and several board game implementations like Settlers of Catan. In addition to these playable scenarios, an administration module and a first visualization module for the first-person game are under development. The visualization com- ponent records a game and enables the user to view the game later with several options to configure the displayed information. The visualization of agent behavior in given environments with defined sur- rounding conditions enables a developer to identify unexpected or faulty behav- iors and can show points of improvement. In addition to visualizing the behavior of the agent itself, background and contextual information can be visualized, too. Using this additional information, agent behaviors and decisions can be analyzed and the decision-making process of an agent will become more comprehensible to the developer and can be better optimized. [1][5][9] This paper provides an overview of the visualization module and the imple- mented features. The remaining paper is structured as follows. Section 2 gives an overview of some related work in the field of agent behavior visualization. Section 3 describes the first-person scenario (FPS) and then in detail the visualization module for the participating agents, while Section 4 provides an overview of the performed evaluation. The paper concludes in Section 5 with a short summary and an outlook to future work. 2 Related Work Over the last decades many research activities and approaches for modeling and visualizing the behavior of software agents in different use cases were realized. To prove the functionality of an artificial intelligence, multi-agent systems became a popular application area. We focus on the FPS domain, a sub-genre of action video games. In a typical FPS game, there are two teams of typically human players trying to overcome the opposing team by either eliminating each member of the opposing team or by successfully complete another objective, such as planting a bomb at a certain place or by preventing the opposing team to do so. While both teams are actively playing at the same time, most FPS are limited by a round-time of approximately five minutes and a limited map size. Agent modeling frameworks like NetLogo[25], REPAST[11], or Pogamut[5] provide simulation and visualization capabilities beside their core design and modeling features. NetLogo was developed in 1999 and is still an active multi- agent environment today. It enables a developer to simulate complex situations with several thousand of agents in 2D or 3D. In addition, NetLogo offers to visualize several background information and to analyze the agent models with the help of different diagrams. An interesting feature of NetLogo comes with the extension HubNet. It enables the development and execution of participatory simulation for lectures. In these simulations every participating student controls a part of the overall system, for example a traffic light in a traffic simulation. [26][23] The Recursive Porous Agent Simulation Toolkit (REPAST) is an open source framework for modeling and simulation agents. Similar to NetLogo it offers the modeling and simulation of agents in 2D and 3D environments and several visualization features with diagrams and graphs.[11] REPAST was developed further into two different version, REPAST Simphony and REPAST for high performance computing (REPAST HPC). REPAST Simphony offers additional visualization capabilities with the help of a geographic information system to visualize the movement of agents.[2][16] Pogamut is another free development environment for modeling and simula- tion agent behavior in a 3D environment. It is used mainly in combination with the Unreal game series and is designed to support research and education. The current version of Pogamut was released in 2015[18]. During the debugging of implemented agents, Pogamut allows the visualization of several information, for example the position of agents on a map, the view direction of agents, and the planned movement.[6][7] In addition to development frameworks with visualiza- tion capabilities, there are several more or less pure visualization tools, that a designed with the main purpose to test and evaluate the behavior of software agents. GameBots is a virtual testing environment to evaluate software agents in games. The goal was to develop a tool that can be used on computer games to enable the use of these games for research and education in the fields of AI and MAS. The GameBots tool provides three components to visualize background information about agents and their environment: a 3D virtual world, a global VizClient for analyzing the entire simulation, and a local VizClient for analyzing the behavior of a single agent. With these three components, GameBots is able to visualize positions, view directions and field, movement, points, messages, and decision of the individual agents and agent teams.[1][20] The Unreal Tournament Semi-Automated Force (UTSAF) is a military-based agent simulation in the 3D environment of Unreal Tournament. In the context of UTSAF, an agent can be a ground or an air unit. UTSAF uses the tool GameBots in combination with special information brokers to visualize agent behavior. These information broker modules can collect the information about individual agents, agent teams, or the entire environment and passes them to different instances of the GameBots tool. This enables the user to act as a spectator for the simulation and get an overview of the entire environment or see the simulation through the eyes of an individual agent.[12][17] Lithium is a tool that was developed to enable analyses in multiplayer com- puter games. The tool visualizes information via overlays on top of the running game. Lithium was designed to analyze the entire situation of a computer game, and not specific information about a single agent. The goal is to capture the en- tire dynamic of the computer game. Lithium can visualize information on a local and global level. Local level information is based on specific positions or parts of the environment or specific events, while the global level is used to visualize trends or behaviors over time. The tool provides information about the position and movement of agents, combat behavior, and agent views on the local level. On the global level, Lithium can display information about the agent density on a specific part of the map, the medicine density and needs, control areas for specific teams, and combat information like fire support ranges.[9] HeapCraft is a free tool for visualization and data search with a focus on the analysis of agent behavior in interactive virtual worlds. The tool can be used by administrators and players of multiplayer game servers and aims at changing a player‘s behavior in positive and social way. In addition, problems in the game world and with player activities can be identified and failure diagnoses can be performed.[13] A prominent game HeapCraft is applied to, is the 3D computer game Minecraft, but can be applied to various games with virtual worlds. The tool provides several components that can be integrated into a game as plug-ins. The Epilog Dashboard provides visualizations and analyses about player behavior in real time. In context of Minecraft the dashboard visualizes for example the online time, the covered distance, build blocks, and gathered resources. In addition, the dashboard computes an index for collaboration with other players. With the help of the Map Miner player activities can be tracked, analyzed, and visualized on a 2D map. The plug-in Classify is able to analyze the behavior of one player over a complete day and visualizes the information in form of diagrams. [14][15] The Visualization Toolkit for Agents (VISTA) is a framework to visualize the internal reasoning processes of software agents. It aims at evaluating the behavior and decision making process of agents and can be used during or after a simulation.[21] VISTA was developed with four purposes: providing a generic framework capable to be used in as many agent architectures and systems as possible, providing a domain-independent framework, enable the tracking of in- ternal reasoning processes, and provide visualizations of agent behaviors during run-time as well as after the termination of a simulation by recording the be- haviors. For the visualization of the internal reasoning processes, VISTA uses a so-called Situational Awareness Panel (SAP) to collect and display all infor- mation about the agents, their interactions, and communications. In addition, VISTA is capable of generating explanations for the behavior of agents with focus on objects and situations.[21][22] 3 Visualization of CBR agent behavior This section describes first briefly the developed game with the FPS scenario. A more detailed description can be found in [8] and [19]. Then we will describe in more detail the conceptual idea of the visualization component called VISAB (Visualization of Agent behavior). 3.1 Settings of the FPS scenario The FPS scenario was developed as a multi-agent system and consists of three components: the multi-agent system itself, the game logic and visualization com- ponent, and a CBR component. The game component was developed with Unity 3D[24], while the multi-agent system was implemented using Boris.Net[4]. The CBR component was modeled and implemented using the open source tool my- CBR[3]. The Unity 3D framework was used to design the environment in which the software agents compete each other and to visualize the actions of the agents to the user. The agents are implemented within the Unity 3D component with the help of Boris.Net. There are three different agents implemented: the player agent, the planning agent, and the communication agent. The player agent gets an update of the situation through the Unity framework. With each sensor up- date, the player agent sends the information to the communication agent. This agent transforms the received data into a JSON string and passes it to the CBR component. The CBR component performs a retrieval and answers the request of the communication agent by sending the most similar cases back, also in a JSON string. The solution of the cases contain possible plans that can be executed by the player agent, but have to be transformed into Unity 3D specific orders to be executable. Therefore, the retrieved solutions are passed to the planning agent. This agent evaluates the received solutions and forms a plan that is passed to the player agent. The player agent then executes the new plan. If no new plan can be formed, the player agent continues executing the current plan. The case structure modeled within the CBR component consists of a situation description based on the sensor input of the player agent and associated actions that form an executable plan. The situation description consists of seventeen attributes with various data types. The attributes have integer, symbolic, or Boolean data types. The distance to an entity in the game is represented by four symbolic values: near, middle, far, and unknown. This way the similarity measure is less complex. Is the distance to an entity less than 15 Unity scale units, the distance is considered near, between 15 and 30 scale units the distance is set to middle, and between 30 and 50 scale units the distance is set to far. If the distance is greater than 50 scale units or the position of an entity is unknown, the distance is set to unknown. The developed FPS scenario was extended with a reinforcement learning (RL) approach to enable the CBR component to learn from different situations and the executed plans. Therefore, a reward function is used to calculate the win probability of a situation based on several important attributes. The results showed that the integration of an RL approach into the system leads to an improvement in the performance of the CBR agent. More details on the multi-agent system, the individual agents, their relationships, and the reinforcement learning approach can be found in [10]. 3.2 Visualization tool for the FPS scenario The analyses of the CBR agents performance were made by logging information about victory and defeat in a CSV file and by observing the live game-play. But this kind of analysis is not very sufficient and incorporates only few avail- able information. Especially during observation in the live game-play, important actions can be missed. Therefore, a visualization component was required that was capable of collecting all relevant information during the game-play, aggre- gating and evaluating these information, and display them to the developer to understand the behavior of the agents. Many existing visualization tools were reviewed to find a suitable and applicable tool or framework that could be used in our use case. But none of the reviewed tools fit complete for our application and the desired platform. Especially the requirement of visualizing CBR specific information and the planned application of the visualization component to all planned modules of our platform could not be covered by the existing tools from our point of view. Some tools could be used only partially, other are not actively developed anymore. This led to the development of our own solution VISAB. The architecture of VISAB is a classic three-layered model. The presentation layer is the interface to the user and contains the visual and graphical compo- nents to display the information about the agents. The logic layer is arranged under the presentation layer and is responsible for data processing and the prepa- ration of information for the visualization. The components of the presentation layer are controlled and managed by the logic layer. In addition, the logic layer also enables the processing of user interactions and information requests. The undermost layer is the data layer that provides the data streamed from the game during live game-play or from a recorded file. The data layer loads and saves the data from text files with a format based on keys and values. It is the connection to the Unity game platform. Figure 2 gives an overview of the VISAB architecture. VISAB requires the game data in a JSON similar format. This game data is stored in a text file and contains eighteen different properties. The value of each Fig. 2. Overview of the VISAB architecture property is stored for each frame of a game cycle. The properties are listed in the following: – ammoPosition - the positions of ammunition crates – coordinatesCBRBot - the coordinates of the CBR agent – coordinatesScriptBot - the coordinates of the scripted agent – healthCBRBot - the current health of the CBR agent – healthScriptBot - the current health of the scripted agent – healthPosition - the positions of health containers – nameCBRBot - the name of the CBR agent – nameScriptBot - the name of the scripted agent – planCBRBot - the current plan of the CBR agent – planScriptBot - the current plan of the scripted agent – roundCounter - a counter for the current round – statisticCBRBot - victories and defeats of the CBR agent – statisticScriptBot - victories and defeats of the scripted agent – weaponCBRBot - current weapon of the CBR bot – weaponScriptedBot - current weapon of the scripted agent – weaponMagAmmoCBRBot - current ammunition for the equipped weapon of the CBR agent – weaponMagAmmoScriptedBot - current ammunition for the equipped weapon of the scripted agent – weaponPosition - the positions of weapons A VISAB file can contain any type of information if it has the format [key = value], for example [weaponCBRBot = Pistol]. The generic statistics visu- alization component of VISAB displays any information in the given format. In addition to a VISAB file, the game data can also be provided during live game-play using a data stream from the Unity game platform. The presentation layer has two main perspectives to display the visualizations based on the data. The first one is a generic statistics overview of the provided data. The properties and their values are displayed in a table to give the user overview of the available data. In addition, for each agent a diagram with the executed plans for each agent is displayed using the processed data. The diagram shows how often a specific plan is executed during game-play as well as the total number of all executed plans. Figure 3 shows the statistic perspective of VISAB with some sample data. Fig. 3. Statistic perspective of VISAB The second perspective is the so-called PathViewer and the heart of VISAB. It allows a detailed visualization of a game with focus on different aspects of the game and agent behaviors. The PathViewer consists of several elements: a map of the level, where the game took place, two tables with the detail information of the playing agents, a configuration panel, and a time frame. In the map, all information of the game can be visualized by symbols and paths and therefore displays a replay of the game from a bird’s eye perspective. The configuration panel allows the user to enable or disable the visualization of certain information and serves also as a legend for the displayed information. The time frame is used to control the playback of the recorded game. This can be done by playing the complete game or by selecting a specific frame that should be displayed. Figure 4 shows the PathViewer perspective with sample data from a fifteen minute game-play at the beginning of the visualization. To make use the PathViewer, at first a User has to select a data file or a live stream that should be visualized (1). Then the data is loaded (2) and displayed in the two tables (3). In the next step, the user selects the information to be visualized or accept the default configuration (4). The information will be displayed in the map (5) after starting the visualization (6). During the Fig. 4. PathViewer perspective of VISAB at the start of the visualization visualization, the user can always see the current displayed frame or select a specific frame (7). The single steps are marked in Figure 4. During the visualization, different information can be found on the map. First the path of the playing agents will be displayed to retrace the routes during a game session. Along the paths several icons can be found. The current position of the agents is also displayed along the routes for every frame. This allows to see the detailed movement on the routes during playback. Every time an agent is defeated a symbol is placed on the map to visualize the situation. In addition, every time a weapon, ammunition, or health is spawning, the corresponding icon is displayed on the map. If it is collected, the icon disappears. At least, another important information can be visualized: the point during a game, when an agent changes his action plan. This is displayed using an exclamation mark to make the specific situation visible. Using the visualized information on the map and the detail information about the agent status and behavior in the two tables, a user can retrace and analyze agent behavior and can identify situations with bad or even wrong agent behavior. This allows a better adaptation of agent behavior than just viewing the live game without the contextual information or just using the logged CSV file. Figure 5 shows the PathViewer with several information visualized in the map. 4 Evaluation The evaluation of VISAB was performed to test the correct and complete vi- sualization of the analyzed information. In addition, the performance while dis- playing different kinds of information were tested. To verify the correctness and Fig. 5. PathViewer perspective of VISAB with visualized information on the map completeness of the displayed information, a live game was directly compared with the visualized information in VISAB. The game-play was recorded by using a the ReLive function of a RADEON graphic card. This recorded game-play was then compared with the VISAB visualization, frame by frame. For the verifi- cation three game-play with a length of ten, twenty, and thirty minutes were recorded and compared. The result was that every occurred entity and situation during the game-play was recorded complete and correctly. The performance of VISAB was evaluated to test the handling of big data sets recorded during long game-play sessions. This was done with two data sets for a game-play of 90 min- utes. The tests showed only minimal delays when selecting a specific frame with the slider. Therefore, the performance is more than sufficient for the planned use cases. An evaluation within lectures with participating students is planned for the next semester. The goal will be to evaluate the impact of VISAB on the analysis and development process of the students. 5 Conclusion and Outlook This paper presents a visualization tool for agent behavior in an FPS scenario to analyze and identify bad or wrong behavior of the participating agents. We described the settings of the FPS scenario and then the idea, architecture, and current realization of the visualization tool VISAB. We also have conducted a small successful evaluation on the features of VISAB. The next steps for de- veloping VISAB further, are to evaluate VISAB with students and extend the PathViewer with more information of the internal reasoning processes, like case similarities. We are also currently re-implementing the FPS scenario for team play and other game modes like capture the flag. Therefore, we will also adapt the PathViewer to display the additional information generated by the new situ- ations. Adding new perspectives to enable the visualization of the other modules are also planned. References 1. Adobbati, R.; Marshall, A. N.; Scholer, A.; Tejada, S.; Kaminka, G.; Schaffer, S.; Sollitto, C.: GameBots: A 3D Virtual Test-Bed for Multi-Agent Research. In: WAG- NER, T. (Ed.); Rana, O.S. (Ed.): Proceedings of the second international workshop on Infrastructure for Agents, MAS, and Scalable MAS, Volume 5, Montreal, Canada, 2001. 2. Argonne National Labatory, Webseite 2015. - https://sourceforge.net/projects /repast/; last verification: 16.06.2020 3. Bach, K.; Sauer, C.; Althoff, K.-D.; Roth-Berghofer, T.:Knowledge Modeling with the Open Source Tool myCBR. In:Nalepa, G.J. (Ed.), Baumeister, J. (Ed.), Kaczor, K. (ed.): Proceedings of the 10th Workshop on Knowledge Engineering and Software Engineering (KESE10), Praque, Czech Republik, 2014 4. Bojarpour, A.: Boris.Net, Website, 2009 - http://www.alibojar.com/boris-net, last verification: 16.06.2020. 5. Gemrot, J.; Kadlec, R.; Bida, M.; Burkert, O.; Pibil, R.; Havlicek, J.; Zemak, L; Simlovic, J; Vansa, R; Stolba, M.; Plch, T.; Brom, C.: Pogamut 3 can assist devel- opers in building AI (not only) for their videogame agents. In: Dignum, F. (Ed.); Bradshaw, J. (Ed.); Silverman, B. (Ed.); Doesburg, W. (Ed.): Agents for games and simulations, Springer-Verlag Berlin, Heidelberg, 2009, S. 1-15. 6. Gemrot, J.; Brom, C.; Kadlec, R.; Bida, M.; Burkert, O.; Zemcak, M.; PibilL, R.; Plch, T.: Pogamut 3–Virtual humans made simple. In: Srini-Vasan, N. (Ed.); Gupta, A. K. (Ed.); Pandey, J. (Ed.): Advances in Cognitive Science, SAGE Publications Pvt. Ltd, 2010, S. 211-243. 7. Gemort, J.; Brom, C.; Plch, T.: A periphery of pogamut: From bots to agents and back again. In: Dignum, F. (Ed.): Agents for games and simulations II, Springer- Verlag Berlin, Heidelberg, 2011, S. 19-37. 8. Hillmann, J.: “Konzeption und Entwicklung eines Prototypen für ein lernfähiges Multi-Agenten-System mittels des fallbasierten Schließen im Szenario einer First- Person Perspektive” (Conception and Development of a prototype for a multi-agent- system with learning capabilities using case-based reasoning in the first-person per- spective szenario). Hildesheim, University of Hildesheim, 2017. 9. Hoobler, N.; Humphreys, G.; Agrawala, M.: Visualizing competitive behaviors in multi-user virtual environments. In: Visualization, IEEE, 2004, S. 163-170. 10. Kolbe, M.; Reuss, P.; Schoenborn, J.M.; Althoff, K.-D.: Conceptualization and Im- plementation of a Reinforcement Learning Approach Using a Case-Based Reasoning Agent in a FPS Scenario, In: Jaeschke, R. (Ed.); Weidlich, M.(Ed.): Proceedings of the Conference ”Lernen, Wissen, Daten, Analysen”, Berlin, 2019 11. Macal, C. M.; North, M. J.: Tutorial on agent-based modeling and simulation. In: Simulation Conference, Proceedings of the Winter, 2005, S. 73-83. 12. Manojlovich, J.; Prasithsangaree, P.; Hughes, P.; Chen, J.; Lewis, M.: UTSAF: A Multi-Agent based Framework for Supporting Military-based distributed interactive simulations in 3D virtual environment. In: Simulation Conference, Proceedings of the Winter, Volume 1, 2003, S. 960-968. 13. Müller, S.; Solenthaler, B.; Kapadia, M.; Frey, S., Klingler, S.; Mann, R. P.; Sum- mer, R. W.; Gross, M.: HeapCraft: Interactive Data Exploration and Visualization Tools for Understanding and Influencing Player Behavior in Minecraft. In: Pro- ceedings of the 8th ACM SIGGRAPH Conference on Motion in Games, 2015, S. 237-241. 14. Müller, S.; Kapadia, M.; Frey, S., Klingler, S.; Mann, R. P, Solenthaler, B.: Statis- tical Analysis of Player Behavior in Minecraft. In: Zagal, J. (Ed.): Proceedings of Conference on Foundations of Digital Games, 2015. 15. Müller, S.; Frey, S.; Kapadia, M.; Klingler, S.; Mann, R. P.; Solenthaler, B; Sum- mer, R. W.; Gross, M.: HeapCraft: Quantifying and Predicting Collaboration in Minecraft. In: Proceedings of the eleventh AAAI Conference on Artificial Intelli- gence and Interactive Digital Entertainment, 2015, S. 156-162. 16. North, M. J.; Collier, N. T.; Ozik, J.; Macal, C. M.; Tatara, E. R.; Bragen, M.; Sydelko, P.: Complex adaptive systems modeling with Repast Sim-phony. In: Com- plex adaptive systems modeling, Volume 1, 2013. 17. Prasithsangaree, P.; Manojlovich, J.; Hughes, S.; Lewis, M.: UTSAF: A Multi- Agent-Based Software Bridge for Interoperability between Distributed Military and Commercial Gaming Simulation. In: The Society for Modeling and Simulation In- ternational, 2004, S. 647-657. 18. Pogamut, Webseite 2015. - http://pogamut.cuni.cz/main/tiki-view blog.php?blogId=3; last verification: 16.06.2020. 19. Reuss, P., Hillmann, J., Viefhaus, S., Althoff, K.-D.: “Case-Based Action Planning in a First Person Scenario Game”. In: Rainer Gemulla, Simone Ponzetto, Christian Bizer, Margret Keuper, Heiner Stuckenschmidt (Ed.). LWDA 2018 - Lernen, Wis- sen, Daten, Analysen - Workshop Proceedings. GI-Workshop-Tage “Lernen, Wissen, Daten, Analysen” (LWDA-2018) August 22-24 Mannheim Germany University of Mannheim 8/2018. 20. SIOUTIS, C.: Reasoning and Learning for intelligent Agents. Phd Thesis, Univer- sity of South Australia, 2006. 21. Taylor, G. E.; Jones, R. M.; Fredriksen, R. A.: VISTA: A Generic Toolkit for Visualizing Agent Behavior. In: Proceedings of the 11th Conference on Computer Generated Forces and Behavioral Representation, 2002, S. 157-167. 22. Taylor, G. E.; Knudsen, K.; Holt, L. S.: Explaining Agent Behavior. In: Behavior Representation in Modeling and Simulation (BRIMS), 2006. 23. Tisue, S.; Wilensky, U.: NetLogo: Design and implementation of a Multi-Agent Modeling Environment. In: Proceedings of agent, Volume 2004, S. 7-9. 24. Unity Technologies: Unity 3D Overview, Website, 2018 - https://unity3d.com/de/public-relations, last verification: 16.06.2020. 25. Wilensky, U.: NetLogo Frogger model. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL, Webseite 2002. - http://ccl.northwestern.edu/netlogo/models/Frogger; last verification: 16.06.2020. 26. Wilensky, U.: NetLogo. Center for Connected Learning and Computer- Based Modeling, Northwestern University, Evanston, IL, Webseite 2017. - http://ccl.northwestern.edu/netlogo/; last verification: 16.06.2020.