Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Zela en Julio 16, 2013, 07:31:37 AM

Título: Que Es Más Eficiente En Imagenes?
Publicado por: Zela en Julio 16, 2013, 07:31:37 AM
Hola Comunidad,

Mi Pregunta Es Referente A Que Es Más Eficiente En El Dibujado En La Room De Los Propios Objetos.

Las Opciones O Puntos Que Pienso Son Las Siguientes:

> Trabajar Con El Evento Draw Por Objeto:
-- El Sprite Mismo Como Recurso
-- En Surfaces

> Otro Objeto Se Preocupe De Hacer Todo El Dibujo:

> Hacer Alguna Jugada De Prioridades En Proceso:

> Usar Algo Alienígeno?

Me Gustaría Leer Sus Experiencias  ;D

Saludos.
Título: Re:Que Es Más Eficiente En Imagenes?
Publicado por: Silver_light en Julio 17, 2013, 05:54:33 AM
Sin lugar a dudas... usar algo alienígeno (? XD Bueno no

Em... personalmente pienso que debería utilizarse de la forma más entendible. Es decir, dejar una buena documentación al costo de eficiencia. Sin embargo, no se si esto último sea tan cierto...
Porque de pronto podrías utilizar un solo objeto para dibujar muchas cosas, como ser barras de vida, de mana, score, corazones. Haciendo que todo quede ordenado, pero por otro lado sería llevar literalmente a que un solo objeto dibuje la mayoría, por no decir todas, de las cosas, como podrían ser los sprites del personaje, barras, enemigos, puntos, sprites de items, sprites de enemigos, etc.

Ahora, no sé a ciencia cierta si es que eso de que un único objeto lleve a cabo todas las acciones de dibujo, conlleve a una mejora significativa de rendimiento. Pero lo que si es seguro, es que será un problema a la larga.

En definitiva, para mí, la primera opción, de trabajar con el evento draw por objeto. Le daría más claridad a la hora de desarrollar y seguramente evite problemas en un futuro.
Título: Re:Que Es Más Eficiente En Imagenes?
Publicado por: Zela en Julio 18, 2013, 06:02:36 AM
Gracias Silver_light Por Su Experiencia, Tendré En Cuenta Ser Ordenado En El Código :)

PD: El Usar Algo Alienígeno Es Lo Que Se Me Ocurrió En El Momento ;D, Pero Apelo A Que La Imaginación De Los Desarrolladores...
Título: Re:Que Es Más Eficiente En Imagenes?
Publicado por: brunoxzx en Julio 20, 2013, 06:59:41 AM
Yo te recomiendo uses el sistema de dibujo por defecto de gm, siempre que puedas usa los sistemas o funciones que gm te de por defecto, al ser nativos son más rápidos (y por lo general más simples y intuitivos).

Sobre las superdicies. Lo unico que tienes que tomar en cuenta, es no usar demaciadas, ya que consumen memoria de video y tener en cuenta que superficies mayores a 1024*1024 pueden no funcionar en equipos viejos.
Título: Re:Que Es Más Eficiente En Imagenes?
Publicado por: Zela en Julio 20, 2013, 11:17:33 PM
Hola Brunoxzx,
Unas Dudillas Que Me Surgieron Al Momento De Leer Su Respuesta...

Sobre Las Superficies:
- Si Usase un único objeto para crear la superficie y el dibujado, A Lo Máximo 640x480 la superficie.
- Creo superficies en cada instancia para el dibujado. A Lo Máximo 50x50 cada superficie

Todo eso en caso que lo necesite, pensando en 100-200 instancias.(No Sé Cuanto Serian Demasiadas)

Sobre Lo Nativo Del GM:
- Son tan rápidas como Código Compilado?

Pienso Que Si Son Nativas Debiesen Ser Así De Rápidas, Pero No Lo He Probado.

En Caso De Saber Cuanto Rendimiento, Me Interesa Un FPS Igual a 30.

Y Gracias Por Su Experiencia  ;D.
Saludos.
Título: Re:Que Es Más Eficiente En Imagenes?
Publicado por: penumbra en Julio 21, 2013, 02:00:43 AM
Usar superficies sólo por reemplazar  el dibujado "normal" de cada instancia, no creo que proporcione beneficios en el rendimiento. Además. las superficies se crean en la memoria de video, eso está bien, pero hay que tener en cuenta que una gran cantidad de usuarios tienen "video integrado", por lo que se va a utilizar la memoria RAM de la PC para crear las superficies

Donde si marcan diferencia las superficies es por ejemplo: Dibujar figuras, líneas o polígonos con las rutinas propias del GM (sin sprites), En lugar de ejecutar las rutinas a cada paso,  se puede dibujar todo una sola vez en una superficie,  y dibujar esa superficie para mostrar la figura, lo que te ahorraría poder de cómputo del CPU

No lo he comprobado, pero en algún lugar leí que si se usan font sprites, el rendimiento mejora si en lugar de dibujar directo la fuente, se dibuja el texto en una superficie.
Título: Re:Que Es Más Eficiente En Imagenes?
Publicado por: brunoxzx en Julio 21, 2013, 10:28:54 AM
Cita de: Zela en Julio 20, 2013, 11:17:33 PM
Hola Brunoxzx,
Unas Dudillas Que Me Surgieron Al Momento De Leer Su Respuesta...

Sobre Las Superficies:
- Si Usase un único objeto para crear la superficie y el dibujado, A Lo Máximo 640x480 la superficie.
- Creo superficies en cada instancia para el dibujado. A Lo Máximo 50x50 cada superficie

Todo eso en caso que lo necesite, pensando en 100-200 instancias.(No Sé Cuanto Serian Demasiadas)
Saludos.
:o y por que haces eso? dibujar algo a una superficie y luego a la pantalla no lo hace más rápido, de donde sacaste esa idea?, quitas todo el rendimiento que gm da por defecto, ademas seguramente dibujas y usas las superficies aun cuando están fuera de la view, eso es simplemente horrible.