Giter Club home page Giter Club logo

minecraft's Issues

Desarrollos futuros

Algunas ideas que me han pasado varias veces por la cabeza:

  • Construcción de castillos
  • Bosques
  • Jardines
  • ...

Documentar como montar tu servidor con un USB Live de Linux

Creo que con un USB de 4GB se podría tener un entorno Linux bastante funcional desde el que arrancar Linux (Ubuntu creo que sería la opción) en modo Live (todo se ejecuta desde el USB, y los datos se guardan dentro del USB, sin tocar el disco del ordendor), instalar allí todo el servidor y poderlo usar para programar notebooks.

https://ubuntu.com/tutorials/tutorial-create-a-usb-stick-on-windows#1-overview

Habría que ver las limitaciones que tiene y si es realmente funcional. Pero sería ideal para la gente que tiene Windows/Mac y quieren probar sin tocar sus sistemas.

No se configura de forma correcta el servidor de minecraft

Al intentar configurar el servidor de Minecraft, da la sensación de que se puede configurar modificando los ficheros en:

https://github.com/juntosdesdecasa/minecraft/blob/develop/server/docker-compose.yml#L11

- ${MINECRAFTSRV_PATH}/etc:/opt/minecraft/config

pero esto no es así, porque el servidor lee su configuración del directorio:

/opt/minecraft/server

De momento para hacerme op en el servidor lo he tenido que hacer con:

[server]$ docker cp etc/ops.json server_minecraft_1:/opt/minecraft/server

y reiniciando el servidor.

[server]$ MINECRAFTSRV_PATH=. docker-compose restart minecraft

[server]$ docker exec -it  server_minecraft_1 /bin/bash
minecraft@bef7a96f7979:~/server$ cat ops.json 
[
  {
    "uuid": "fb180658-b40d-4797-8872-a625138da9cb",
    "name": "ElasticExplorer",
    "level": 4,
    "bypassesPlayerLimit": false
  }
]

Tenemos que buscar una forma mejor para que se refleje la config, y pasa algo similar con los logs.

Mejora sobre los desarrollos/talleres actuales

  • Mejorar la pirámide: crear una entrada y construir laberintos en su interior (puede ser inerseccionando bloques de aire)
  • Mejorar la muralla china: que por arriba no sea lisa
  • Ahora en la aldea en vez de aldea parece barracones. Habría que añadir más elementos (árboles, flores ... ¿animales? Creo que no se puede) a la aldea y darle un toque de aleatoriedad (casas de diferentes tamaños, con diferentes materiales ...).
  • La muralla que rodea a la aldea se podría mejorar (como la muralla china) y, quizá, que en vez de ser muralla sea un cerco vegetal, que pueda tener un foso de agua ...

Investigar plugins de Bukkit y como se instalan en el servidor

Nuestro servidor está basado en https://papermc.io/ y https://www.spigotmc.org. Y se usa Bukkit como mecanismo de extensión del servidor. En Bukkit tenemos cientos de plugins: https://dev.bukkit.org/bukkit-plugins

Parece sencillo instalarlos: https://bukkit.gamepedia.com/Installing_Plugins

Voy a probar a instalar el plugin https://dev.bukkit.org/projects/worldedit que parece que nos permite editar el mundo desde el propio minecraft (Quickly create, replace or delete thousands of blocks in seconds, Level an entire mountain and replace it with natural looking terrain...). Aquí ha salido el concepto de schematics que creo que permite compartir porciones de mundos.

Pasar todos los ejemplos actuales a notebooks de Jupyter

Una vez que tenemos claro que queremos explorar a fondo el desarrollo con Python y Minecraft utilizando notebooks de Jupyter vamos a migrar los ejemplos que ya tenemos a notebooks para poder ir evolucionándolos. Hay que tener cuidado de que los notebooks acaben siempre gestionados en este servidor de git.

Definir como gestionar el control de cambios en los notebooks de Jupyter

Si usas los notebooks en línea de Google Colab:

https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb

Parece que tiene integración con GitHub, lo cual es una excelente noticia.

Si usamos nuestro docker de Jupyter, es probable que no la tenga, o quizá sí. Nuestro contenedor docker de Jupyter carga los notebooks de:

server/src/mcjupyter

que está bajo git. Así que si subimos los ficheros de este directorio a git, ya lo tenemos. Cada vez que salvemos de Jupyter los notebooks, luego podremos registrar los cambios en git desde la línea de comandos. Estupendo!

Refactorizar código en "src" para talleres medio/avanzados

Una vez que tenemos claro que vamos a utilizar los notebooks de Jupyter para iniciación a la programación en Python con Minecraft, la idea es utilizar el código en "src" para crear ejemplos y bibliotecas de nivel medio/avanzado, que requieran de un IDE y que cubran la evolución de los que hayan aprendido ya la programación básica y Jupyter se les quede corto.

En "src" haremos programación orientada a objetos por ejemplo creando las clases Pyramid, House, Town, TownWalled y mostraremos los conceptos de bibliotecas, clases, objetos, herencia, composición y demás conceptos básicos en este tipo de programación.

Evitaría la programación imperativa, que se puede además cubrir en Jupyter, e intentaría incluso dar nociones de programación funcional.

Learning Python with Minecraft step by step

After developing the pyramids, great wall and walled town tutorials, it is clear that we can learn Python visually in a motivating way for children. So let's start doing step by step. The complete API is here:
https://www.stuffaboutcode.com/p/minecraft-api-reference.html

  • Building one block
  • Building one block with data (to understand the data, get a block of a specific type and analyze the data). In the doc API there is a specific data section for the API calls.
  • Exploring different types of blocks
  • Describing a player in the world
    • Position
    • Pitch, Rotation, Direction: not in MyPI API, added later
  • Building cubes
  • Limits: max height ....

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.