1 Abstract— The RoboCup Soccer Server is an excellent framework where students can learn and understand more about artificial intelligence (A.I.) application problems. However, getting to work with the server is not a straightforward task, they are required to know specific details about the server, which is time consuming and complex. This paper describes the development of a high level language based on rules for the Soccer Server. This language provides a full set of conditions and commands to create rules that will determine the behavior of a player, in an easy and quick manner. Thus, students can focus on problems such as player’s behaviors, strategies, coordination, etc. Index Terms— A.I. Education, Multi-Agent Systems, Rule- Based Systems, Soccer Simulation. I. INTRODUCTION OBOCUP is a research and educational initiative. Its objective is to foster the A.I. and intelligent robotics research by providing a standard problem [4]. There has been a continuous effort to increase the motivation, participation and interest of students in science and technology. The RoboCup soccer server provides an excellent platform for students to learn and apply A.I. techniques. It does not require the use of real robots, so students or universities who do not have the resources to participate in other leagues are not exempt for participating actively in the RoboCup domain. A. RoboCup Soccer Server The soccer server is a powerful tool that simulates games of soccer in the best possible way. The simulation is executed in a client/server style via UDP/IP sockets. A soccer team will normally consist on 11 players (10 players and 1 goalie), and a coach. Each player and the coach are clients that would connect to the server. Also, a monitor is needed to visualize the simulation, which is another client too. Once all players are connected to the server, the server will send sensory information to every player. This information will help the player to make a decision on what action to perform next. This action (command) is then communicated to the server, which will simulate it on behalf of the player. Manuscript received August 28, 2007. This work was conducted at the Computer Science Department, University of Pittsburgh. J. Nunez-Varela was a M.S. student at the Computer Science Department, University of Pittsburgh, Pittsburgh, PA 15260 USA. He is now with the School of Engineering, Universidad Autonoma de San Luis Potosi, San Luis Potosi, 62490 Mexico (e-mail: jnunez@uaslp.mx). The soccer server sends three types of sensory information at different intervals in time. Furthermore, the players should send their commands at certain intervals also, so the server could simulate them correctly. The consequence is that users should be familiar with real-time systems, and also, they should code routines to handle this synchronization problem. The sensory information contains only local information for every player. So in order to make good decisions, a player must have a global perspective of what is going on inside the soccer field. For instance, it is desirable to know our position and the positions of our teammates, opponents, the ball, etc. Therefore, users should build a software system capable of creating a global representation of the game. Players must send commands to the server in order to do something. These commands are primitive and must contain local information also. Good plays are coded with the combination of these commands. However, users must calculate the parameters needed to perform each command. For example, the kick command uses two parameters: power and (local) angle; then we must first calculate these two parameters in order to perform that kick. We can see that the soccer server is a robust and excellent simulator system [3]. Unfortunately it might be complex and difficult to understand and utilize for some people. Especially if the simulator is intended to be used as an educational project. For example during an A.I. course where students do not have enough time to familiarize with its functionality. Also, students might not be familiar with sockets programming and real-time systems at all. Therefore, the development and implementation of a full soccer team requires a lot of effort and time that could sometimes be impossible to spend. This might lead to the total loss of interest not only from the students but also from the professor. B. Objectives of Our Project Based on the idea of using the soccer server as an educational project we have developed and implemented a high level language based on rules that could be easy to use and understand. Trying to eliminate the aforementioned problems and allowing the students to create a full team of players in a straightforward manner with little knowledge about the server and its complexities, thus saving time and effort. The language provides a complete set of directives, in the form of conditions and commands. These are used to create rules to specify the behavior of a player, and ultimately the A High Level Language Based on Rules for the RoboCup Soccer Simulator Jose I. Nunez-Varela R