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
Y en pocos segundos estaremos muertos, ya que el 1er nivel que crea esta definición es un piso de LAVA.
Si cambiamos los layers de nuestro piso para que la lava este en el nivel inferior
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
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.
El codigo de definicion de la mision
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8" standalone="no" ?> | |
<Mission xmlns="http://ProjectMalmo.microsoft.com" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance" 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
- El Bruno, Minecraft game interaction agents, missions definitions and recording with Project Malmo
- El Bruno, Learning to code with Minecraft? start with Hour of Code, MakeCode and Project Malmo
- Malmo, GitHub Home
- Malmo Mission Xml Schema
- Malmo Mission Xml Schema, FlatWorldGenerator
- Superflat Preset Generator