Biblioteca Digital Abierta labNauTICs

Innovación educativa, Minecraft Education y enseñanza STEAM.

codigo de programacion en python dentro de minecraft education

Crear un Mod con Python para Minecraft en Tablet, Celular y PC

CodeBuilder nos permite programar Python en Minecraft para generar minijuegos, simulaciones y trucos. Te mostramos varios experimentos para introducirte a la programación.

Al final del tutorial, te explicaré cómo desarrollar un mod completo, para generar oleadas de enemigos.

Además, tendrás preguntas y reflexiones para aprender más de programación en Python, y para qué sirve cada línea.

Podrás seguir este tutorial de Minecraft Education en tablet, pc y teléfono móvil.

Lograrás crear un mod asombroso, y podrás practicar habilidades de combate con amigos.

Antes de comenzar…

Si todavía no has visto cómo descargar e instalar Minecraft Education en tu tablet o teléfono móvil, mira este tutorial en donde te explico paso a paso cómo hacerlo.

¿Se puede programar Minecraft con Tablet?

¡Podemos comenzar a programar usando tablet (y celulares / móviles) y Minecraft Education!

💡 ¿Sabías que…
Los lenguajes de Programación en Minecraft Education son Python, Javascript y en Bloques (MakeCode)?

Entonces, la tecnología la llevas en el bolsillo, y todos podemos comenzar en casa! Si tienes disponible una PC, Mac o Chromebook, siempre será mejor programar desde allí, pero si es tu primera vez, ve adelante con lo que tengas en casa!

Si todavía no has instalado Minecraft, mira la guia de instalación para Android (tablet, movil) o la guía para instalar Minecraft Education en PC o Mac.

Inspiración: Mi primer proyecto de Python en Minecraft

1. Creando un mundo plano

Antes de poder acceder al intérprete de programación de Python en Minecraft, necesitamos tener un mundo preparado para nuestros experimentos.

La mejor manera para no distraernos y poder probar todo sin sorpresas, es crear un mundo plano.

Minecraft Education para Android, cómo crear mundo nuevo

Primero tenemos que darle al botón Crear Nuevo, que está justo luego de tocar en Jugar. Copia las configuraciones de la próxima imagen para crear un mundo plano:

crear mundo plano en minecraft education y bedrock

Pon un nombre que puedas recordar. Intenta evitar «asdf» y otros como «1234567890».

Como vamos a trabajar con Python, te sugiero que uses el nombre «Experimentos con Python» o algo similar 😉.

Copia las opciones de mundo de la foto. Quitarán todas las distracciones de mobs, la tnt y el fuego para que no haya sorpresas.

mostrar coordenadas en mapa de minecraft education
Trucos activados en minecraft education al crear mundo

Finalmente, en la sección de Trucos, copia las siguientes reglas de mundo. La lluvia y el ciclo día-noche son molestos para programar Minecraft, ya que nos quitan visibilidad.

💡 ¿Sabías que…
puedes activar o desactivar todos estos Trucos y Opciones con el comando /gamerule?

2. Abrimos el intérprete de Python en Minecraft

donde programar en minecraft con tablet

Entra a CodeBuilder para comenzar a programar con Python tocando el botón marcado en la imagen (el que tiene un pequeño Agent).

elegir las alternativas de programacion en minecraft education

Toca la segunda opción «Aprende a programar en Python» (la de en medio).

como crear un proyecto nuevo de python en minecraft

Baja hasta el final apenas entres a Python. Encontrarás el botón «Proyecto nuevo».

Dale un click y luego toca «Continuar«.

🎺 ¡Todo preparado! 🥳

💡 ¿Te animas a…
hacer todos estas actividades con MakeCode? ¡Envíanos tu código en los comentarios!

3. Hour of Code!

Comencemos con python como lenguaje de programación

Vamos a hacer algunas pruebas rápidas con 3 códigos, para ir entendiendo poco a poco cómo escribir código en python.

Estas serán como las rueditas para comenzar a andar en bici.

Copia el código en tu proyecto y dale a Ejecutar.


¡Toca las imágenes para ampliar!

👨‍💻
El Agent será tu fiel amigo en este viaje. Este código hará que avance 2 veces, y luego gire a la izquierda 2 veces. Al finalizar, se presentará; «Hello…»

¡Si no sabes inglés, quédate! En mi caso -como el de varios colegas, amigos y compañeros-, aprendí inglés jugando a videojuegos y mejoré muchísimo aprendiendo a programar.

Está demostrado que jugar videojuegos (y programar) mejora tu nivel de inglés, así que date un respiro. Si es difícil, copiar los códigos por ahora será suficiente.


En el siguiente, tendrás que estar bien despierto/a para copiar bien el código:

👨‍💻
Esto es un poco más complicado. Repetiremos 26 veces un comportamiento. Con give daremos una manzana al jugador (player), cada vez.

¡NO FUNCIONA, profe!

Revisa que no te hayas olvidado los : y los 4 espacios que lleva la línea 6 delante de player.give 😁


👨‍💻
Esto se llama «método». Y este método dice que:
añada un efecto de poción- al jugador, de Levitación, con potencia 1 y durante 10 segundos.

Bueno, ¡esto es Más divertido! y ya conocemos algunas instrucciones de python.

Acompáñanos a crear un experimento y nuestro 1er mod de Minecraft con Python.

4. Crear un mod de Minecraft con Python

Entramos en el terreno de la creatividad y la curiosidad… Programar es como crear recetas de platillos. Cuantas más veces lo hagamos, los resultados irán siendo cada vez mejores. Aprenderemos a mezclar ingredientes, gustos y texturas para ir definiendo cada vez mejores recetas, que funcionen para diferentes ocasiones y gustos.

Vamos a crear el mod de Oleadas de Enemigos

Esto es parte del viaje hasta Crear tu primer videojuego

para Minecraft Education y Bedrock.

Para crear este mod de python en Minecraft, te recomiendo repasar los códigos anteriores… Haremos que aparezcan enemigos en el mapa usando el agente, el comando summon, y el método from_me, tendrás un minijuego para practicar combate.

Necesitarás utilizar «for» (una instrucción para repetir código), y también coordenadas relativas y globales.

También, te mostraré una versión avanzada, en donde incorporaremos un Timer para dejar tiempo entre las apariciones, y crearemos un juego mas nivelado, sin tanto (o con mucho, tu eliges) frenesí de enemigos.

crear un sistema de oleadas en programacion de videojuegos

Pensemos cómo hacerlo:

Para generar un enemigo en cualquier videojuego, debemos permitir al jugador tener un tiempo de respuesta para poder defenderse.

Para esto, podemos «arreglar» la posición de nuestro spawn de oleadas de enemigos medianamente lejos y hacerla visible para el jugador.

Para este ejemplo, lo haremos 5 bloques delante de él.

También, tenemos que esperar un tiempo entre que aparezca un enemigo y otro de cada oleada, y un tiempo entre las oleadas para dejar al jugador que liquide todos los enemigos…

¡Son muchas cosas! Veamos cómo hacerlo de a poco.

¿Qué haremos? > Una vez movido el punto de spawn (nuestro Agent) de los enemigos, haremos summon de un esqueleto.
Repetiremos esto hasta generar 3 esqueletos. Luego, agregaremos más bichos, y más oleadas (conjuntos de enemigos).

¡Pregunta!
🤔¿Ya sabes usar Coordenadas? 🤔

Necesitarás usarlas en este tutorial de python en Minecraft, además de otras cosas.
Antes de seguir, ¡asegúrate de tenerlo comprendido!


# Traer al Agent a la posición en donde planeo que se generen los esqueletos
# Cambia "73", "-60", "-40" por las coordenadas que quieras usar en tu mapa!!!
agent.teleport(["73", "-60", "-40"])

# Agente.Moverse hacia adelante ("forward"). Hacerlo 5 veces
agent.move("forward")
agent.move("forward")
agent.move("forward")
agent.move("forward")
agent.move("forward")

#Una vez movido, guardamos la posición del Agent en una variable llamada "pos"
pos = agent.position

#Aparecer Skeleton (esqueleto) en "pos" como origen, 3 veces
summon("skeleton", [pos.x, pos.y, pos.z], 3)

🤔¿Qué mejoras detectas?
¿Has visto algun sistema así en juegos? 🤔

Si te sientes cómodo/a, prueba la versión intermedia:

# Como necesito usar pausas entre las oleadas y las apariciones, necesito traer esto a mi codigo.
import time

# Traer al Agent a 5 bloques delante del jugador
# El símbolo ^ representa la posición donde está el jugador como ~, pero incluyendo a donde mira.
agent.teleport(["^", "^", "^5"]) #el último número es Adelante/Atrás del jugador
pos = agent.position
#estas 2 proximas lineas hacen que no aparezcan enemigos dentro del suelo
pos.x = player.position.x
pos.y = player.position.y

# Repetir todo lo que esta -dentro del for-, 3 veces (mi cantidad de oleadas total)
for oleada in range(3):
    #Invocar 3 esqueletos en la posición del agente, previamente guardada en "pos"
    summon("skeleton", [pos.x, pos.y, pos.z], 3)
    #Mostrar un mensaje con la oleada que ha sido invocada (1, 2 o 3)
    say(f"Oleada {oleada+1} invocada!")
    #Esperar 2 segundos entre aparición de cada mob
    time.sleep(2)

🤔¿Qué representan los ^ en la posición?
¿Qué pasa si pongo «{oleada}» en lugar de «{oleada+1}» en el say? ¿Para qué sirve esa f fuera de las comillas?
¿Esta versión es más o menos parecida a otros videojuegos? 🤔

Veamos el código completo. La versión avanzada, cuenta con varios tipos de enemigos:

# Como necesito usar pausas entre las oleadas y las apariciones, necesito traer esto a mi codigo.
import time

# Traer al Agent a 5 bloques delante del jugador
# El símbolo ^ representa la posición donde está el jugador como ~, pero incluyendo a donde mira.
agent.teleport(["^", "^", "^5"]) #el último número es Adelante/Atrás del jugador
pos = agent.position
#estas 2 proximas lineas hacen que no aparezcan enemigos dentro del suelo
pos.x = player.position.x
pos.y = player.position.y

#guardo el bicho que corresponde a cada oleada dentro de una "variable" (en realidad, se llama array)
bicho = ["skeleton","zombie","creeper"]

# Repetir todo lo que esta -dentro del for- (hasta time.sleep(3)), 3 veces (mi cantidad de oleadas total)
for oleada in range(3):
    #Summon (aparecer) un Esqueleto en la posición que hemos guardado justo antes
    for desplazamiento in range(3):
        #Hacer summon del bicho [de esta oleada], en la posición elegida; uno al lado de otro.
        summon(bicho[oleada], [pos.x + desplazamiento, pos.y, pos.z], 1)
        #Esperar 2 segundos luego de cada aparición
        say(f"Oleada {oleada+1} invocada!")
        #Esperar 2 segundos entre aparición de cada mob
        time.sleep(2)
    #Esperar 3 segundos entre oleadas
    time.sleep(3)

#Avisar en el chat al terminar el programa
say("Programa completado!")

🤔¿Qué cambios detectas con el primer código?
¿Cuál te parece mejor para un mapa de aventuras?
¿Por qué agregamos el for desplazamiento y cómo mejora la jugabilidad?
¿Podríamos generar oleadas infinitas con este código? y si es así, ¿Cómo? 🤔

En Mi caso, la posición del mundo en donde está el Stand de Armaduras, es la coordenada 73 -60 -40, y quería generar un sistema de oleadas de bichos en ese lugar por razones narrativas.

Tú elige la posición que quieras, o usa «^» para ponerlos delante/detrás del jugador!

Puedes cambiar la lista de enemigos que aparecerán en cada oleada cambiando los nombres por los que desees.

Vamos a dar un poco de tiempo para reflexionar sobre este ejercicio. ¡Haz pruebas y escribe un comentario!

⬇⬇⬇⬇⬇

Te recomiendo ver la parte 2 para seguir creando más y mejores mods de Minecraft Education!

Soy Juan Ignacio Lanosa y soy un apasionado de la Educación STEAM. Profe de programación, videojuegos, minecraftero y fundador de lab academia.

Te contaré cómo crear aulas innovadoras, clases memorables y trabajar con la tecnología educativa al máximo.

foto de Juan Lanosa, fundador de lab y educador en programacion, desarrollo de juegos y minecraft
Juan I. Lanosa, Educador y Líder en Tecnología educativa.

2 respuestas a «Crear un Mod con Python para Minecraft en Tablet, Celular y PC»

  1. […] Las Clases y Objetos provienen del Paradigma de Programación Orientado a Objetos, sobre el cual está basado el motor de Minecraft escrito en C++ (Bedrock) y Java (Java Edition), o lenguajes de programación como python. […]

  2. […] en Minecraft son elementales a la hora de trabajar con comandos, y pueden usarse en MakeCode y Python, para programar comportamientos de […]

Deja una respuesta

¿Tienes dudas?

Ponte en contacto y consulta sobre nuestros artículos, capacitaciones, contenidos y servicios de Educación STEAM e Innovación abierta.

¡Síguenos en las redes!

Verificado por MonsterInsights