MEIGA
A downloadable tool for Windows
MEIGA es un conjunto de herramientas en Python para convertir archivos AGD de MPAGD en recursos compatibles con el editor Tiled. Permite representar gráficamente la información del juego (pantallas, bloques, sprites, objetos, controles, mensajes y eventos) de forma visual y estructurada.
Los recursos generados incluyen:
- Tilesets para bloques (Blocks.tsx, Blocks.png)
- Tilesets para sprites (Sprites.tsx, Sprites.png)
- Tilesets para objetos (Objects.tsx, Objects.png)
- Fuente (Font.tsx, Font.png)
- Pantallas (SCREENnnn.tmx)
- Configuración global (ENVIROMENT.tmx)
- Paleta Standard ZX, ULA Plus y CPC.
- Mapa del mundo (MAP.world)
- Mensajes (messages.agd) y eventos (*.event)
El proceso también puede revertirse para generar un archivo AGD válido a partir de los recursos modificados en Tiled.
Requisitos para trabajar con MEIGA en Tiled
El archivo MPAGDClass.json define las clases y propiedades que deben usarse en los recursos de Tiled. Se requiere respetar esta estructura para garantizar una conversión correcta.
1. Bloques (Blocks.tsx, Blocks.png)
- Cada tile representa un bloque de 8x8 píxeles.
- Clase del tileset: MPAGD.Block.
- Cada tile debe tener la propiedad Type con uno de los valores reconocidos por MPAGD: PLATFORMBLOCK, WALLBLOCK, LADDERBLOCK, FODDERBLOCK, DEADLYBLOCK, COLLECTABLE, etc.
2. Sprites (Sprites.tsx, Sprites.png)
- Cada tile representa un frame de animación.
- Clase del tileset: MPAGD.Sprite.
- Clase de tile: MPAGD.Image.
- El último frame de cada secuencia debe tener la propiedad Item of FRAMES = Last Frame.
3. Objetos (Objects.tsx, Objects.png)
- Cada tile representa un objeto del juego.
- Clase del tileset: MPAGD.Inventary.
- Objetos colocados en pantallas deben tener clase MPAGD.Object.
- Si el objeto no tiene posición, debe tener en el tileset la propiedad StartRoom = Hidden o StartRoom = Carrying.
4. Pantallas (SCREENnnn.tmx)
- Cada archivo representa una pantalla del juego.
- Clase opcional: MPAGD.Screen.
- Capas requeridas:
- DEFINETILES: capa de fondo.
- SPRITEPOSITION: clase MPAGD.Position. Cada objeto debe tener la propiedad Type (Player, Enemy, etc.).
- DEFINEOBJECT: objetos colocados, clase MPAGD.Object.
- Propiedades del mapa:
- Nombre = ScreenNNN.
- StartRoom = true si es la pantalla inicial.
5. Fuente (Font.tsx, Font.png)
- Cada tile es un carácter de 8x8 píxeles.
- Clase del tileset: MPAGD.Font.
6. Paleta de colores (paleta_rgb_por_atributo.json)
- Archivo JSON con correspondencias entre atributos y colores RGB.
- Se usa para interpretar correctamente los colores de los tiles.
7. Entorno (ENVIROMENT.tmx)
- Define la configuración global del juego.
- Capas:
- DEFINEWINDOW: debe contener un objeto WINDOW con clase MPAGD.Window.
- DEFINECONTROLS: propiedades como UP, LEFT, FIRE 1, clase MPAGD.Controls.
- STARTSCREEN: propiedad Nombre, clase MPAGD.StartScreen.
8. Eventos y mensajes
- Archivos generados: *.event para cada bloque de eventos, y messages.agd para los mensajes.
- No se editan en Tiled directamente.
9. Mapa del mundo (MAP.world)
- Define la disposición espacial de las pantallas.
- No editable desde Tiled. Se genera o interpreta automáticamente.
Edición de recursos en Tiled para exportar a AGD
Para construir un archivo AGD desde Tiled, deben cumplirse los siguientes requisitos:
- Bloques:
- Tileset con clase MPAGD.Block.
- Todos los tiles con propiedad Type.
- Colores válidos según paleta_rgb_por_atributo.json.
- Pantallas (SCREENnnn.tmx):
- Capa DEFINETILES obligatoria.
- Capa SPRITEPOSITION: objetos con clase MPAGD.Position, propiedad Type.
- Objetos:
- Capa DEFINEOBJECT.
- Cada objeto enlazado a un tile del tileset Objects.tsx.
- Si no tiene posición: StartRoom = Hidden o Carrying.
- Fuente:
- Tiles de 8x8.
- Clase del tileset: MPAGD.Font.
- Controles y ventana:
- Objeto WINDOW en grupo DEFINEWINDOW, clase MPAGD.Window.
- Grupo DEFINECONTROLS, propiedades con clase MPAGD.Controls.
- Paleta:
- Utilizar solo colores definidos en el archivo JSON.
- Mapa del mundo:
- Generado a partir del posicionamiento de pantallas.
Comandos de automatización incluidos en MEIGA
NuevoAGD.bat
Inicializa un nuevo proyecto AGD desde una Plantilla Genérica. Define todos los recursos visuales para editar en Tiled.
EstractAGD.bat
Extrae todos los recursos de un proyecto AGD. Crea un proyecto Tiled completo: .tsx, .tmx, .png, .json, .event, .agd.
GeneraAGD.bat
Combina todos los recursos editados en Tiled para generar un archivo GAME.agd compatible con MPAGD.
TestAGD.bat
Compila o ejecuta el archivo GAME.agd generado, mediante herramientas externas o el compilador MPAGD.
Notas importantes
Para que MEIGA pueda reconstruir correctamente el archivo AGD:
- Todos los recursos deben tener su clase correcta asignada (MPAGD.Block, MPAGD.Sprite, MPAGD.Object, etc.).
- Todos los tiles, objetos y capas deben tener las propiedades obligatorias (Type, StartRoom, etc.).
- Todos los colores deben ser válidos según la paleta definida.
Cualquier error de clases o propiedades hará que la reconstrucción AGD falle.
Flujo de trabajo con MEIGA
Convertir un proyecto AGD a Tiled:
- Ejecuta EstractAGD.bat para extraer todos los recursos de un proyecto AGD.
- Edita gráficamente en Tiled respetando clases y propiedades.
- Guarda los cambios.
- Ejecuta GeneraAGD.bat para generar el nuevo GAME.agd.
Crear un proyecto nuevo:
Ejecuta NuevoAGD.bat para generar una plantilla editable.
Instalación
Descomprime MEIGA.rar en el directorio raiz de tu instalación MPAGD. Algunos antivirus no admiten operaciones peligrosas como borrado de archivos por lotes y cosas así, lee atentamente los mensajes de tu antivirus por seguridad; pero no hay nada peligroso en usar MEIGA, además puedes consultar todo su código para tu tranquilidad.
Licencia de uso
Respeta mi autoría. No lo redistribuyas.
Sobre mi
Ramón Fernández Ameijeiras autor del libro PAC-MAN ZX SPECTRUM, disponible en Amazon:
Creador del proyecto MEIGA. Participo activamente en la comunidad de MPAGD, incluido el foro oficial. Mantengo una página con recursos descargables y documentación adicional en:
- Itch.io: ramon-fernandez.itch.io
El sitio incluye un proyecto de ejemplo completamente configurado que puede usarse como referencia para aplicar correctamente todas las clases y propiedades descritas en este documento.
Recursos relacionados:
- Canal de YouTube: Ramón Fernández - Desarrollo retro
- GitHub: github.com/rahamon
- En el foro oficial MPAGD: MPAGD FORUM
Recursos
Créditos y dependencias
MEIGA depende del entorno MPAGD (Multi Platform Arcade Game Designer), desarrollado por Jonathan Cauldwell. Sin MPAGD, Tiled ni Python, no es posible ejecutar el proceso final.
Requisitos:
- Python 3 (intérprete para los scripts)
- Tiled (edición visual)
- MPAGD (formato fuente del proyecto AGD)
Estos elementos permiten manipular datos del juego de forma estructurada y visual para ZX Spectrum o Amstrad CPC.
Updated | 8 hours ago |
Status | Released |
Category | Tool |
Platforms | Windows |
Rating | Rated 5.0 out of 5 stars (4 total ratings) |
Author | Ramon Fernandez |
Tags | Amstrad CPC, Arcade, Game Design, Retro, ZX Spectrum |
Download
Click download now to get access to the following files: