Axel_CodeInfinity
Pokémon Eternal Bond
Esta es la primera vez que publico un proyecto que no tiene que ver puramente con sprites (y antes de que me linchen: Calmense que aun sigo trabajando en los iconos estilo 3DS, de hecho los iré usando aquí mismo, así que el arte está asegurado o eso creo, jaja).
Para no hacer largo el asunto, vengo a presentarles Pokedot Expansion (nombre provisional o quizas no). Estoy desarrollando un motor/base para fangames de Pokémon con el estilo visual de la clásica GBA, pero con la comodidad y potencia de un motor moderno como lo es Godot 4.7 y bajo una filosofía Data-Driven Design (inspirada directamente en las estructuras de pokeemerald-expansion).
¿Por qué en Godot y no en Essentials (RPG Maker)?
Si bien Pokémon Essentials es una muy buena opción, tiene una gran limitación: está atado a PC. Aunque existen emuladores para celulares, la experiencia no siempre es fluida ni óptima para dispositivos de gama baja (soy pobre, no me juzguen, xd).
Al usar Godot, el proyecto será nativamente multiplataforma. Correrá perfecto y fluido en PC, Android, Web y lo que le eches en frente, permitiendo que cualquiera pueda jugarlo donde sea.
¿Cómo va el desarrollo actual?
He estado trabajando fuertemente en la arquitectura del núcleo de datos para que sea ultra óptima en memoria (usando IDs indexados en arrays en lugar de dependencias circulares pesadas). Actualmente el esqueleto base está así:
SCANS:
Sistemas ya terminados y funcionales
Sistema de Guardado y Carga de Partidas
- 3 ranuras independientes: nunca se borran automáticamente, solo se sobrescribe la ranura que elijas explícitamente.
- Lógica inteligente: si seleccionas la ranura 2 en el menú y eliges "Partida Nueva", al guardar se usa siempre esa misma ranura, sin confusiones.
- Confirmación antes de sobrescribir archivos existentes.
- Guarda y recupera todo: equipo Pokémon, posición, mapa, progreso, objetos, configuración de audio y velocidad de texto.
- Compatible con guardado rápido en cualquier momento dentro del juego.
Movimiento y Navegación
- Movimiento por cuadrículas estilo GBA clásico, fluido y sin saltos.
- Soporte completo para escaleras, rampas y saltos entre niveles.
- Navegación mejorada en menús: cambia ranuras solo cuando estás en "Continuar", y navega entre opciones en el resto.
Sistema de Mapas y Entorno
- Carga dinámica y transición limpia entre mapas vecinos.
- Sincronización automática de posición y dirección al cargar o guardar.
- Cambio de música y ambiente según el área (interiores/exteriores).
-Sistema de Día y Noche basándose en el reloj del sistema operativo.
Base del Sistema de Combate y Datos
- Serialización completa del equipo: especies, nivel, EVs/IVs, naturaleza, movimientos, estado y apodos.
- Sin pérdida de datos al guardar/cargar.
Detalles técnicos
- Desarrollado en Godot 4.7 con GDScript.
- Arquitectura limpia y modular, fácil de ampliar.
- Optimizado para funcionar igual de bien en PC, Android y otros dispositivos móviles. (O eso intento)
- Sin dependencias externas, todo construido desde cero.
¿Por qué abro este post?
Honestamente, publico esto porque el proyecto es ambicioso y necesito ayuda en el desarrollo. Actualmente tengo las maquetas y los contenedores de datos listos (las "fichas del rompecabezas"), pero falta meterle mano a la lógica pura: conectar los managers globales para que procesen los efectos de los ataques, habilidades e ítems.
Cualquier feedback, duda o si se quieren sumar al proyecto, se agradece mucho xd
Repositorio Público - PokeDot-Expansion
PDST: Ahora mismo solo tengo un mapa, tileset y sprite de jugador custom. Los tiles son de Magiscarft y el sprite del jugador es mío. Principalmente este proyecto iba a ser para mi hack rom Pokémon Eternal Bond, por lo que la GBA no me iba a dar la libertad que requiero para mi proyecto y Essentials no me iba a dar la compatibilidad que quiero. Así que bueno, durante la marcha decidí que podría ser una buena opción para futuros proyectos, ya sean míos o de otras personas.
Para no hacer largo el asunto, vengo a presentarles Pokedot Expansion (nombre provisional o quizas no). Estoy desarrollando un motor/base para fangames de Pokémon con el estilo visual de la clásica GBA, pero con la comodidad y potencia de un motor moderno como lo es Godot 4.7 y bajo una filosofía Data-Driven Design (inspirada directamente en las estructuras de pokeemerald-expansion).
Si bien Pokémon Essentials es una muy buena opción, tiene una gran limitación: está atado a PC. Aunque existen emuladores para celulares, la experiencia no siempre es fluida ni óptima para dispositivos de gama baja (soy pobre, no me juzguen, xd).
Al usar Godot, el proyecto será nativamente multiplataforma. Correrá perfecto y fluido en PC, Android, Web y lo que le eches en frente, permitiendo que cualquiera pueda jugarlo donde sea.
He estado trabajando fuertemente en la arquitectura del núcleo de datos para que sea ultra óptima en memoria (usando IDs indexados en arrays en lugar de dependencias circulares pesadas). Actualmente el esqueleto base está así:
- Resolución Nativa GBA: Configurado el canvas y la ventana con la relación de aspecto y resolución exacta de la Game Boy Advance (240x160), manejando escalados perfectos (Pixel Perfect) para pantallas modernas sin perder la estética retro.
- Sistema de Bordes de Mapa (Anti-Vacío): Implementación de bloques de borde automatizados para los límites del mapa, emulando el comportamiento de la GBA para que la cámara nunca muestre el fondo gris del motor gráfico al llegar a los extremos.
- Sistema de Mapas y Carga por Chunks: El overworld no carga todo el mapa de golpe; está diseñado para segmentar y cargar el escenario por pedazos (chunks) dinámicamente según la posición del jugador, optimizando la RAM en celulares. (al menos esa es la idea xd)
- Movimiento por Celdas (Grid-Based 2D): Movimiento clásico perfectamente sincronizado a la grilla, respetando los tiempos de paso y giros del personaje.
- Estructura Base de Especies y Evoluciones: Contenedores listos para estadísticas, offsets de batalla, ratios de género, grupos huevo y soporte nativo para métodos evolutivos complejos (desde GBA hasta mecánicas de 9na generación como pasos en el overworld o spins).
- Base de Datos de Movimientos y Learnsets: Configurado el mapeo base para categorías de daño, flags mecánicas de combate (como multi_hit o explosion) y aprendizaje por nivel mediante subrecursos para evitar dependencias circulares.
- Sistema de Colisiones basados en tilemaplayer: Como mi jugador no usa funciones que godot usa para las fisicas, he creado un sistema de colisiones en base a una capa que se dibuja por encima de todo, con un script ya preprogramado se detecta si un tile es blocked o no, por ahora solo existe puede pasar y no puede pasar, con el tiempo se ira agregando màs.
- Control de Versiones: El proyecto ya está subido y respaldado formalmente en GitHub.
- 3 ranuras independientes: nunca se borran automáticamente, solo se sobrescribe la ranura que elijas explícitamente.
- Lógica inteligente: si seleccionas la ranura 2 en el menú y eliges "Partida Nueva", al guardar se usa siempre esa misma ranura, sin confusiones.
- Confirmación antes de sobrescribir archivos existentes.
- Guarda y recupera todo: equipo Pokémon, posición, mapa, progreso, objetos, configuración de audio y velocidad de texto.
- Compatible con guardado rápido en cualquier momento dentro del juego.
- Movimiento por cuadrículas estilo GBA clásico, fluido y sin saltos.
- Soporte completo para escaleras, rampas y saltos entre niveles.
- Navegación mejorada en menús: cambia ranuras solo cuando estás en "Continuar", y navega entre opciones en el resto.
- Carga dinámica y transición limpia entre mapas vecinos.
- Sincronización automática de posición y dirección al cargar o guardar.
- Cambio de música y ambiente según el área (interiores/exteriores).
-Sistema de Día y Noche basándose en el reloj del sistema operativo.
- Serialización completa del equipo: especies, nivel, EVs/IVs, naturaleza, movimientos, estado y apodos.
- Sin pérdida de datos al guardar/cargar.
- Desarrollado en Godot 4.7 con GDScript.
- Arquitectura limpia y modular, fácil de ampliar.
- Optimizado para funcionar igual de bien en PC, Android y otros dispositivos móviles. (O eso intento)
- Sin dependencias externas, todo construido desde cero.
Honestamente, publico esto porque el proyecto es ambicioso y necesito ayuda en el desarrollo. Actualmente tengo las maquetas y los contenedores de datos listos (las "fichas del rompecabezas"), pero falta meterle mano a la lógica pura: conectar los managers globales para que procesen los efectos de los ataques, habilidades e ítems.
Cualquier feedback, duda o si se quieren sumar al proyecto, se agradece mucho xd
Repositorio Público - PokeDot-Expansion
PDST: Ahora mismo solo tengo un mapa, tileset y sprite de jugador custom. Los tiles son de Magiscarft y el sprite del jugador es mío. Principalmente este proyecto iba a ser para mi hack rom Pokémon Eternal Bond, por lo que la GBA no me iba a dar la libertad que requiero para mi proyecto y Essentials no me iba a dar la compatibilidad que quiero. Así que bueno, durante la marcha decidí que podría ser una buena opción para futuros proyectos, ya sean míos o de otras personas.
Última edición: