Minecraft es lejos, uno de los juegos que cambiaron la industria para siempre. Hoy te voy a contar cómo extender sus funcionalidades mediante el desarrollo de plugins.

Bienvenid@ a mi diario personal. No te voy a contar acerca de mi pasión inexplicable por las costillas de cerdo a la BBQ. Te voy a transportar al mundo del desarrollo desde una óptica distinta.

Si viniste en busca de un artículo objetivo a base de curso o tutorial, no lo vas a encontrar. Ya tengo cursos de desarrollo con Laravel y Android donde podés aprender esas cosas.

Hoy te vas a meter en mi piel. Vas a conocer cada idea que voy teniendo sobre la marcha, mis catarsis y la forma en que funciona mi cabeza psicótico-lógica.

Minecraft y la capacidad de hacerlo todo

Si tengo que pensar en un juego que permite ser creativo de verdad y con mucha libertad, automáticamente digo Minecraft. El hecho de que cada bloque tenga su propia lógica y eventos; todo funcionando en un mundo basado en la generación procedimental, me parece un sueño.

Sin una sola linea de código, usando la redstone (un material que permite simular el funcionamiento eléctrico) podemos llegar a crear un microprocesador de varios núcleos.

Pero también tenemos la posibilidad de ir por el mundo plantando granjas, combatiendo enemigos y creando pixelart. Eso es un verdadero sandbox, un juego que nos permita hacer lo que queramos cuando queramos.

Pero yo quería más: Extender la funcionalidad, crear mi propio mundo, mis propios bloques.

Winncraft, el inicio de todo

Jugando con un amigo, me enseñó un servidor llamado Winncraft. Nunca había entrado a uno, siempre jugué Minecraft Vanilla y offline. Pero cuando estuve dentro, lo entendí: las posibilidades eran infinitas. Un MMORPG come horas impresionante.

Como jugador, necesitaba meterme en ese mundo por horas y disfrutarlo como un bebé. Pero como programador, quería crear algo así.

Así fue como conocí Spigot.

Spigot y mi Renacimiento

Soy un desarrollador full stack, por lo cual manejo tecnologías mobile y web. Pero mi lenguaje core es Java. Minecraft esta desarrollado en Java. Por lo tanto, desarrollar plugins para este juego iba a ser realmente interesante.

Cuando encontrás algo que se te da bien y empezás a practicarlo, entras en un estado de satisfacción bastante alto. Pero si ese conocimiento te introduce en otras áreas, se vuelve mucho mejor. Podría decir que es similar a trabajar con Python por años y de repente aparece Machine Learning.

Bukkit es un plugin que funciona sobre el servidor oficial de Minecraft, permitiendo añadir funcionalidades y plugins. Spigot es un hijo de Bukkit, una versión mejorada. Si mal recuerdo, el desarrollo de Bukkit se discontinuó y ahora todo esta centrado en Spigot. Para mas información, pueden ver este post en el foro oficial de Spigot.

Spigot tiene una API que nos permite crear nuestros propios plugins. Yo estoy aprendiendo a desarrollar plugins con esta lista de reproducción de un youtuber americano.

Cabe aclarar que en materia de Youtube, no encontré vídeos de desarrolladores que expliquen a fondo como funciona cada componente de Spigot. Tampoco se repara en Java, así que deberían aprender el lenguaje previo a jugar con plugins.

Muchos dicen que se aprende Java mientras se adquieren conocimientos en Spigot. Esto no es verdad. Hay fundamentos del lenguaje, buenas prácticas, patrones de diseño, manejo de eventos, anotaciones y miles de temas más que no se ven explícitamente con Spigot.

Cómo armé Mi Entorno

La información sobre como armar un entorno para trabajar cómodamente con Spigot, está dispersa por todos lados. La mayoría de los que enseñan esto, lo hacen de una forma medio incómoda. Vengo a traer un poco de luz al asunto.

Procedo a enumerar los pasos uno a uno:

Primero hay que tener instalado Intellij. Bajen la versión Community porque la Ultimate es paga.

Luego deben tener creado un servidor de Minecraft con Spigot funcionando. Lo bajan desde aquí.

Para crear un proyecto de Spigot en Intellij, sigan las instrucciones del primer video de la lista que dejé más arriba.

Una vez creado el proyecto, siguen los pasos de este artículo. Esto les va a permitir iniciar el servidor e incluir el plugin automáticamente.

De esta manera ya deberían tener un entorno limpio y funcional.

Conclusiones

Este es uno de esos proyectos que me lanzo a emprender sin paracaídas. Quizá a mucha gente le guste o quizá no. En realidad, confieso, esto lo hago como un proceso de introspección.

Espero que les haya gustado y me encantaría que dejen su opinión. Estos artículos no siempre serán del mismo tema, quizá mañana hable de Android, web o alguna tecnología que me haya cruzado.

Si te gustan los artículos que escribo y querés apoyarme con el proyecto, podés hacerlo mediante Patreon :)

Hasta la próxima!