re:juego de lucha

Started by Hola, May 02, 2014, 07:26:38 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Hola

hola como andan, estoy haciendo un juego de lucha y tengo mas experiencia k antes en programacion en esta clase de juegos pero me pasa k los graficos de mi fichero son entre medianos y chicos de los luchadores y pasa k por ejemplo cuando kiero ejecutar 4 ficheros por ejemplo en 2 vs 2 los graficos y la velocidad salen todo bien, pero en algun momento del programa se alentiza un cachito y despues vuelve a la velocidad normal por ahi pokitas veces pasa, keria saber si hay algo k yo pueda poner un programa una sentencia o algo para que por mas k pase mucho tiempo funcione a la misma velocidad, no se si es problema de memoria en el fichero, pero probe grabar grafdicos con otro formato al fichero y ocupan la misma memoria, son como 160 grtaficos por fichero no son tan grandes ni tan chicos los graficos, no kiero reducirlos pork son obligatorios pero kisiera k siempre funcione a la misma velocidad, sea por la computadora el programa o el fichero k sea, si alguien me puede ayudar desde ya le agradezco

laghengar

#1
Pues es que está la función set_fps() que imagino que conoces de sobra. Esa función se encarga precisamente de eso, realizar todas las sentencias que le colocas, y cuando llegue su hora, lo plasma en pantalla, haciendo que cada impresión en pantalla se haga en el mismo tiempo que el anterior. Habría que redactar más para explicarse mejor, pero supongo que ya sabes de qué hablo.
!!!Blender Blender Blender yuhuuuuuuu¡¡¡ novato o_O

Hola

hola laghengar gracias por el mensaje, de hecho no conozco la funcion set_fps();, creo k me exprese mal tengo mas experiencia en los juegos de lucha pero me referia a lo basico, es decir, puedo hacer todo tipo de cosas manejando en vez de lo complejo la parte basica, uso ese metodo k se usaba en un juego de div2, el platafor, no se si viste alguna vez el ejemplo, estoy desarrollando eso y me equivoque muchas veces y he aprendido ya varias cosas,con: pri cuad=, ult cuad=, igual en el metodo no esta el problema ya lo he comprobado, pero volviendo al tema no conozco la funcion set_fps por lo que te comentaba, me la podrias explicar como se usa y si hay algun otro metodo para agilizar como esa funcion el juego?

SplinterGU

set_fps sirve para decirle a bennugd a cuantos fps queres que corra tu programa... recibe 2 parametros, el primero es numero de fps y el segundo cantidad de fps que puede saltar el motor para llegar a los fps deseados (cuando decimos saltar, es no dibujarlos, pero si se ejecutan)
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

laghengar

Para terminar con lo de splinter, añado una recomendación. Para juegos de lucha emplea set_fps ( 60 , 0 ) ;

60 como mínimo o 75 para apurar más. Este tipo de juegos necesita la máxima eficacia de volcado de pantalla, y según los expertos lo mínimo deberían ser 60 frames por segundo. Y de segundo parámetro pones 0, para que no existan tirones.

Colócate en pantalla un write_var(.......fps); para que puedas vigilar  en tiempo real como van los frames. Toma nota de cuando baja mucho de los 60 (si baja a 59 no lo tomes en cuenta), y realiza las tareas oportunas para llegar a 60.

Un saludo, ánimo y suerte.
!!!Blender Blender Blender yuhuuuuuuu¡¡¡ novato o_O

Hola

he leido un poco del set_fps(); hay algun otro metodo para agilizar el juego o ese es el unico?, esto es para saber nada mas, he leido de un lado k no hace falta en el primer parametro mas de 24 imagenes por segundo para un juego, y k punto a punto en cuanto a frame son 18 imagenes por defecto, me podrian dar un ejemplo basico del uso del set_fps?, se podria poner una sola vez para hacerlo mas general en vez de ponerlo en cada atake o proceso o se pone solo una vez?  por ejemplo asi estaria bien?:
ejemplo:
////proceso...
process ...();
begin
loop
if(key(_right));
from graph=21 to 27;
frame(300);
end
break;
end
set_fps(24,4);
frame;
end
end


de esa forma seria la velocidad normal, digo por defecto, k creen ustedes?

laghengar

Así sirve pero es contraproducente. La función set_fps la puedes usar una sola vez y ese valor queda para toda la ejecución. Normalmente se coloca en las primera líneas de código, después de set_mode(). Algo como:
!!!Blender Blender Blender yuhuuuuuuu¡¡¡ novato o_O

SplinterGU

no, no, la funcion set_fps se puede usar tantas veces quieras dentro del juego... lo unico que no debes hacer es usarla en cada frame, porque carece de validez, ya que no tiene estadisticas para calcular el tiempo de delay del siguiente frame.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

laghengar

He visto en tu código el

frame(300);

Ojo con eso :)
!!!Blender Blender Blender yuhuuuuuuu¡¡¡ novato o_O

Hola

gracias ya la entendi, y por ultimo este es el unico metodo para agilizar el juego o hay otros mas complejos y este es el mejorcito?

laghengar

Ahora no se que decirte en eso. Tendrías que ir mirando que funciones usas y cuantas veces las usas. Sería inventar un algoritmo para reducir la cantidad de veces que las utilizas. Que se ralentice una ejecución no solo depende del tamaño de los gráficos, si no de la carga que llevan todas las líneas que le marcas, y de la carga que ya lleva tu pc con otros programas. Todo pasa por ver cuando te falta de verdad emplear una función, y cuando puedes permitirte el cuando no usarla.

Creo que el mejor método para agilizar es usar la menor carga en variables. Declarando las menos posibles y que sean lo más chicas posibles, minimizando la ejecución de la menor cantidad de procesos posibles a la vez, etc, etc, etc...
!!!Blender Blender Blender yuhuuuuuuu¡¡¡ novato o_O

gecko

hay algun proceso o funcion que esta haciendo que el juego ande lento en esos determinados momentos... deberias tratar de identificar cuando es que suceden los ralentizamientos, y tratar de averiguar que es lo que esta haciendo tu programa en esos momentos... y despues intentar hacer eso mismo pero de una forma mas eficiente.

Es una pregunta demasiado demasiado amplia para que la podamos contestar de una forma simple. Cada programa o cada juego es completamente distinto
Torres Baldi Studio
http://torresbaldi.com

Hola

hola, como andan, asi como decian, aunque por ahi alguna vez pasa no me ha pasado todavia con el fps, la velocidad de los procesos en realidad son normales no es k siempre en alguno se realentiza por ahi algunas pocas veces pasa, a veces si a veces no,, pero si es asi, k igual se realentizara con la funcion set_fps, seria un problema de la computadora, un virus o algo asi?, y otra pregunta un programa de 2340 kb, ocupa mas memoria y podria hacer k se realentizara en alguna vez con mas facilidad k uno de por ejemplo 120 kb?, en el sentido de todo lo k esta escrito digo

gecko

Cada programa es distinto, podes tener un programa de 2mb que hace operaciones simples y no se va a poner lento nunca, y podes tener un programa de 10 lineas que hace la misma operacion continuamente hasta que la computadora se congele.

No existen reglas o formulas magicas del tipo "usa x cosa y el programa va a andar mas rapido".
Torres Baldi Studio
http://torresbaldi.com

Hola

ok, oye laghengar dijiste k para juegos de lucha el minimo de set_fps es de (60,0), yo no tengo pero en makinas viejas funciona a la velocidad original ? pork he leido k el segundo parametro en 0 en makinas viejas reduce la velocidad a la de la computadora, no se si sera asi o si uno kisiera poner el juego en cualquier makina en esa por ejemplo, con el 60 funciona de la manera original, vos k pensas de cualquier modo asi va a andar bien en cualquier compu, o sea de manera original?