#AI – MARLO 2018, Contest using Reinforcement Learning on Minecraft

01 Marlo 2018

Buenas!

A while ago I wrote a series of posts about “Artificial Intelligence With Minecraft using Project Malmo“. Minecraft is an excellent playground To test AI experiences, and competencies like MARMO are excellent for learning and to drive the AI community.

Learning to Play: The Multi-Agent Reinforcement Learning in MalmO Competition (“Challenge”) is a new challenge that proposes research on Multi-Agent Reinforcement Learning using multiple games. Participants would create learning agents that will be able to play multiple 3D games as defined in the MalmO platform. The aim of the competition is to encourage AI research on more general approaches via multi-player games. For this, the Challenge will consist of not one but several games, each one of them with several tasks of varying difficulty and settings. Some of these tasks will be public and participants will be able to train on them. Others, however, will be private, only used to determine the final rankings of the competition.

The competition has been open for a long time so that participants can know the environment, and will formally start on the 14th November At the University of Alberta, in Edmonton, Canada.

More information

Learning to Play: The Multi-Agent Reinforcement Learning in MalmÖ (MARLÖ) Competition

Greetings @ Toronto

El Bruno

Advertisements

#AI – MARLO 2018, Reinforcement Learning con Minecraft

01 Marlo 2018

Buenas!

Hace un tiempo escribí una serie de posts sobre “Artificial Intelligence con Minecraft utilizando Project Malmo”. Minecraft es un excelente playground para probar experiencias de AI, y competencias como MARMO son excelentes para aprender y para impulsar la comunidad de AI.

La competencia Malmo es un nuevo desafío que propone una investigación con Multi-Agent Reinforcement Learning utilizando juegos múltiples. Los participantes crean agentes de Minecraft para jugar múltiples juegos 3D como se define en la plataforma MalmO. El objetivo de la competencia es fomentar la investigación de IA sobre enfoques más generales a través de juegos multijugador.

El reto consistirá en no uno sino varios juegos, cada uno de ellos con varias tareas de diferente dificultad y configuración. Algunas de estas tareas serán públicas y los participantes podrán capacitarse en ellas. Otros, sin embargo, serán privados, y solo se utilizarán para determinar las clasificaciones finales de la competencia.

La competencia esta abierta desde hace tiempo para que los participantes puedan conocer el entorno, y se dará inicio formalmente el 14 de Noviembre en la Universidad de Alberta, en Edmonton, Canada.

Mas información en

Learning to Play: The Multi-Agent Reinforcement Learning in MalmÖ (MARLÖ) Competition

Saludos @ Toronto

El Bruno

#VS2017 – Commands with the basic movements for an #Minecraft Agent with #ProjectMalmo

Hi!

Today I will share how to perform 2 basic Agent movements in Minecraft

  • Move along
  • Turn

The code example at the end of the post, is part of a ConsoleApp, which once connected to the Minecraft host, controls the movement of the current player / agent. The script advances a series of steps, then turns and returns to the advance mode again and again. Animation sample.

2017 11 19 Malmo Movements 01.gif

The basic set of commands are

  • Move > “move {1}”
  • Turn > “turn {1}”

Where the first parameter is an integer between 0 and 1 that defines the movement to be performed. These 2 commands are the minimum we can use in scenarios such as a labyrinth, so it makes sense that the next post talk about it.

Sample Project en GitHub link

Greetings @ Toronto

El Bruno

References

 

#VS2017 – Comandos con los movimientos básicos en un Agente #Minecraft con #ProjectMalmo

Buenas!

Hoy mostrare como realizar 2 movimientos básicos con un Agente en Minecraft

  • Avanzar
  • Girar

El ejemplo de código al final del post, representa una ConsoleApp, que una vez conectado al host Minecraft, adelanta una serie de pasos, luego gira y vuelve a adelantar. Ejemplo en modo gráfico.

2017 11 19 Malmo Movements 01.gif

Pues bien, los comandos que usamos son

  • Avanzar > “move {1}”
  • Girar > “turn {1}”

Donde el primer parámetro es un entero entre 0 y 1 que define el movimiento a realizar. Estos 2 comandos son los mínimos que podemos utilizar en escenarios como por ejemplo un laberinto, así que tiene sentido que el siguiente post hable de eso.

Sample Project en GitHub link

Saludos @ Toronto

El Bruno

References

 

#VS2017 – #Minecraft missions options in Xml format #ProjectMalmo

Hi!

In this post I will explain some of the configurations and options we can define in the mission files. The sample file is at the end of the post.

  • Line 21 defines the name of the Agent
  • The <AgentStart /> element defines the initial position of the agent.

The following image shows how to define a high value on the Y axis,
because our agent dies a few seconds later

 

2017 11 14 Malmo 02

Another interesting element is [ServerSection // ServerInitialCondition] where we can define the climate of the mod (line 12). The supported values ​​are normal, clear, rain and thunder.

My advice is to dedicate some time to understand Mission definition schema (see references) and know a little about the options offered by Minecraft.

For example, in the section [Mission // ServerSection // ServerInitialConditions // Time // StartTime] it is possible to define the time of the day in which the mission will start.

The possible values ​​are measured based on this table

 

  • 0 = dawn
  • 6000 = noon
  • 18000 = midnight

Sample Project en GitHub link

Greetings @ Toronto

El Bruno

References

 

#VS2017 – Algunas opciones para misiones en #Minecraft en formato Xml #ProjectMalmo

Buenas!

Hoy voy a explicar algunas de las configuraciones que Podemos definir en los archivos de mision. El ejemplo de archivo esta al final. Por ejemplo:

  • La línea 21 define el nombre del Agente
  • El elemento <AgentStart/> define la posición inicial del agente.

La siguiente imagen muestra como al definir un valor alto en el eje Y, pues nuestro agente muere a los pocos segundos

2017 11 14 Malmo 02

Otro elemento interesante es [ServerSection // ServerInitialCondition] donde podemos definir el clima del mod (línea 12). Los valores soportados son normal, clear, rain y thunder.

Las opciones son muchas, lo mejor es dedicarle un poco de tiempo a la definición de Mission (ver referencias) y conocer un poco las opciones que nos ofrece Minecraft.

Por ejemplo, en la sección [Mission // ServerSection // ServerInitialConditions // Time // StartTime] es posible definir la hora del dia en la que se iniciara la misión.

Los posibles valores se miden en base a esta tabla

  • 0 = dawn
  • 6000 = noon
  • 18000 = midnight

Sample Project en GitHub link

Saludos @ Toronto

El Bruno

References

 

#VS2017 – Sample ConsoleApp to initialize missions in #Minecraft with Xml #ProjectMalmo

Good!

Before continuing to analyze the sections that have an xml file with the definition of a mission in Minecraft, I will share a small ConsoleApp sample project which creates from scratch the necessary elements to interact in a Minecraft mission.

The function that initializes the mission from a file is

In line 4 we can see the definition in plain xml mode can be used in the MissionSpec() constructor. From this moment, the mission is created with the parameters of the file.

It is possible, once created about writing some values, as for example in line 5 where I define the video quality with which the mission will be executed.

 

Sample Project en GitHub link

Greetings @ Toronto

El Bruno

References

 

#VS2017 – ConsoleApp de ejemplo para inicializar misiones en #Minecraft en formato Xml #ProjectMalmo

Buenas!

Antes de seguir analizando las secciones que posee un archivo xml con la definición de una misión en Minecraft, voy a compartir una pequeña ConsoleApp que crea desde cero los elementos necesarios para interactuar en una misión de Minecraft.

La función que inicializa la misión desde un archivo es la siguiente

En la línea 4 podemos ver la definición en modo xml plano se puede utilizar en el constructor de MissionSpec(). A partir de este momento, la misión se crea con los parámetros del archivo.

Es posible, una vez creado sobre escribir algunos valores, como por ejemplo en la línea 5 donde defino la calidad de video con la que se ejecutara la misión.

Sample Project en GitHub link

Saludos @ Toronto

El Bruno

References

 

#VS2017 – Definition of #Minecraft missions in Xml format #ProjectMalmo

Hi!

In yesterday’s post I wrote on how to create a mission in Minecraft using code. Now, if we need to create a world with special characteristics, one of the options we can consider is to define these options in a mission definition file, in XML format.

The definition scheme of the mission is quite broad, however, we can start with some basic attributes. For example, the definition of the terrain. For this we use the <FlatWorldGenerator /> element and in the generatorString attribute, we define some attributes to create a world in Minecraft.

There are pages such as Superflat Preset Generator, that allow us to create these definitions, for example, let’s use the definition shown in the following image

 

I01

And in a few seconds we will be dead, since the 1st level that this definition creates is a floor of LAVA.

I0

If we change the layers of our floor so that the lava is in the lower level

I1

We can see that the world is more player friendly. Another important point is that as in the definition I have added the ability to have lakes, when the world is created, lakes will be added randomly in it.
In the following image we can see how after digging a bit we started to see the defined layers and also the random lakes in the landscape

I2

At the end of the post I will leave the definition file, and in future posts I will explain how to load it and how to define attributes such as the name of the agent (Valentino), the name of the mission, etc.

I3

Sample Xml Mission Definition code

Greetings @ Toronto

El Bruno

References

 

#VS2017 – Definición de misiones para #Minecraft en formato Xml #ProjectMalmo

Buenas!

En el post de ayer comente como crear una misión en Minecraft utilizando código. Ahora bien, si necesitamos crear un mundo con características especiales, una de las opciones que podemos considerar es definir estas opciones en un archivo de definición de misiones, en formato XML.

El esquema de definición de la misión es bastante amplio, sin embargo, podemos comenzar con algunos atributos básicos. Por ejemplo, la definición del terreno. Para esto utilizamos el elemento <FlatWorldGenerator /> y en el atributo generatorString, definimos algunos atributos para crear un mundo en Minecraft.

Hay paginas como por ejemplo Superflat Preset Generator, que nos permiten crear estas definiciones, por ejemplo, utilicemos la definición que se muestra en la siguiente imagen

I01

Y en pocos segundos estaremos muertos, ya que el 1er nivel que crea esta definición es un piso de LAVA.

I0

Si cambiamos los layers de nuestro piso para que la lava este en el nivel inferior

I1

Podremos ver que el mundo ya es más habitable. Otro punto importante, es que como en la definición he agregado la capacidad de tener lagos, cuando se cree el mundo, se agregaran lagos de forma aleatoria en el mismo. En la siguiente imagen podemos ver como después de cavar un poco comenzamos a ver las capas definidas y además los lagos aleatorios en el paisaje

I2

Al final del post dejare el archivo de definición, y en próximos posts explicare como cargar el mismo y como definir atributos como el nombre del agente (Valentino), el nombre de la misión, etc.

I3

El codigo de definicion de la mision

Saludos @ Toronto

El Bruno

References