map_get_pixel, alternativas.

Discusión en general sobre Gemix.

Qu

Postby erkosone » Wed Dec 05, 2012 9:20 pm

En mi opinión lo que comentas kozka sobre los .ani no lo veo bien.. es algo que yo creo que raletiza el desarrollo de un juego, el tener que andar con el programa para animar.. uff.. se hace mas rápido a mano con 2 lineas de código.


Sobre lo de cambiar el tema de los estupendos map_get_pixel y tal.. haber.. esto es algo que seguramente tiene una solución mas simple de lo que parece, según comenta gino la idea es modificar practicamente todo el core para adaptarlo a este nuevo sistema, pero.. este sistema en si es bastante valioso y muy practico para seguir haciendo cosas concretas y que en un momento dado no se hasta que punto podríamos echarlo en falta..

Yo propongo otro punto de vista:

- Los archivos .map y .fpg que sigan siendo identicos a como lo son ahora, osea, mapas con algo de info extra "los .map" y librerías de este tipo de gráficos "los .fpg", y el plato gordo del nuevo sistema yo me lo imagíno de esta manera:

El motor box2D es bueno, es actualizado y mantenido así que lo veo una buena opción para considerarlo como un posible candidato ya en firme.

El tema es el siguiente:
Si se parte de la base en que se va a usar esta librería "que de una forma bastante sencilla lo hace todo sola con muy pocas lineas de configuración" yo veo el problema como algo bastante simple.. solo hay que incluir en el propio core de gemix un desvío a una subrutina que se encarge de modificar las variables X Y ANGLE de los procesos, nada mas.

Osea.. si estoy en lo cierto el core de gemix mira por prioridad a los procesos y los ejecuta en serie uno detrás de otro hasta el ultimo, vale.. pues simplemente hay que añadir a cada proceso unas pocas variables locales que definan el tipo de colisión que se desea, la masa de ese proceso, y poco mas.. por que box2d creo que ya tiene algún sistema para converitr a polígono una imágen, y en el fondo de todo este asunto, un proceso no deja de ser mas que una imagen o Sprite el cual manipulamos con unas pocas variables locales..

Osea resumiendo, si tengo un proceso que se llama "pepe" y escribo esto en su código:
process pepe();
begin
physics.status = true;
physics.collisionType = type_circle;

ya no necesito nada mas.. en realidad con esto basta para que la bos2d haga todo, simplemente hay que desde el core mirar si el proceso que toca ejecutar en ese momento tiene su "physics.status" en true, si es así se le dice a la librería que haga lo que tiene que hacer.. que es manejar al objeto.. como lo hace? simple, si he creado 100 process y los 100 tienen su STATUS en true.. pues pasan a ser objetos controlados por a box2D, si no pues la box2D los ignora y punto.

El único punto fuerte de todo esto es solo uno, el sistema que se va a usar para convertir una imagen en algo que la box2D entienda como un polígono o circulo, todo lo demás está tirado en serio, no es nada complicado pues la lib lo hace todo sola..

También hay otro punto fuerte que hay que mirar de solucionarlo de la mejor forma posible y que sea fácil, es el tema de "la escena" o el escenario.. hay una forma muy sencilla que es la que yo uso en el mini motor que hice, y es simplemente que GINO que se lo curra un montón con los programas para Escritorio jeje... pues que GINO se proponga modificar el map editor, si, ese programa que casi no se usa, pues para esto va a venir que te cagas.. por que se le añade un menú mas para tirar lineas por el map y guardar esta info en los propios CPOINT del map y ya tienes un escenario vectorizado, esto hay que hacerlo a mano siempre en cualquier lenguaje.. así que no hay llantos que valgan.. esto es así, yo creo que si os ponéis a montar una modificación del map editor para poder trazar lineas y vectorizar lo que serán las nuevas "durezas" ya está todo listo para dar el primer paso.

Que os parece esta idea?

En realidad todo debería reducirse a integrar unas pocas variables mas a modo LOCAL en los process, y simplemente delegar todo el enjambre de matemáticas a la box2D que para eso está.

Que el termino FPS es un poco contrario al tema que hablamos.. pues si, y que? si en realidad es tan sencillo como tener esto como un IMPERATIVO antes de hacer nada:

La box2D ha de correr en un thread a parte, nunca debe pretender sincronizarse con los procesos y el framerate.. esto es un completo error muy grave, la cosa no funciona así.
La librería de física debe correr en un thread independiente para poder desarrollar su delta_time correctamente, que supone esto para el core de gemix? simple..

Yo creo que una buena secuencia a seguir sería esta:
1º El core se encarga de hacer todo EXACTAMENTE IGUAL QUE COMO LO HACE AHORA.
2º La box2D corre de forma independiente al core, la única forma de que desde un process el programador pueda manipular los datos de un process con este nuevo sistema es mediante un set de funciones SETTERS como estas:
// para mover a los process:
phisics_add_vx( float velocity );
physics_add_vy( float velocity );
physics_add_velocity( float velocity, float angle );

Y poco mas...

Entonces que pasa.. que el programador solo podrá "FPS" veces por segundo manipular los datos internos de la box2D sobre ese objeto, vale.. y que? esto es como lo hacemos ahora.. Gemix no tiene ni Div tenía TimeSteep.. esto es cosa de la lib de física que tiene que correr a su rollo de forma independiente.


Vamos.. yo creo que esto sería empezar con buen pié sin desmontar nada de lo que hay ahora mismo ;)
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: map_get_pixel, alternativas.

Postby GINO » Wed Dec 05, 2012 10:15 pm

A mi lo que me parece es que todo lo que propones, más bien cómo lo propones, forma parte de las chapuzas que yo pretendo evitar. Es fácil decirlo, como en el tema del modo7, pero hacerlo es aparte. El tema es que si quieres meter información geométrica en el map lo mejor es aparte de los puntos porque cada cosa es para lo suyo, aparte que los puntos tienen limitaciones. Si se mete aparte lo mejor es hacer un formato nuevo que trabaje por chuncks, esto permite añadir más cosas en el futuro si se quiere, garantizando incluso retrocompatibilidad. Cuando este el sistema de empaquetado dirás, ¿no era mejor hacer el formato map directamente en un zip? Incluso podrías quitar cosas y añadirlas manualmente (Cada vez más se está adoptando este sistema para "archivos" que constan de varias partes diferenciadas). Si se sigue esta linea que acabo de decir, probablemente hay que trabajar bastante más de la cuenta a lo tonto, porque cada vez hay que reescribir cosas. Si la geometría se pone aparte las posibilidades son infinitas mientras que si se pone en los puntos de control (perdóname erkos pero es que es una verdadera chapuza) es muy limitado aparte que quita funcionalidad a otras cosas. Lo de las variables locales etc. para las físicas también es muy fácil decirlo pero realmente... quieres que el motor compruebe eso a casa frame? para todos los procesos? Tu que ya has hablado de que hay que separar la parte gráfica de los procesos, me extraña que quieras que eso se ponga así.
El tema de map_get_pixel no es que esté mal pero es lo que es, siempre vas a tener esa función y vas a poder usarla.
User avatar
GINO
 
Posts: 2823
Joined: Thu Jul 31, 2008 10:25 pm

Re: map_get_pixel, alternativas.

Postby erkosone » Thu Dec 06, 2012 9:37 am

Para eso está el foro GINO, para plantear ideas y debatirlas, me gusta que alguien que sabe lo que dice rebata mi opinión por esto mismo, por que yo aprendo y tu reflexionas jeje.

Pues por lo que veo esto está muy ligado a lo que se habló hace poco sobre los handles y la carga de recursos, quizá tener el sistema de carga desde un handle abierto a cualquier medio sería un primer paso.
Luego ya el diseño de todo esto..

Mola.
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: map_get_pixel, alternativas.

Postby kozka » Thu Dec 06, 2012 12:19 pm

yo lo unico que veo gino , que cada formato nuevo requerirá de un software para poder editarlo, y cuantas mas cosas mas complejo el programa. y antes de hacer nada lo tengais claro como el agua,
User avatar
kozka
 
Posts: 2111
Joined: Sun Feb 01, 2009 9:36 pm

Re: map_get_pixel, alternativas.

Postby kozka » Thu Dec 06, 2012 1:32 pm

OTRA cosa.

como esta el tema de animaciones en gemix es por graficos completos. vamos tu haces 10 graficos y el intervalo es la animacion. quizas se puede hacer en plan marioneta pero es complejo.

lo que hace que para las animaciones se tenga que poner 1 grafico por cada frame, hace que los graficos pesen muchisimo.pero mucho mucho
***y otra cosa el fpg editor es una mierda. si pretendes meter una animacio de 80 graficos te puedes morir para poner el numero de grafico y ni te digo si quieres ponerle puntos de contro

por eso comente lo de meter texturas ,"parece que con open gl se pueden crear funciones muy rapidas para esto". pero claro hace falta un archivo que guarda las proporciones geometricas del grafico.
con eso puedes hacer juegos con animaciones"normales" y con graficos texturizados. otra forma de meter los graficos texturizados y guardarlos en un archivo seria qeu en vez un archivo vectorizado. se meta un grafico normal pero que en el editor grafico del futuro puedas determinar que textura tiene , en el editor verias las texturas. pero realmente solo guardaria por ejemplo:
6 colores que harian referencia a las texturas, y luego al cargar el recurso este te lo trasformara en el grafico con las texturas al inicio de gemix o ejecutandose en live.

entonces podrian existir 4 tipos de graficos
1 . grafico normal
2 . grafico con texturas (por ejemplo si se usan 10 texturas , guardara 10 colores que harian referencia a las texturas) pesaria menos
3 . grafico vectorizado ,en el que es posible determinar que cada contorno cerrado tenga una textura referenciada. pesaria muchisimo menos pero algo mas complejo de manejar y hacer el software y eso
4 . grafico solo vectorial , podria valer para usar sus puntos de control y poner graficos normales,tipo marioneta. aparte de usarse para fisicas.
User avatar
kozka
 
Posts: 2111
Joined: Sun Feb 01, 2009 9:36 pm

Re: map_get_pixel, alternativas.

Postby shao » Thu Dec 06, 2012 1:50 pm

Kozka con las funciones actuales de Gemix puedes hacer un pequeño programa que te meta los graficos al fpg, yo publiqué uno en recursos y es el que uso y puedes indicarle un punto de control, si lo editas podrás ponerle más, esto no quita que el fpg editor actual este falto de funciones pero mientras tanto el programilla puede ayudar a no tener que estar metiendo gráfico a gráfico.
User avatar
shao
 
Posts: 6034
Joined: Wed Jun 17, 2009 4:51 pm

Re: map_get_pixel, alternativas.

Postby kozka » Thu Dec 06, 2012 2:29 pm

voy a ver gracias
User avatar
kozka
 
Posts: 2111
Joined: Sun Feb 01, 2009 9:36 pm

Re: map_get_pixel, alternativas.

Postby erkosone » Thu Dec 06, 2012 2:43 pm

Si, es bastante malillo, yo me quedo ciego y exausto cuando quiero montar un archivo fpg con tropocientos gráficos.. al final me descuento y tengo que hacerlo 3 o 4 veces.
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: map_get_pixel, alternativas.

Postby kozka » Thu Dec 06, 2012 2:43 pm

xDDD eso me a pasado a mi mas de una vez , es una putadaaaa XD :lol: :lol:
User avatar
kozka
 
Posts: 2111
Joined: Sun Feb 01, 2009 9:36 pm

Previous

Return to General

Who is online

Users browsing this forum: No registered users and 8 guests