lunes, 22 de diciembre de 2025

Página 129: Apuntes de "Learn Godot by Making Minecraft - Complete Crash Course"

Lista de reproducción completa del tutorial Learn Godot by Making Minecraft , creada por LegionGames

https://www.youtube.com/watch?v=sAZ8D3rt5yU&list=PLQZiuyZoMHcgQDKSv8L9IJ1y6VcVgFI7D


Empezamos otra serie: vamos a ver cómo crear un clon de Minecraft. Este primer vídeo es bastante largo, pero la mitad es una introducción a Godot 3D, que me voy a saltar. En la segunda mitad veremos cómo crear el mundo, el jugador y la mecánica de colocar y quitar bloques.


De la primera mitad, voy a comentar sobre el nodo CSGBox3D, no se que es, pero en el tutorial se usa como una combinación de StaticBody3D > MeshInstance3D, CollisionShape3D, en el tutorial se muestra que esta mesh tiene una colisión, pero en mi versión de Godot, hay que habilitar el checkbox de Use Collision.

 

Ahora nos ponemos serios y empezamos con lo que nos interesa.

Empezamos reduciendo la gravedad del juego.

 

Vamos a crear la escena del Player(CharacterPlayer3D), con la siguiente estructura.

 

La posición de de la Camara3D y RayCast3D.

 

  

Se adjunta script a la escena.

 

Vamos a crear el set de bloques, descargamos los ficheros glTF, empezaremos creando la escena Blocks y arrastraremos todos los ficheros que nos interese a la escena.

 

Vamos hacer local cada escenas que hemos arrastrado.

Vamos a sacar los MeshInstance3D del Node3D y borrar los Node3D vacíos.

Metemos un StaticBody3D con un CollisionShape3D en cada bloque (agregamos una forma de cubo en cada CollisionShape3D). 

 

 Separamos los bloques. 

 

Exportamos la escena como una Meshlibrary. 

 

Podemos modificar el material de los bloques desde el fichero Block.tres que hemos exportado.

Si no cambiamos nada, los bloques se verán muy brillantes bajo la luz y dará la sensación de que están hechos de cartulina, para solucionarlo, hay que bajar el Roughness a uno.

 

Crearemos la escena World(Node3D) que sera el mundo del juego.

 

Vamos a ver paso a paso cada nodo.

WorldEnvironment 

 

DirectionalLight3D

 

GridMap

 Antes de ponernos con la MeshInstance3D Mar, vamos a crear el escenario.

 

Adjuntamos el script en el nodo GridMap que contiene la logica de quitar y poner bloques.

 

Continuamos nodo que nos queda, que es el MeshInstance3D llamado mar, este sera un cubo que dara el efecto de mar en el escenario.

En el tutorial funciona solo con poner un tono transparente en el color del Albedo, pero yo he tenido que poner Transparency > Transparency en Alpha

 

Finalmente, es como deberia quedar el escenario.

  


Este es uno de los tutoriales que abandoné en su día porque me pilló muy verde. A día de hoy ya he empezado entender como funciona la cosa. Por mi parte, hice mi propio intento de crear un Minecraft, pero me quedó muy primitivo: no tenía ni idea de cómo usar el RayCast3D, y solo podías colocar bloques en función de tu posición, no adonde apuntaras con el ratón. Tampoco usaba GridMaps.

También es verdad que lo pillé de mal humor. Me descargué la carpeta de bloques y pensé que LegionGames te ponía bloques feos para que tuvieras que pagar el Patreon y así descargar el proyecto con los bloques que salen en el vídeo. Me pareció algo rastrero.

Volví de nuevo para revisar si lo había arreglado y me di cuenta de que desde el principio los bloques del tutorial siempre habían estado ahí. Menuda torpeza la mía.

Como recordatorio —para no volver a descargarme los bloques feos— dejo aquí la captura con la carpeta correcta que hay que bajar.

 

Me parece curioso que haya que pagar para tener el código terminado, aquí cada uno se lo monta como mejor vea, para mi es de agradecer que haya creado un pack gratuito de licencia CC0. 

La verdad es que el mar da el pego.

 

El epilogo de esta entrada esta quedando mas largo que los apuntes, pongan ya de una vez el video de relleno.

No hay comentarios:

Publicar un comentario