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.
Guía: Programar con Python en Minecraft
¿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.
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:
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.
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
Entra a CodeBuilder para comenzar a programar con Python tocando el botón marcado en la imagen (el que tiene un pequeño Agent).
Toca la segunda opción «Aprende a programar en Python» (la de en medio).
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.
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!
Lee y copia la primera versión, para principiantes:
# 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.
Deja una respuesta
Lo siento, debes estar conectado para publicar un comentario.