#VS2017 – #Minecraft game interaction agents, missions definitions and recording with #ProjectMalmo

Hi!

I am going to write some posts about Project Malmo, Minecraft and Visual Studio 2017. I still do not have very clear the order in which I will do them, so I will write and update them as I go along with my learning process.

Once we have installed all the necessary prerequisites and Apps to be able to work with Visual Studio 2017 and Minecraft, it is time to begin to understand some basic concepts about how to program against the game.

It all starts with the creation of an AgentHost(), that is the main object to perform the command communication between a .Net App and Minecraft. The next thing we must do is define the environment in which we want to interact, we define this as a mission with the MissionSpec() object. A couple of important details here is that we can define the duration of the same and the resolution with which we want to work (lines 17 and 18).

If we also want to have a recording of each of the steps that are made in our game, in addition to several execution logs, we can use an object of the MissionRecordSpec() type for this. The only necessary step at this point is to start the mission (lines 21 to 27) where we can see something similar to the following

 

2017 11 08 Malmo 01

A couple of details to keep in mind when the game is running

  • Minecraft must load the game environment, so we must wait for it to be up and running before we add and run some game logic. An example on how to do this can be seen on lines 29 to 38
  • It is also important to control the time in which the mission is running. Missions are usually time based, so mission start and end time are important. Lines 41 to 48

Sample Source Code

Greetings @ Toronto

El Bruno

References

 

#VS2017 – Agentes de interacción con el juego, misiones y grabación en #Minecraft con #ProjectMalmo

Buenas!

Voy a escribir algunos posts sobre Project Malmo, Minecraft y Visual Studio 2017. Como todavía no tengo muy en claro el orden en el que hare los mismos, los iré escribiendo y actualizando sobre la marcha.

Pues bien, una vez que tenemos instalados todos los prerrequisitos y Apps necesarias para poder trabajar con Visual Studio 2017 y Minecraft, es momento de comenzar a comprender algunos conceptos básicos sobre como programar contra el juego.

Todo comienza con la creación de un AgentHost() que es el objeto principal para realizar la comunicación de comandos entre una .Net App y Minecraft. Lo siguiente que debemos realizar es definir el entorno en el que queremos interactuar, a esto lo definimos como una misión con el objeto MissionSpec(). Un par de detalles importantes aquí es que podemos definir la duración de la misma y la resolución con la que queremos trabajar (líneas 17 y 18).

Si además queremos tener una grabación de cada uno de los pasos que se realizan en nuestro juego, además de varios logs de ejecución, podemos utilizar un objeto del tipo MissionRecordSpec() para esto. El único paso necesario en este punto es comenzar la misión (líneas 21 a 27) donde podremos ver algo similar a lo siguiente

2017 11 08 Malmo 01

Un par de detalles a tener en cuenta cuando el juego está en ejecución

  • Minecraft debe cargar el entorno de juego, con lo que debemos esperar a que el mismo este habilitado. Un ejemplo sobre cómo hacer esto se puede ver en las líneas 29 a 38
  • También es importante controlar el tiempo en el que la misión este en ejecución. Líneas 41 a 48

Sample Source Code

Saludos @ Toronto

El Bruno

References

 

#Personal – Learning to code with #Minecraft? start with Hour of Code, #MakeCode and Project Malmo

chickenrain-002

Hello!

December arrives and it’s time for one of my best moments of the year: Hour of Code. I have already written about this type of activities, and once again I recommend joining the community if you want to have a good time with children learning to program.

As always, Minecraft is an almost mandatory topic among the materials that have been created in recent years. As a parent, I can attest that all children have a special connection with the game and that when they see the possibilities of extending it, some people see a special shine in their eyes and want to begin to try this.

This year, I researched a little more and I’ve found a couple of other interesting options for this. In addition to the options we have on the Hour of Code page, we also have the possibility to use the materials created by the Microsoft MakeCode team. There is a special Minecraft mod in which we can interact with the Minecraft environment using visual tools such as Scratch.

I1

Note: Scratch is the flow definition environment created and shared by a team in MIT. I’ve already wrote a little about this.

In this flavor, the editor has the pixelated Minecraft look and feel, and allows coding with visual blocks, dragging and dropping them into a blank canvas to create special Minecraft activities flows. This type of tools are ideal to start learning basic programming notions including variables, control flow, if statements, loops and functions.

 

I2

We can also switch to some real and light programming scenarios using … Javascript !!! (yes, Javascript everywhere). IMHO it’s a nice option to describe how a visual flow will be written later in real source code (even if is Javascript)

I3

And this are kids tools, if you are looking for a real development environment in top of Minecraft, Project Malmo is one of the best ways to start. You can do some serious coding using real programming languages like C#, C++ or Python. In their official website, Project Malmo is described as

The Malmo platform is a sophisticated AI experimentation platform built on top of Minecraft, and designed to support fundamental research in artificial intelligence..

And that’s it for today, I’ll wrote more about Project Malmo and this tools during the next couple of days, so be ready for fun stuff !!!Greetings @ Burlington

El Bruno

References

 

#Personal – #HourOfCode, #Minecraft, #MakeCode y Project Malmo

chickenrain-002

Hola!

Llega diciembre y llega una vez más uno de los momentos que más espero del año: Hour of Code. Ya he escrito sobre este tipo de actividades, y una vez más recomiendo apuntarse a la comunidad si quieres pasar un buen rato con niños aprendiendo a programar.

Pues bien, Minecraft es un tópico casi obligatorio entre los materiales que se han creado en estos últimos años. Yo como padre, puedo atestiguar que todos los niños crean una conexión especial con el juego y que cuando ven las posibilidades de extensión del mismo, a algunos se les ve un brillo especial en los ojos y quieren comenzar a probar esto.

Pues bien, además de las opciones que tenemos en la página de Hour of Code, también tenemos la posibilidad de utiliza los materiales que crea el equipo de Microsoft MakeCode. Existe un mod especial en el que podemos interactuar con el entorno de Minecraft utilizando herramientas visuales como Scratch.

I1

Nota: Scratch es el entorno de definición de flujos que ha creado y compartido el MIT.

El editor tiene el aspecto pixelado de Minecraft y permite la codificación con bloques visuales, haciendo drag and drop de los mismos. Este tipo de herramientas son ideales para comenzar a aprender nociones básicas de programación incluyendo variables, flujo de control, sentencias if, bucles y funciones.

I2

Ademas podemos ir un paso mas adelante y comenzar a programar estos bloques de codigo o scripts completos con Javascript! (Javascript everywhere!)

I3

Si lo que quieres es algo más potente, donde se pueda interactuar con un mundo de Minecraft con lenguajes como C#, C++ o Python, lo ideal es probar Project Malmo. Aquí la definición oficial:

Project Malmo es una plataforma para la experimentación e investigación de Inteligencia Artificial construida sobre Minecraft.

Y hasta aquí el post, porque escribiré un poco sobre Project Malmo en los próximos días.

Saludos @ Burlington

El Bruno

References