Super Mario Soccer Robocup Soccer Simulator 2D Team Description Paper David Saldaña1 , Ramon Melo, Anderson Tavares, Rafael Colares, Levi Vasconcelos, Igor Campos, Elerson Rubens, Omar Pino, Hector Azpúrua. Abstract— This paper describes the strategy of Super Mario Soccer team for the 2014 edition of RoboCup Simulation 2D soccer competition. Match situations are encoded in the states of a finite state machine. Player actions depend on their state and role. Roles are assigned according to soccer player functions (e.g. center forward or defensive midfielder). We build from a simple codebase that implements the communication protocol with the simulation server, allowing us to focus on implementing the team strategy. The simple approach based in finite state machines will allow us to gain familiarity with the domain of robot soccer in order to propose more sophisticated approaches in the future. Index Terms— Multi-robot systems, multiagent coordination, robot soccer. I. I NTRODUCTION A robot soccer match involves coordination both in a cooperative and an adversarial setting at the same time. This happens because players of the same team must work together in order to defend their own goal while attempting to score against the opponent team. Also, the game is played in real time in a continuous environment. Agent coordination in complex scenarios is one of the greatest challenges in multi agent systems. In general, a complex scenario is composed of a set of agents that must perform multiple tasks in a dynamic and partially observable environment, where existing tasks can disappear and new tasks can arrive. Robot soccer can be considered a complex scenario and therefore, a rich domain for research in multiagent systems. This paper describes strategies that guide Super Mario Soccer team in the RoboCup Simulation 2D soccer competition. Basically, we adopt a behavior-based approach where the player behavior is determined by its position (e.g. defensive midfielder, center-forward) and the game situation (e.g. opponent has the ball). This simpler approach will enable us to familiarize with the robot soccer domain where we will be able to build more sophisticated techniques in the future. This paper is organized as follows: Section II describes the behavior-based strategy adopted by Super Mario Soccer team. Section III describes the basic modules and technical aspects of our implementation. Section IV presents concluding remarks and future work. 1 Computer Vision and Robotics Laboratory (VeRLab), Computer Science Department, Universidade Federal de Minas Gerais, MG, Brazil. Corresponding author: [email protected] II. S TRATEGY A. Motivation The player behavior is determined by its team role and the match situation. The player role is defined by its assigned position in the pitch. For example, in modern soccer, teams usually distribute the ten line players in 4-4-2, 4-5-2 or 4-3-3 formations. In these formations, player roles usually are: center back, side back, defensive midfielder (responsible for destroying opponent plays), offensive midfielder (playmaker), center midfielder (midterm between offensive and defensive), side attacker and center forward. When the opponent has the ball, usually all team members help in defense, but attackers and playmakers remain in forward locations in the field, preparing for counter-attacks. Defensive midfielders, center and side backs place themselves in suitable positions to recover the ball, marking the opponent players and tackling the ball owner. Conversely, while attacking, all team members move forward but center backs and defensive midfielders usually retain backward positions to minimize a potential counter attack from the opponent. Moreover, the behavior of the player who has the ball must be different from the other teammates. The ball owner has either to carry the ball forward, to pass it to a better located teammate, or to shoot it at the goal. Offensive players who don’t possess the ball must get rid of marking opponents in order to create playmaking opportunities. This way of reasoning led us to model different behavioural patterns, one for each role. Those patterns differ from each other in the way the possible actions are chosen, for example: if a center back has the ball, it should pass to an offensive team-mate rather then try to perform a dribble maneuver. Each one will be explained in the forwarding sections. B. Action choice and execution In our approach, a player chooses its actions based on the observable match state together with its assigned role. An agent perceives other agents, including teammates, as part of the environment to which it has to react. However, as action choices depend on the match situation and the player behaviour, different actions will be taken by different players. We expect that a coordinated team behaviour emerge from those independent choices. Player behaviour is encoded via a Finite State Machine. Each state encodes the observable information of the environment available to the player agent, i.e., the match situation as perceived by the player. Transitions between states are based on significant facts that happen in the game, example: if a player is in Defensive Position and the team recovers the ball, it goes to Offensive Position. The player who gained ball possession goes to Ball possession state. Although all players implements finite state machines with the same states and transitions, action execution is different according to the player role. Figure 1 illustrates the finite state machine to be implemented in our players. Defensive states are defensive position and tackling ball owner. Offensive states are offensive position and with ball possession. This finite state machine summarizes match situations in a high level of abstraction. Fig. 1: Finite state machine for Super Mario Soccer players. Defensive states are in green. Offensive states are in Red The action to be executed in each state depends on the player role. Player roles are: center back (CB), side back (SB), defensive midfielder (DM), center midfielder (CM), offensive midfielder (OM), side attacker (SA) and center forward (CF). The list that follows shows player roles and the actions that should be executed in each state of the finite state machine of Fig. 1. Goal kicker is not listed because its actions are simple: stay in goal when team has the ball and block scoring attempts from opponents. • Center Back – With ball possession: Pass – Offensive position: Mark opponent CF or SA – Defensive position: Mark opponent CF or SA – Tackling opponent: Intercept • Side Back – With ball possession: Pass or Dribble – Offensive position: Ease playmaking – Defensive position: Mark zone – Tackling opponent: Intercept • Defensive Midfielder – With ball possession: Pass – Offensive position: Mark opponent OM – Defensive position: Mark opponent OM – Tackling opponent: Intercept • Center Midfielder – With ball possession: Pass or Dribble – Offensive position: Ease playmaking – Defensive position: Mark zone – Tackling opponent: Intercept • Offensive Midfielder – With ball possession: Pass, Dribble or Shoot – Offensive position: Ease playmaking – Defensive position: Mark zone – Tackling opponent: Intercept • Side Attacker – With ball possession: Pass, Dribble or Shoot – Offensive position: Ease playmaking – Defensive position: Mark zone – Tackling opponent: Intercept • Center Forward – With ball possession: Pass, Dribble or Shoot – Offensive position: Ease playmaking – Defensive position: Mark zone – Tackling opponent: Intercept Marking actions involve marking zone or specific opponent players. When marking zone, players cover an area of the pitch. When a player marks a specific opponent, it gets close to the opponent in order to reduce its available space for offensive moves. Ease playmaking involves getting rid of opponent marking. This could be done by moving to less occupied pitch areas. Specifically for side backs, this can be accomplished by advancing parallel to the side line towards the opponent goal line. Intercept means to move itself towards the ball trajectory, in order to catch an opponent pass or towards the opponent ball owner, to tackle him. Dribble action involves carrying the ball, trying to deviate from opponents. Shooting refers to a score attempt and pass refers to deliver the ball to a better placed teammate. Implementation of these actions can be accomplished with several techniques. For example, Ease playmaking could be implemented with potential fields and Intercept could be implemented with chase or interception algorithms. III. F RAMEWORK We are going to develop our codebase in a high level programing language like Java or Python in order to reduce development time. Therefore, we can focus on solving high level problems like: agent coordination and cooperation; strategies, role definition, etc. The initial code is based in soccerpy[https://github.com/jasontbradshaw/soccerpy]. It is implemented in Python and offers a simple team with example code to follow the ball and kick. Our version defines a open-source framework that is available for every new team which wants to work with Python. Source code is available at [https://github.com/dsaldana/soccerpy]. Figure 2 illustrates the framework modules, which are: • • • • • • Agent: intelligence and role definition. It abstracts the common behaviours for every agent, and allows to write specific players. Actions: high level actions based on primitive server actions. World: a world perception for the agent based on observations. It must update in every iteration the agent position, players and ball localizations. Communication: all about UDP messages, parsers, and sockets. It follows the message definitions of the server manual. Strategy: formations and tactics. Utilities: it is a traversal module that offers useful methods such as exception management or geometric calculations, among others. As a future work, we would like to adapt our framework to support classic methodologies such as STP [1]. It offers effective strategies for our agents based in finite state machines in adversarial multi-robot contests. STP consists of skills for executing the low-level actions that make up robot behaviour, tactics for determining what skills to execute, and plays for coordinating synchronized activity among team members. Another branch to be explored is to look at the problem as a Markov Decision Process. Design the states as a finer representation of the environment and exploit Bellman’s equation to help on the decision making process, maybe using reinforcement learning techniques to look for good policies to be followed. Current approaches using reinforcement learning in RoboCup soccer 2D need substantial number of matches to achieve meaningful performance [2], where the calculations are done after a goal is scored. A different approach using in-game data could improve the efficiency of the learning algorithm and minimize the time it takes to achieve a good result. R EFERENCES [1] B. Browning, J. Bruce, M. Bowling, and M. Veloso, “STP: Skills, tactics, and plays for multi-robot control in adversarial environments,” Proceedings of the Institution of Mechanical Engineers, Part I: Journal of Systems and Control Engineering, vol. 219, no. 1, pp. 33–52, 2005. [2] J. A. Fabro, A. L. C. Botta, G. A. P. Parra, and J. R. F. Neri, “The GPR-2D 2013 Team Description Paper: Reinforcement Learning to Improve Attack decision-making and attack strategy modification during a match.” 2013. Fig. 2: Modules of the framework. Under this structure, we do not need to worry about communication or computing world perceptions (e.g. position of the agent based on observations or information fusion) meanwhile the intelligence of the agent is being developed. The agent module is the core where the intelligence must be programmed. It has an abstraction of all the necessary functions for initialization and structure creation. Every player, such as center forward or defensive midfielder must extend that generic agent. IV. C ONCLUSION AND F UTURE W ORK In this work, we presented the strategy of Super Mario Soccer team for the 2014 edition of RoboCup Simulation 2D soccer competition. By encoding the match dynamics as perceved by the player in a finite state machine, we simplify decision making. Every player has a role assigned according to its position (e.g.: side attacker or center back) in the pitch. We describe a framework for a high level programming language in order to define an efficient approach for automated soccer game play. Despite that this is the first approach of our team on the RoboCup 2D soccer simulator, we intend to improve our current work in several possible ways.
© Copyright 2026 Paperzz