Bennu Game Development

Foros en Español => Proyectos => Topic started by: Windgate on December 08, 2008, 07:26:40 PM

Title: Juego en 2D con MUCHíSIMOS procesos a la vez
Post by: Windgate on December 08, 2008, 07:26:40 PM
Hola amigos, en primer lugar un abrazo a todos, freaks de la programación de videojuegos.

Este puente me he dedicado a experimentar con un juego que incluye un número brutal de procesos en pantalla que colisionan unos con otros, intentando implementar las leyes de la física. Os dejo el link de descarga con código abierto y todo lo necesario para ejecutar:

(http://3.bp.blogspot.com/__SNyA7iqBq0/ST1ik8jcXXI/AAAAAAAAAQY/L4DEGQyufEQ/s400/Colisiones.0.0.png)
DESCARGAR (http://www.mediafire.com/file/wzmjuhv1nzy/Colisiones0.0.zip)

Mi cuestión es que he mirado el uso de CPU y sólo utiliza a fondo el primer núcleo, es un juego que requiere mucha CPU y me gustaría poder sacar partido a la potencia de los procesadores actuales. ¿Hay algo que pueda hacer?
Title: Re: Juego en 2D con MUCHíSIMOS procesos a la vez
Post by: SplinterGU on December 08, 2008, 08:15:50 PM
aun no...
Title: Re: Juego en 2D con MUCHíSIMOS procesos a la vez
Post by: Windgate on December 09, 2008, 06:21:28 AM
Ok, entonces intentaré mejorar un poco la eficiencia, creo que he complicado demasiado el cálculo y se puede mejorar el sistema que resuelve las colisiones. La intención es que NUNCA se solape un objeto con otro, pero es complejo conseguirlo...

La idea es buena, se trata de sacar partido a los monstruos CPU de hoy en día para hacer un juego 2D que sea todo un alarde de procesos en pantalla, mucho más allá de Metal Slug p. ej.

¿Alguna sugerencia o idea al respecto? Será bienvenida xD
Title: Re: Juego en 2D con MUCHíSIMOS procesos a la vez
Post by: Danielo515 on December 11, 2008, 03:00:57 PM
Me encantan los programas de experimentación para ver hasta donde da bennu, yo muchas veces me dedico solo a eso en vez de hacer cosas útiles, soy asín de lerdo.

Voy a probarlo en mi P4
Title: Re: Juego en 2D con MUCHíSIMOS procesos a la vez
Post by: Windgate on December 12, 2008, 12:02:43 AM
He estabilizado considerablemente las colisiones entre procesos.

Ahora es mucho menos probable el solapamiento entre ellos, aunque sigue sin ser una aproximación física perfecta :(

El juego ya tiene un objetivo de matar enemigos que aparecen por los lados, y los enemigos al morir generan una "super nova" de objetos que rebotan entre sí, como en la versión 0.0. Se les puede matar también saltando sobre sus cabezas xD

Descargar Juego (http://www.mediafire.com/file/zmwyad0mtji/VarianteColisiones0.4.zip)

Estoy trabajando en gráficos gore para hacer un juego un poco sangriento... ¿Alguna sugerencia para encontrar vísceras y huesecillos en sprite? Los tengo contados...

MOD: Te edite el post para arreglar el link... Splinter
Title: Re: Juego en 2D con MUCHíSIMOS procesos a la vez
Post by: SplinterGU on December 12, 2008, 12:53:06 AM
cual de todos los archivos en el link es el del ejemplo?
Title: Re: Juego en 2D con MUCHíSIMOS procesos a la vez
Post by: Prg on December 12, 2008, 02:43:03 AM
Es verdad, busqué +sprites +huesos en google y nada, casi no hay. :)
aquí hay uno, no se si lo tengas, es el cráneo del Div2, si miro más te los pongo aquí, provaré tu juego, ya lo descargué. :)
creo que es el último de la segunda página splinter :)

Se me puso muy lento en los primeros segundos :) .
Title: Re: Juego en 2D con MUCHíSIMOS procesos a la vez
Post by: DCelso on December 12, 2008, 07:48:08 AM
toma huesos en formato svg. (Usando inkscape puedes retocarlos a medida ya que son vectoriales)

http://es.wikipedia.org/wiki/Archivo:Wormian_bones.svg

http://en.wikipedia.org/wiki/Image:Human_arm_bones_diagram.svg

http://commons.wikimedia.org/wiki/Image:Human_skull_side_simplified_(bones).svg

http://wapedia.mobi/en/Image:Human_skull_side_simplified_(bones).svg

http://wapedia.mobi/commons/Image:Human_skull_front_simplified_(bones).svg

http://wapedia.mobi/es/Imagen:Human_skeleton_front.svg

http://www.nationmaster.com/encyclopedia/image/Image:Human_arm_bones_diagram.svg
Title: Re: Juego en 2D con MUCHíSIMOS procesos a la vez
Post by: DCelso on December 12, 2008, 07:51:16 AM
y aquí tienes vísceras en el mismo formato

http://es.wikipedia.org/wiki/Wikipedia:Candidatas_a_im%C3%A1genes_destacadas/M%C3%BAsculos_del_Cuello

http://en.wikipedia.org/wiki/Image:Eye-diagram_no_circles_border.svg

http://en.wikipedia.org/wiki/Image:Respiratory_system_complete_en.svg

http://commons.wikimedia.org/wiki/Image:Digestive_system_diagram_en.svg
Title: Re: Juego en 2D con MUCHíSIMOS procesos a la vez
Post by: SplinterGU on December 12, 2008, 09:36:25 AM
muy bien DCelso... 1 karma!
Title: Re: Juego en 2D con MUCHíSIMOS procesos a la vez
Post by: Windgate on December 12, 2008, 11:18:11 AM
Quote from: SplinterGU on December 12, 2008, 12:53:06 AM
cual de todos los archivos en el link es el del ejemplo?

Perdón, puse el link del directorio, el de la actualización es éste:

http://www.mediafire.com/file/zmwyad0mtji/VarianteColisiones0.4.zip (http://www.mediafire.com/file/zmwyad0mtji/VarianteColisiones0.4.zip)
Title: Re: Juego en 2D con MUCHíSIMOS procesos a la vez
Post by: Windgate on December 12, 2008, 11:26:31 AM
Arg, gracias DCelso, he pillado un par de cosillas, pero un juego gore con sprites de enciclopedia de medicina... xDDD

Me refería a sprites tipo Dule Nukem, Doom y cosas así, estoy destripando estos juegos para sacarles lo que necesito, ya lo colgaré como recurso cuando termine de recopilar.

Gracias again!
Title: Re: Juego en 2D con MUCHíSIMOS procesos a la vez
Post by: SplinterGU on December 12, 2008, 11:49:12 AM
ah, bien, es el que baje, gracias
Title: Re: Juego en 2D con MUCHíSIMOS procesos a la vez
Post by: blostec on December 12, 2008, 01:01:44 PM
Juas muy original el proyecto, sigue con el.  :)
Title: Re: Juego en 2D con MUCHíSIMOS procesos a la vez
Post by: SplinterGU on December 12, 2008, 04:29:16 PM
me costo un poquito hacerlo correr en linux...

1) la version que libere de linux tiene el error de los flotantes, asi que no funcionaba correctamente...
2) luego de cambiar los ejecutables corregidos, funciono de primera con el mismo dcb de windows...
3) los paths y los nombres de archivos, deberian ir todos en minusculas, para una correcta portabilidad... ya que los sistema unix son sensibles a mayusculas y minusculas.
4) con un set_fps(0,0) va mejor...
5) para casos como este de muchos procesos te sugiero algun esquema de colision basado en coordenadas, no uses la funcion colision ya que es muy lenta en estos casos... luego incluire un modulo de colisiones mas extenso, con distintos metodos de colision, precision y cacheado de las mismas.
Title: Re: Juego en 2D con MUCHíSIMOS procesos a la vez
Post by: Windgate on December 12, 2008, 09:36:44 PM
Bárbaro lo que me dices SplinterGU, es música para mis oídos, sigo con él y lo tendré en cuenta.
Title: Re: Juego en 2D con MUCHíSIMOS procesos a la vez
Post by: SplinterGU on December 13, 2008, 01:02:56 AM
obviamente que el set_fps 0,0 es para probar... hay que buscar un mejor set_fps, con algun salto, considerable, para evitar que se trabe mucho si no le da el render...
Title: Re: Juego en 2D con MUCHíSIMOS procesos a la vez
Post by: Danielo515 on December 13, 2008, 03:10:37 PM
Tengo lo que me merezco. La gente empieza a hacer los juegos que yo siempre quise acer  :D ¡siempre he querido hacer un juego sangriento! pero sangriento en plan bizarro, que exploten las cabezas o las piernas en función de donde dispares (siempre he disfrutado torturando zombies).

Con respecto a tu prueba, la primera que probé, como que las cosas "rebotaban demasiado" sobre todo para ser de cristal XD. Voy a ver que tal la nueva versión.

Splinter ¿como que es más rápido calcular la distancia de todos los procesos a uno que detectar solo si colisionan? ¿cual es la mejor forma de hacerlo? Un saludo.
Title: Re: Juego en 2D con MUCHíSIMOS procesos a la vez
Post by: SplinterGU on December 13, 2008, 03:53:37 PM
colision trabaja a nivel pixel... calcula la region de los graficos y luego de eso copia la porcion de cada uno de estos graficos rotandolos y escalandolos, y luego chequea ambos mapas para ver si colisionan a nivel pixel por pixel... lo cual es muy lento... pero muy preciso...
si necesitamos velocidad, podemos sacrificar un poco la precision y hacer por metodo de coordenadas, distancia, box, circle, etc...
Title: Re: Juego en 2D con MUCHíSIMOS procesos a la vez
Post by: Windgate on December 14, 2008, 07:16:18 PM
Interesante Splinter, por ahora manejo 11 módulos de código separados, muchos de ellos válidos para otros juegos (carpeta TAD de mi juego). No lo había pensado pero podría hacer otro módulo para las colisiones pixel a pixel y alguna comprobación de durezas, lo pensaré para la próxima vez que me ponga a toquitear el código.
Title: Re: Juego en 2D con MUCHíSIMOS procesos a la vez
Post by: SplinterGU on December 14, 2008, 07:52:19 PM
no, lo que yo dije es que la funcion colision comprueba colision pixel a pixel... nunca dije que vos podrias hacerlas pixel a pixel...
Title: Re: Juego en 2D con MUCHíSIMOS procesos a la vez
Post by: Windgate on January 18, 2009, 06:00:01 PM
Con un mes de retraso... Ok y gracias SplinterGU.

Cuando dices lo de usar circle, ¿Te refieres a realizar la comprobacion de colisiones entre circulos que se encuentran en memoria en las mismas posiciones x,y que cada proceso?

Esa idea ya me parece bastante buena, ¿Y algo mejor?

lol tengo tantos proyectos a medias que no se cuando me pondre con esto... xD