Desarrollar un MMORPG de Acción 3D en Godot Engine
Índice
Introducción
¿Listos para crear tu propio videojuego con algo de acción y un toque multi-jugador en gameplay?.
En tutoriales de introducción a Godot Engine cubrimos gran parte de varios conceptos y manejo del Engine. Ambos son géneros bien apreciados en la industria de los videojuegos y tienen mucho para ofrecer a los jugadores en términos de entretenimiento. Sin embargo, ¿que hay si quisieras un MMORPG–3D con un toque más de conocimientos bien complejos de conseguir?.
¿Qué es un MMORPG?
Un MMORPG (Massively Multiplayer Online Role-Playing Game) son juegos de rol online que permiten a un número masivo de jugadores introducirse en un mundo virtual de manera simultánea e interactuar entre ellos.
La mecánica consiste en crear un avatar a nuestro gusto, pudiendo elegir entre diversas razas o especies. Una vez tengamos a nuestro personaje, podremos aumentar niveles y mejorar al personaje, sus habilidades y armas.
What it Includes
Para este tutorial, vamos a profundizar sobre esto a full, y enseñarte como hacer un MMORPG de acción 3D en Godot Game Engine.
Comenzaremos por cubrir gran parte de este tutorial con lo más básico de un RPG, incluyendo como hacer:
- Un controlador de jugador en tercera persona
- Enemigos que siguen y atacan al jugador
- Sistema de combate melee
- Recolección de oro
- UI para mostrar nuestra salud y oro disponible
Si eso te suena genial, esperamos que te sientas a gusto en crear tu propio MMORPG–3D de acción desde cero!.
Antes de comenzar, por favor recuerda que este artículo podría resultar dificultoso de llevar adelante si no cuentas con los principios básicos de Godot. Si esta es tu primera vez aprendiendo el engine, asegúrate de revisar nuestro artículo de Introducción a la Programación en Godot.
¿Por qué Godot y no Unity?
Simplemente porque soy participe de los software de producción de videojuegos Open Source, y considero que si apoyáramos a este tipo de engines fabulosos y gratuitos, que nos ofrecen un arsenal completo de herramientas de producción y diseño a nuestra merced, el mundo podría cambiar y conoceríamos la otra cara de los videojuegos con una realidad totalmente diferente a cómo realmente lo venimos conociendo; cobraría mucho valor y las personas de todas las edades entenderían que crear videojuegos no es algo que puedas hacer de un día para otro ni mucho menos pueden ser llamados en su nombre jueguitos como tal.
Archivos del Proyecto
En este curso, vamos a estar utilizando modelos 3D y fuentes para hacer que nuestro juego luzca bien. Puedes optar en elegir lo que gustes para hacer tu propio proyecto pero diseñando este videojuego con estas especificaciones concretas en mente. Los modelos son de SkinSpotlights, un buen recurso assets de videojuegos de dominio privado y personal (no comercial). Posteriormente estaremos obteniendo las fuentes de Google Fonts.
Recursos Disponibles
• Font ➤ https://ouo.io/Hplrlf
• Models ➤ https://ouo.io/X7fxh3
• UI ➤ https://ouo.io/jE08gZ
Configuración del Proyecto
Para empezar, vamos a crear un nuevo proyecto Godot. Primero, vamos a importar los assets que necesitaremos.
En el panel de escena, seleccionar 3D Scene como nuestro primer nodo principal. Renombrar el nodo a MainScene y guardarlo en el sistema de archivos.
Verás que aquí estamos en modo 3D. En 3D, contamos con nodos Spatial. Estos son como los Node2D, pero nos permite posicionar, rotar y escalar los objetos en el espacio 3D. A continuación veremos una variedad diferente de líneas coloreadas.
- Línea Azul = eje Z
- Línea Roja = eje X
- Línea Verde = eje Y
Creando Nuestro Entorno
Aquí en el MainScene, vamos a comenzar por crear nuestro propio entorno ambiental 3D.
- Arrastra en el modelo naturePack_001.obj para crear un nuevo nodo MeshInstance
- Establecer Traslation con los siguientes valores: 0, 0, 0
- Establecer Scale con los siguientes valores: 0.1, 0.1, 0.1
Este va a ser nuestro terreno pero tenemos un problema. No contamos con colisionador sobre el modelo de terreno 3D lo que implica que el jugador traspase la malla y se caiga al vacío. Esto lo solucionamos muy rápidamente.
- Dirigirse al nodo Spatial naturePack_001
- Ingresar al icono 🎬 (si nos pide crear una nueva escena heredada clicamos en Nueva Escena Heredada)
- Seleccionar Mesh > Create Trimesh Static Body
Ahora que tenemos el terreno, arrastremos en el modelo naturePack_019.obj.
- Darle un colisionar Mesh > Create Trimesh Static Body
- Establecer Traslation con los siguientes valores: 0, 0, 0
- Establecer Scale con los siguientes valores: 0.1, 0.1, 0.1
Podemos entonces arrastrar más modelos al canvas 3D, asignarles a estos colisionadores y escalando/posicionando los nodos para crear un entorno ambiental espectacular.
Una cosa que deberías de tener en cuenta es que la jerarquía luce un poco desordenada con todo estos modelos añadidos en escena. Para arreglar esto, podemos crear un nuevo Node nodo y arrastrar los modelos como hijos. Este es el tipo de nodo más simple y funciona muy bien para contenedores. Luego puedes retraer y expandir este nodo todas las veces que sea necesario para trabajar de manera más eficiente.
Otra cosa que puedes notar es que esto está bastante oscuro. Para arreglarlo crearemos un nodo DirectionalLight el cual actúa como nuestro sol.
- Establecer Rotation Degress con los siguientes valores: -55, 65, 0
- Habilitar el Shadow > Enabled
Whoola! ya tenemos luz.
Junto con esto, hagamos que el skybox (la caja de cielo) luzca un poco más cool. Doble clic sobre el recurso default_env.tres en el FileSystem para abrir las opciones en el inspector.
- Clic sobre la propiedad Sky para editar el skybox
- Establecer Top Color a rosa
- Establecer Bottom Color a verde
- Establecer Horizon Color a azul
- Establecer Curve a 0.1
Eso fue Todo por Hoy
En el siguiente Episodio estaremos aprendiendo a Crear el Jugador con el que podremos movernos y atacar sobre el terreno que hemos diseñado en este tutorial.
Te invitamos a que formes parte de nuestra Red de Usuarios para que te registres y puedas continuar las clases tal cual, y lograr resultados más que excelentes en tu carrera artística como desarrollador de videojuegos en Godot Engine. Un gusto compartir todo este conocimiento con ustedes, nos vemos en el siguiente episodio.