Registrarse

[Godot]Pokedot-Expansion (Engine Multiplataforma Estilo GBA) (lo sé, muy original xd)

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í:
  • 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.

🖼SCANS:
Visuallizer_Pokemon.tscn - Pkmn-E-B - Godot Engine 23_06_2026 12_24_42.png
Visuallizer_Pokemon.tscn - Pkmn-E-B - Godot Engine 23_06_2026 12_25_16.png
Visuallizer_Pokemon.tscn - Pkmn-E-B - Godot Engine 23_06_2026 12_26_01.png
Visuallizer_Pokemon.tscn - Pkmn-E-B - Godot Engine 23_06_2026 12_26_32.png
Visuallizer_Pokemon.tscn - Pkmn-E-B - Godot Engine 23_06_2026 12_27_50.png
Visuallizer_Pokemon.tscn - Pkmn-E-B - Godot Engine 23_06_2026 12_28_12.png
Visuallizer_Pokemon.tscn - Pkmn-E-B - Godot Engine 23_06_2026 12_28_38.png
Pkmn-E-B (DEBUG) 23_06_2026 12_31_45.png
Pkmn-E-B (DEBUG) 23_06_2026 12_32_01.png


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

M_Alighieri

Dirigente Total del Imperio Kaktiácero
Miembro del equipo
Redactor/a
Miembro de honor
Se ve increíble, ¿cuánto tiempo llevas trabajando en esto? El nivel de cuidado del pixel es excelente y la optimización por chunks es una medida muy inteligente.
 

Cheve

MoonLover~
Miembro de honor
Hola! Para un proyecto como un "pokémon en godot" te recomiendo que uses pronto los "resources" de Godot, para hacer plantillas de Ataques, Pokemon, habilidades, etc, de esas que hay un montón en este estilo de juegos, así luego no se te hace tedioso y es mas facil agrandar los sistemas.
Hay varios tutoriales de ello en YouTube. Mucha suerte con Godot, es un engine muy noble :)

PD: Sobre los "border tiles" que quieres implementar (Los tiles de los bordes que se repiten) te recomendaría que uses la solución de GameFreak para la DS, mapas cuadrados con árboles, aguas, etc. Sino es probable que se vea una linea negra/gris/fondo por unos frames cuando el jugador se acerque al borde. (Aunque tal vez la nueva versión de Godot haya solucionado ese problema, traté de hacer algo similar y no pude eliminar ese error... Tal vez también haya sido un error mío de programación pero investigué bastante xD)
 

Axel_CodeInfinity

Pokémon Eternal Bond
Hola! Para un proyecto como un "pokémon en godot" te recomiendo que uses pronto los "resources" de Godot, para hacer plantillas de Ataques, Pokemon, habilidades, etc, de esas que hay un montón en este estilo de juegos, así luego no se te hace tedioso y es mas facil agrandar los sistemas.
Hay varios tutoriales de ello en YouTube. Mucha suerte con Godot, es un engine muy noble :)

PD: Sobre los "border tiles" que quieres implementar (Los tiles de los bordes que se repiten) te recomendaría que uses la solución de GameFreak para la DS, mapas cuadrados con árboles, aguas, etc. Sino es probable que se vea una linea negra/gris/fondo por unos frames cuando el jugador se acerque al borde. (Aunque tal vez la nueva versión de Godot haya solucionado ese problema, traté de hacer algo similar y no pude eliminar ese error... Tal vez también haya sido un error mío de programación pero investigué bastante xD)
De hecho, eso ya se hizo, mencioné todo lo que tengo aunque lo he resumido, uso herencias tipo resource y refcounted o algo así era, jaja 🐇
 
Última edición:

Axel_CodeInfinity

Pokémon Eternal Bond
Para no dejar morir el post, estoy documentando internamente todos los scripts lógicos de la manera más fácil que se me ocurre para un mejor manejo de la base, ahora mismo ya debo de haber subido un commit con los scripts actuales que son de lógica ya documentados.

psdt: descansando de rellenar datos para los movimientos pokemon, me puse hacer comportamientos para tiles y esta fue una de las razones por las cuales decidi mejor documentar xd
prado_natal.tscn - Pkmn-E-B - Godot Engine 27_06_2026 19_42_04.png
 

M_Alighieri

Dirigente Total del Imperio Kaktiácero
Miembro del equipo
Redactor/a
Miembro de honor
Una buena documentación de código te ayuda mucho de cara al futuro, ya que tiene tantísimos detalles que no nos acordamos de todo a largo plazo.

Por cierto, el menú se ve sencillo y descriptivo, ¿en qué te basaste para ordenar sus opciones de esa manera?
 

Axel_CodeInfinity

Pokémon Eternal Bond
Una buena documentación de código te ayuda mucho de cara al futuro, ya que tiene tantísimos detalles que no nos acordamos de todo a largo plazo.

Por cierto, el menú se ve sencillo y descriptivo, ¿en qué te basaste para ordenar sus opciones de esa manera?
Estuve mirando gráficos que la misma comunidad hizo y entre tantos, encontré ese que sinceramente me gustó, lo dividi en 6 png de 96x32 (si no me equivoco XD), luego cree una escena en godot, no profundizaré los nodos hijos que use pero básicamente cada opción del start menu son botones separados pero que están unidos por un gridcontainer en una matriz de 2x3 (al chile no me acuerdo como era el orden, si era 2x3 o 3x2 xd), esto hace que sea más fácil la organización y controlar cuál dibujar y cual no, además de que es fácil poder expandir el start menu con más opciones.
 

Axel_CodeInfinity

Pokémon Eternal Bond
Hoy no sabia que hacer en el proyecto (hay mil cosas por hacer pero detallitos XD), asi que me puse hacer el comportamiento para escaleras laterales y arregle un poco más el start menu pos nomas.

pero como no puedo subir el avance porque pesa mucho, les dejo captura de un bug que me paso cuando trataba de poner las escaleras laterales
Pkmn-E-B (DEBUG) 28_06_2026 21_32_09.png

psdt: el proyecto ya tiene icono, lo hice yo y si, lo sé, muy original la pokeball xd

si quieren ver el avance, pueden encontrarlo en este server de discrod mal hecho que hice para el proyecto:
PokeDot-Expansion (server oficial 100% real no fake)
en ese server se notifican las actualizaciones que se suban en el github (lo cual hago casi diario), tambien sirve por si alguien quiere contribuir al proyecto, pues ahi ta.
 

M_Alighieri

Dirigente Total del Imperio Kaktiácero
Miembro del equipo
Redactor/a
Miembro de honor
El avance horizontal por las escaleras se ve bastante complejo, tendrás que tener cuidado con el posicionamiento del minisprite, y dicho sea de paso, ahí podrás ver si tanto aquel, como el tile de escaleras, están bien ajustados verticalmente.
 

Axel_CodeInfinity

Pokémon Eternal Bond
Buenas, estuve los ultimos dias inactivo buscando efectos de sonido para el proyecto y al final me acorde que essentials tenia una carpeta que literalmente decia "Audio", asi que la tome prestada y la puse en mi proyecto, pero godot se puso mañoso con el formato y al final tuve que crear un script de python para arreglar los formatos de los 1745 archivos de un porrazo xd

ya subi commit y en el servidor de discord esta el avance, WaH no me deja subir videos y aunque podria usar una cuenta de yt y subir los videos ahi, pues me da paja xd

PokeDot-Expansion (server oficial 100% real no fake)
Pkmn-E-B (DEBUG) 1_07_2026 23_02_38.png
 

Axel_CodeInfinity

Pokémon Eternal Bond
Epa, buenas banda, durante los ultimos dias hubieron muchos avances, la mayoria fueron minimos como una mejor organizacion en el proyecto y la llegada de un colaborador que ahora mismo me ayuda mucho con el proyecto.

ahora, despues de algunas mejoras, le pregunte a mis webos de si deberiamos agregar de una vez el sistema de dia y noche basandonos en el reloj del sistema operativo y me dijeron simon, asi que nomas porque estaba aburrido, hice el sistema de dia y noche, ahora mismo estoy probando tonos para las horas, tambien es muy facil de ajusta en el codigo para que en el futuro cualquiera pueda ajustar las horas a su gusto o los tonos tambien, por otro lado, estoy pensando quiza agregar una capa de nubes semitransparentes para ambientar y luego un sistema de climas, fuera de esto hay más avances pero eso lo dejare como una sorpresa para un video de demostración, esto es todo por hoy asi que se me cuidan xd
Pkmn-E-B (DEBUG) 4_07_2026 18_16_41.png
Pkmn-E-B (DEBUG) 4_07_2026 18_16_07.png
Pkmn-E-B (DEBUG) 4_07_2026 18_27_00.png
Pkmn-E-B (DEBUG) 4_07_2026 18_25_55.png

PokeDot-Expansion (server oficial 100% real no fake)
 

M_Alighieri

Dirigente Total del Imperio Kaktiácero
Miembro del equipo
Redactor/a
Miembro de honor
Hay algo en lo que me acabo de fijar ahora que he vuelto a ver la captura que has puesto en esta última actualización, y es que los árboles menos anchos parecen en realidad estar formados por los bordes de los más anchos, o al menos de otro que finalmente no utilizaste, lo cual queda un poco raro.

¿Has probado a darles una forma un poco más redonda u otros tiles para ese tipo de árbol?
 

Axel_CodeInfinity

Pokémon Eternal Bond
Hay algo en lo que me acabo de fijar ahora que he vuelto a ver la captura que has puesto en esta última actualización, y es que los árboles menos anchos parecen en realidad estar formados por los bordes de los más anchos, o al menos de otro que finalmente no utilizaste, lo cual queda un poco raro.

¿Has probado a darles una forma un poco más redonda u otros tiles para ese tipo de árbol?
En realidad, no, el árbol no lo hice yo, es un tile de magiscarf, desconozco si lo hizo de esa forma pero si se parece xd

El árbol ancho lo hice yo en base a uno más ancho de magiscarf
 

Axel_CodeInfinity

Pokémon Eternal Bond
El avance de hoy fue simplemente un sistema de guardado con capacidad de 3 ranuras, puede ser expandible, pero para que tantas xd?
1000175910.png
1000175914.png
1000175912.png
1000175913.png


También he pulido un poco el sistema de caja de texto, hice que la caja sea un poco semitransparente, cambie el color de fuente y lo próximo que pienso hacer es un sistema de ramificación, multichoices y soporte multilenguaje, pero eso de traducir, ya ustedes como futuros usuarios de este engine, tendrán que hacer por su cuenta para sus proyectos, por mi parte solo les dejaré el camino fácil, intuitivo y solo para rellenar sus datos.

Próximamente también planeo hacer el sistema de NPCs, sistema de scripts, las interfaces, continuar con los pokemons y mecánicas hasta la 9na gen/ Legends Za.
 

M_Alighieri

Dirigente Total del Imperio Kaktiácero
Miembro del equipo
Redactor/a
Miembro de honor
Pinta muy bien, el sistema de tres ranuras es muy popular, aunque no entiendo bien por qué se eligió ese número.

Por cierto, te diría de poner un poco de margen superior al texto, veo que está descentrado y que el símbolo ✅ está pegado al borde interior de la caja, la fuente en sí es redondita y parece fácil de leer.
 

Axel_CodeInfinity

Pokémon Eternal Bond
Pinta muy bien, el sistema de tres ranuras es muy popular, aunque no entiendo bien por qué se eligió ese número.

Por cierto, te diría de poner un poco de margen superior al texto, veo que está descentrado y que el símbolo ✅ está pegado al borde interior de la caja, la fuente en sí es redondita y parece fácil de leer.
Claro, es una de las cosas que aun tengo por hacer, aunque los símbolos son solo para el test visual.
 
Arriba