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:
¿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.
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.