-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Toto (C.A) edited this page Aug 1, 2025
·
6 revisions
Systemall es una librería potente y flexible para Game Maker, diseñada para agilizar la creación de videojuegos del género JRPG. Su filosofía central es una estricta separación entre datos y lógica, permitiendo a los desarrolladores y diseñadores construir, modificar y balancear sistemas de juego complejos con máxima eficiencia.
Esta wiki sirve como la documentación completa para entender, utilizar y extender la librería.
Para usar Systemall de manera efectiva, es importante entender sus tres conceptos clave:
- Arquitectura Orientada a Datos: El comportamiento y las propiedades de casi todos los elementos del juego (objetos, enemigos, habilidades, etc.) no se definen en el código, sino en archivos de datos JSON. Esto permite realizar cambios de balance y añadir contenido de forma rápida y segura.
- Plantillas e Instancias: El sistema distingue entre Plantillas (los "moldes" definidos en JSON que se cargan al inicio) e Instancias (los objetos "vivos" que existen en el juego, creados a partir de una plantilla). Esto asegura una gestión de memoria eficiente y una clara separación entre la definición de un objeto y su estado actual en el juego.
- Lógica Basada en Eventos: La comunicación entre los diferentes módulos del sistema (combate, inventario, UI) se realiza a través de un sistema de eventos y un broadcast global. Esto desacopla la lógica, haciendo que el código sea más limpio, modular y fácil de mantener.
La librería está dividida en varios subsistemas interconectados. Cada uno tiene su propia página de documentación detallada:
-
Módulo Core: Contiene los componentes base de la librería, como
MallyMallIterator - Módulo Broadcast y Mensajes: Herramientas de comunicación interna de Systemall.
-
Módulo Components: Contiene los templates de Stats, Slots y States usados por
PartyEntity - Módulo Party: Gestiona todo lo relacionado con las entidades, incluyendo Stats, Slots, States y los PartyGroup.
- Módulo Pocket: Administra los objetos (PocketItem) y los inventarios (PocketBag).
- Módulo Dark: Define la lógica de las habilidades, con Commands (comandos) y Effects (efectos).
- Módulo Wate: Orquesta los encuentros de batalla y el flujo del combate.
- Módulo AI: Permite crear comportamientos de inteligencia artificial modulares y reutilizables.
Para empezar a usar Systemall en tu proyecto, sigue estos pasos:
- Importa la Librería: Añade todos los scripts de Systemall a tu proyecto de Game Maker.
-
Crea tus Archivos de Datos: Organiza tus archivos
.jsonen una carpeta (ej:data) y crea un archivomaster_database.jsonpara listarlos. -
Define tus Funciones de Evento: Crea los scripts GML para los eventos que necesites (ej:
function EVT_Stat_LevelUp_Generic() {}). -
Inicializa el Sistema: En el evento
Createde un objeto controlador persistente, ejecuta:
// Carga todos los datos desde los archivos JSON`
mall_init("data/master_database.json");
- ¡Crea tus Instancias!: Ya puedes empezar a crear los elementos de tu juego:
// Crear una instancia del héroe "JON" a nivel 1
var jon_instance = party_entity_create_instance("JON", 1);
// Iniciar una batalla
wate_start_battle("ENCOUNTER_FOREST_01", player_group);
- Referencia de Eventos de Systemall: Una lista detallada de todos los eventos disponibles, sus parámetros y su contexto de ejecución.
- Ejemplos de Componentes Systemall (JSON): Una guía de referencia rápida con ejemplos para cada tipo de archivo de datos.