Skip to content
Saltar al contenido
Volver al Blog
Código Java que muestra la anotación @ExpectPlatform para el desarrollo de mods multiplataforma en Minecraft

Architectury API: Mods de Minecraft multiplataforma

Alex Maftei
Alex Maftei
@ice
Actualizado
107 vistas
TL;DR:Architectury API permite a los desarrolladores escribir código una sola vez y desplegarlo en Fabric, Forge y otros cargadores de Minecraft.
🐙 Proyecto de Minecraft de código abierto

architectury/architectury-api

Una API intermediaria orientada a facilitar el desarrollo de mods multiplataforma.

⭐ 420 estrellas💻 Java📜 LGPL-3.0
Ver en GitHub ↗

¿Cansado de escribir mods separados para Fabric y Forge? Architectury API te permite escribir tu código una sola vez y desplegarlo en múltiples cargadores sin duplicar medio proyecto. Es el framework que convierte el modding multiplataforma de una tarea frustrante en algo realmente práctico.

Qué hace esta API

Architectury API no es solo otra librería más. Es una capa de traducción entre dos formas fundamentalmente diferentes de crear mods para Minecraft.

Imagina esto: has creado un mod brillante para Forge. Luego alguien te pregunta si funciona en Fabric. Resulta que no, porque Forge y Fabric implementan los sistemas principales de forma completamente distinta, y has integrado código específico de cada cargador en todo tu proyecto. Ahora te enfrentas a meses de reescritura para hacer que el mismo mod funcione en otra plataforma.

Ese es exactamente el problema que resuelve Architectury. Proporciona una interfaz unificada para que tu mod pueda llamar al cargador en el que se esté ejecutando sin preocuparse por las diferencias subyacentes. ¿Forge tiene un código diferente al de Fabric? Architectury se encarga de eso por ti. El proyecto ofrece más de 90 ganchos de eventos y abstracciones para registros, redes y detección de cargadores. No tienes que reimplementar todo el panorama de la API, sino obtener una capa de traducción sensata que habla ambos idiomas con fluidez.


Por qué los desarrolladores quieren esto

Esta es la dura verdad del modding multiplataforma tradicional: construías tu mod, lo probabas, arreglas errores, añadías funciones... y luego lo hacías todo de nuevo para el otro cargador. Cada corrección de errores tenía que hacerse en dos sitios. Cada función nueva significaba el doble de trabajo. La mayoría de los modders simplemente elegían una plataforma y daban el tema por zanjado.

Con Architectury, mantienes el código compartido en un módulo común y guardas los elementos específicos de la plataforma en carpetas separadas. La mayor parte de tu lógica vive una sola vez y funciona en todas partes. Eso es verdaderamente potente cuando mantienes un mod durante meses o años. Pero también significa que no tienes que elegir entre comunidades. Algunos jugadores prefieren los cargadores de Fabric (especialmente Quilt), mientras que otros se quedan con Forge. Consulta la lista de servidores en minecraft.how y verás comunidades multijugador que utilizan paquetes de mods muy diferentes, cada uno con sus propias preferencias de cargador. Al admitir múltiples plataformas, llegas a ambas audiencias en lugar de dejar a una tirada.


La anotación @ExpectPlatform: Cómo funciona

El archivo README menciona esta anotación, pero esto es lo que ocurre realmente bajo el capó.

Supongamos que necesitas llamar a algo que se implementa de forma diferente en Fabric en comparación con Forge. Tal vez el renderizado de pantallas, la gestión de eventos o los paquetes de red. No puedes simplemente llamar a ambos. Quienes lo intentan no saben en el momento de la compilación en qué cargador se están ejecutando.

La respuesta de Architectury es la anotación @ExpectPlatform. Marca un método con ella y le estás diciendo al sistema de compilación: "Este método tendrá diferentes implementaciones según la plataforma". Tu código compartido lo llama con normalidad. Detrás de escena, el proceso de compilación intercambia la versión correcta para cada cargador. Los usuarios de Fabric obtienen la implementación de Fabric y los de Forge obtienen la de Forge. Limpio y sencillo.

Es elegante porque tu código común se mantiene legible mientras gestionas las diferencias de plataforma exactamente donde existen, y en ningún otro lugar.


Más allá de las anotaciones: Eventos, redes y registros

@ExpectPlatform es potente, pero Architectury no se detiene ahí.

Los sistemas de eventos son enormes. Tanto Fabric como Forge los tienen, pero son arquitectónicamente diferentes. Architectury abstrae ambos para que registres oyentes de eventos sin ramificaciones específicas de la plataforma. ¿Diferencias en el registro de objetos? Solucionado. ¿Redes entre cliente y servidor? El mismo trato. Una cosa que vale la pena señalar: no tienes que usar todo esto. Architectury es opcional incluso en un proyecto construido con su cadena de herramientas. Puedes usar solo la configuración de compilación y gestionar las diferencias por ti mismo si lo deseas. Pero si ya estás aquí, ¿por qué no usar los ganchos de eventos y utilidades que ya han escrito? Ahorra tiempo.


Qué necesitas para empezar

Aquí es donde la gente suele confundirse.

Architectury API por sí sola no es suficiente. Necesitas tres piezas trabajando juntas. La primera es Architectury Plugin, un plugin de Gradle que configura la estructura de tu proyecto y le dice al sistema de compilación cómo lidiar con las diferencias de plataforma. La segunda es Architectury Loom, una bifurcación de Fabric Loom que añade capacidades de compilación multiplataforma (descompilación, reasignación y gestión del entorno de desarrollo). La tercera es consultar las plantillas oficiales en su GitHub para entender la estructura de carpetas real y la configuración de Gradle.

El ecosistema parece pesado, pero en realidad requiere menos esfuerzo que mantener dos proyectos de mods por separado. Desarrollo compartido, código compartido, pruebas compartidas, y solo el código específico de cada plataforma vive por separado.


Problemas comunes de los nuevos modders

No puedes simplemente añadir Architectury a un mod existente de una sola plataforma. La mayoría necesita reestructurar su proyecto utilizando su cadena de herramientas. No es un obstáculo insuperable, pero tampoco es trabajo cero.

@ExpectPlatform solo funciona en métodos estáticos. Esa es una limitación real si estás acostumbrado a enfoques basados en instancias. Tiene sentido (los métodos estáticos son más fáciles de intercambiar en el momento de la compilación), pero es bueno saberlo de antemano.

Las pruebas se vuelven más complejas. Necesitas probar ambos cargadores, idealmente en múltiples versiones de Minecraft. Tu configuración de integración continua debe manejar esto. Los modders solitarios a menudo se saltan las pruebas completas, razón por la cual algunos mods afirman ser multiplataforma pero funcionan notablemente mejor en una plataforma que en otra.


¿Necesitas esto?

Para un mod experimental rápido, probablemente no. El desarrollo en una sola plataforma es más rápido. Pero una vez que tienes algo real con funciones a las que no les importa qué cargador hay debajo, Architectury ahorra una cantidad enorme de tiempo.

Si tu mod está profundamente vinculado a funciones de una sola plataforma, o solo apuntas a un cargador, sáltatelo. Serás más feliz y productivo. El punto ideal: tienes una idea sólida de mod, quieres llegar a la mayor base de jugadores posible y no quieres mantener dos bases de código completamente separadas. Es ahí cuando Architectury se gana su lugar en tus compilaciones.


Enfoques alternativos a considerar

Quilt Standard Library es otra opción multiplataforma, aunque se inclina más hacia la compatibilidad con Quilt que el enfoque multicargador de Architectury.

Algunos modders utilizan anotaciones de procesador o Mixins para manejar las diferencias de plataforma sin una abstracción dedicada. Es más trabajo, pero mantienes el máximo control. Y, sinceramente, si solo te diriges a Forge o solo a Fabric, no necesitas Architectury en absoluto. Utiliza las APIs nativas de tu plataforma y olvídate por completo de la capa de abstracción. No hay vergüenza en el desarrollo para una sola plataforma si ese es tu objetivo.


La verdadera propuesta de valor

Si tus ambiciones de modding van más allá de un solo cargador, el tiempo invertido en Architectury vale la pena. El proyecto se mantiene activamente, la comunidad es muy útil (su Discord está enlazado en GitHub) y la solución funciona a gran escala.

Crear mods multiplataforma sin esto es como gestionar configuraciones de DNS separadas de forma manual en lugar de usar una herramienta. Técnicamente es posible, pero ¿para qué? Las herramientas existen para evitarte complejidades innecesarias. El ecosistema de modding de Minecraft prospera a través de múltiples cargadores. Architectury hace que participar en ese ecosistema sea algo práctico en lugar de agotador.

Sobre el autor
Alex Maftei
Alex MafteiRedactor principal

Lead writer at minecraft.how. Long-time Minecraft player running a small SMP server, testing every build, mod, and seed before writing about it.

¡Compártelo con tus amigos!

Preguntas Frecuentes

¿Necesito Architectury API si solo me interesa Forge o Fabric?
No. Architectury API es específicamente para el desarrollo multiplataforma. Si solo te diriges a un cargador, utiliza las APIs nativas de ese cargador directamente. La capa de abstracción añade complejidad sin ningún beneficio si no necesitas múltiples plataformas.
¿Es Architectury API de uso gratuito?
Sí, es completamente gratuito y de código abierto bajo la licencia LGPL-3.0. Todo el ecosistema (plugin, API, loom) está mantenido por voluntarios. Puedes usarlo comercialmente sin tarifas.
¿Puedo convertir un mod existente para que use Architectury?
Teóricamente sí, pero en la práctica supone un trabajo considerable. Necesitarías reestructurar tu proyecto, separar el código específico de la plataforma y reescribir partes para la capa de abstracción. A la mayoría de los desarrolladores les resulta más fácil empezar desde cero con Architectury que adaptar un mod existente.
¿Qué versiones de Minecraft admite Architectury API?
Architectury API se actualiza con regularidad y es compatible con las versiones recientes de Minecraft. El proyecto sigue los últimos lanzamientos. Consulta su página de lanzamientos en GitHub y su Discord para conocer la compatibilidad con versiones específicas. Las diferentes versiones de la API están dirigidas a distintas versiones de Minecraft.
¿El uso de Architectury API ralentiza mi mod?
No, no debería afectar notablemente al rendimiento. La abstracción ocurre en el momento de la compilación (en su mayor parte) y la sobrecarga en tiempo de ejecución es mínima, ya que Architectury se limita a delegar en la implementación nativa de la plataforma. Cualquier diferencia de rendimiento es insignificante en comparación con el código real de tu mod.

Have a Question or Tip about this Guide?Community Q&A

Ask a question or help other players below. Join the discussion and share your Minecraft tips!

Comentarios

Aún no hay comentarios. ¡Sé el primero en compartir tu opinión!

Utilizamos cookies para mejorar tu experiencia. Al continuar utilizando este sitio, aceptas nuestro uso de cookies. Lee nuestra Política de Privacidad