#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


<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Mission xmlns="http://ProjectMalmo.microsoft.com&quot; xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance&quot; xsi:schemaLocation="http://ProjectMalmo.microsoft.com Mission.xsd">
<About>
<Summary>El Bruno Sample Mission from Xml definition</Summary>
</About>
<ServerSection>
<ServerHandlers>
<FlatWorldGenerator generatorString="3;1*minecraft:lava,1*minecraft:bedrock,7*minecraft:dirt,1*minecraft:ice,1*minecraft:grass;2;mineshaft(chance=0.01),lake"/>
<ServerQuitFromTimeUp description="" timeLimitMs="10000"/>
<ServerQuitWhenAnyAgentFinishes description=""/>
</ServerHandlers>
</ServerSection>
<AgentSection mode="Survival">
<Name>Valentino</Name>
<AgentStart/>
<AgentHandlers>
<ObservationFromFullStats/>
<VideoProducer want_depth="true">
<Width>640</Width>
<Height>480</Height>
</VideoProducer>
<ObservationFromGrid>
<Grid name="floor3x3">
<min x="-1" y="-1" z="-1"/>
<max x="1" y="-1" z="1"/>
</Grid>
</ObservationFromGrid>
<ObservationFromRay/>
<ObservationFromNearbyEntities>
<Range name="NearbyEntities"
xrange="10"
yrange="10"
zrange="1"
update_frequency="1"/>
</ObservationFromNearbyEntities>
<ContinuousMovementCommands turnSpeedDegs="180"/>
</AgentHandlers>
</AgentSection>
</Mission>

Saludos @ Toronto

El Bruno

References

 

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.