Programación Específica > Allegro
Animacion Suave
[EX3]:
--- Cita de: "L1zb3th" ---hace esto :
usando el tiempo muerto con un timer ....
usando hilos ..
asi animas los dos objetos lentamente al mismo tiempo
en este tema puse como hacer estop de los hilos :
http://foros.solocodigo.com/index.php?showtopic=24793
si aun asi no lo logras adaptar, avisame, que te enseño..
ya que no hay juego bien hecho que no use hilos ...
--- Fin de la cita ---
Los unicos juegos que aprovechan programacion multihilo son en las consolas multiprocesador actuales como la xBox 360 y la recien PS3. Ningun juego comercial para PC o consola monoprocesador implementa multihilo para todas las tareas y raro es el caso que lo usan para la IA, y esto ultimo en juegos muy recientes y que solo funcionan bien aprovechando los procesadores de doble nucleo y similares, los unicos sistemas multiprocesador que veras en PC para el hogar por el momento.
Los juegos se programan estructuradamente y en secuencias de ciclos, donde se puede controlar la coherencia en la actualizacion de los valores de cada objeto o proceso del juego. Implementar un juego todo a base de hilos no solo lo haria inestable y complicado de programar (se nota que no has programado mucho en multihilo) si no que ahogarias al procesador (recuerda que tu juego corre junto a mas programas y procesos del sistema operativo).
La programacion multihilo como ha comentado Juank se usa para operaciones puntuales pero que necesitan cierta prioridad frente al hilo principal del programa. Para lo unico que uso yo multihilo en mis proyectos es para los tiempos de carga donde alojo la carga de archivos en un hilo y la pantalla de carga animada en el principal actualizandose independientemente para que se vea fluida, pero uso un hilo, no 300.
Salu2...
L1zb3th:
el que uds no sepan manejar hilos es otro tema, para algo estan la variables globales como ej..
ademas he corrido hasta 6 hilos sin problemas en una P3 770 Mhz 128 de ram ...
con winxp ...
el doble nucleo y hiperthreading no tienen nada que ver en lo que decia ya que el so reparte el acceso a los recursos, ademas no consumen tanta maquina...
caso que debas pausar uno tenes un Suspend o mediante una variable global haces un Sleep, no es tanto el drama de los hilos....
si uds no lo saben usar, cosa suya, a mi me sirvieron de 10....
y lo secuencial si bien es seguro es mas embrollado para mi ...
yo divido todo en funciones aparte y es mas facil...
por que sino te queda un while mas grande que la mierda y ademas de que es poco viable si alguna funcion es bloqueante ..........
Au Revoir !
JuanK:
LAMENTO DECIRTE QUE ESTAS EQUIVOCAD@.
El problema con los hilos es que solo funcionaran en juegos pequeños y te exigirán mucho mas trabajo en tiempo de codificación y recursos de máquina... nada de eso es bueno.
Los hilos no se usan como tu dices ni en los juegos 2d mas básicos ni en los juegos 3d mas complejos, de que fucionan... puede que si... pero solo en juegos pequeños y realmente la relacion costo beneficio se va a perdidas.
Te recomiendo que te asesores mas acerca de fundamentos de programación de videojuegos para que evites invertir mucho esfuerzo en algo que realmente no vale la pena.
www.vjuegos.org
www.gamedev.net
http://www.gamasutra.com/
www.gamedev.org
JuanK:
--- Cita de: "L1zb3th" ---
ademas he corrido hasta 6 hilos sin problemas en una P3 770 Mhz 128 de ram ...
con winxp ...
el doble nucleo y hiperthreading no tienen nada que ver en lo que decia ya que el so reparte el acceso a los recursos, ademas no consumen tanta maquina...
caso que debas pausar uno tenes un Suspend o mediante una variable global haces un Sleep, no es tanto el drama de los hilos....
--- Fin de la cita ---
Lamento decirte...
pero eres muy ignorante respecto al tema... demasiado ignorante.
Ese conocimiento teorico es basico y estas demostrando que no lo sabes.
--- Citar ---y lo secuencial si bien es seguro es mas embrollado para mi ...
yo divido todo en funciones aparte y es mas facil...
por que sino te queda un while mas grande que la mierda y ademas de que es poco viable si alguna funcion es bloqueante ..........
--- Fin de la cita ---
eso solo es cierto si programas como se hacia hace 20 o 30 años es decir programación secuencial, ya eso no se usa
Se programa estructurado por módulos y sino mil veces y preferible POO...
para dejar de usar secuencial no necesitas hilos, necesitas cambiar de paradigma y pensar diferente.
Deja ya el orgullo y la soberbia y date cuenta que andas en pañales no solo en vgames sino en conceptos de programación y de SO.
[EX3]:
--- Cita de: "L1zb3th" ---el que uds no sepan manejar hilos es otro tema, para algo estan la variables globales como ej..
ademas he corrido hasta 6 hilos sin problemas en una P3 770 Mhz 128 de ram ...
con winxp ...
--- Fin de la cita ---
Genial, yo logre 16 hilos en un programa mediante cronometros de sistema en un Pentium 2 400 mhz y para colmo escrito en Visual Basic 6.0, lenguaje que no se lleva nada bien con la programacion multihilo. Beneficio? Ninguno, mas consumo de procesador y menos control del codigo ejecutado (y en mi caso, peor organizacion de codigo ya que desde VB 6.0 ni si quiera puedo lanzar funciones de clases en hilos paralelos lo que no me permitia la reultilizacion de codigo)
--- Cita de: "L1zb3th" ---el doble nucleo y hiperthreading no tienen nada que ver en lo que decia ya que el so reparte el acceso a los recursos, ademas no consumen tanta maquina...
caso que debas pausar uno tenes un Suspend o mediante una variable global haces un Sleep, no es tanto el drama de los hilos....
--- Fin de la cita ---
Para nada, claro. El drama se resume en que pierdes la eficacia y el beneficio de la ejecucion separada por hilos al hacer las pausas. Al final acabas obteniendo el mismo resultado que ejecutaras un solo hilo pero complicandote la vida y gastando mas procesador. Eso en una consola quizas de igual ya que tienes el/los procesador/es dedicados totalmente al juego y no a centenas de programas en segundo plano.
--- Cita de: "L1zb3th" ---si uds no lo saben usar, cosa suya, a mi me sirvieron de 10....
y lo secuencial si bien es seguro es mas embrollado para mi ...
yo divido todo en funciones aparte y es mas facil...
por que sino te queda un while mas grande que la mierda y ademas de que es poco viable si alguna funcion es bloqueante ..........
--- Fin de la cita ---
Si programaras con clases y objetos no te quedaria un While tan grande como dices. El while principal de mi motor no supera las 3 lineas contando la declaracion del propio bucle ya que solo efectua dos llamadas, una al metodo principal de actualizacion de logica del motor y otra al metodo principal de dibujo. Estas a su vez no llegaran a las 10 lineas ya que solo ejecutan sus respectivas llamadas a los metodos Update() y Draw() en un bucle For/Next por cada familia de objetos (tiles de la escena, entidades y gui). Queda como resultado un codigo jerarquico entre clases que es facil de seguir o trazarlo sin necesidad de ejecutarlo tan si quiera. Dudo mucho que amontonar funciones en hilos separados sea tan claro como esto.
En serio, el unico que esta demostrando no tener mucha idea de programacion multihilo, nula idea sobre la diferencia de consumo en sistemas monoprocesador frente a los multiprocesador, y la falta de organizacion de codigo a la hora de programar me temo que eres tu. Harias bien en leerte unos cuantos libros sobre el tema antes de dartelas de guru frente a los novatos, amigo, por que solo logras confundirles.
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa