Bennu Game Development

Foros en Español => Proyectos => Topic started by: Windgate on October 31, 2009, 04:36:53 PM

Title: Simular el día y la noche en Bennu 3D
Post by: Windgate on October 31, 2009, 04:36:53 PM
Aquí os dejo un ejemplo sobre cómo simular el el día y la noche en Bennu 3D

DESCARGA: http://trinit.es/DescargaDirecta/Bennu3D/Kombat3D%200.0.2.zip (http://trinit.es/DescargaDirecta/Bennu3D/Kombat3D%200.0.2.zip)

Comprobaréis que es un "juego" muy parecido al que he publicado con distintos ejemplos como poner armas a un modelo md2, posicionador 3D, etc. Es que estoy creando utilidades de interés general para Bennu 3D a medida que "intento" hacer un juego decente... Quizás termine basando el tutorial en él.

Me queda pendiente: Hacer que el día/noche vaya en función de la fecha del sistema, añadir tonos rojos en el atardecer... Se admiten sugerencias.

EDIT: Se me olvidaba, el día y la noche dura unos 10 segundos, paciencia y veréis el efecto.
Title: Re: Simular el día y la noche en Bennu 3D
Post by: FreeYourMind on October 31, 2009, 07:39:17 PM
Creo que serias el hombre que me enseñaras de una vez como utilizar Bennu3D, o sea, las ultimas versiones y que no den error de la dll desaparecida ;)
Title: Re: Simular el día y la noche en Bennu 3D
Post by: TRaFuGa on October 31, 2009, 08:01:11 PM
No había probado nada de Bennu3D hasta hoy, excelente trabajo (+++ karma!!!), pinta muy bien esto del 3D para Bennu...
PD-Podrias bajar la camara para acercarla más al personaje y darle más velocidad a su movimiento, se me hace eterno recorrer el escenario xDD
Title: Re: Simular el día y la noche en Bennu 3D
Post by: Windgate on November 01, 2009, 05:04:27 AM
@FreeYourMind: Con este juego puedes ejecutar usando el .bat, usa sus propias DLL así que podría servirte de plantilla para programar cualquier cosa. En cualquier caso, con las DLL del último Bennupack también funciona perfectamente Bennu3D.

@TRaFuGa: Para bajar la cámara puedes usar la ruleta del ratón si mal no recuerdo... Los controles son muy parecidos a World of Warcraft, con clic derecho pretado también puedes girar y con clic izquierdo y derecho a la vez puedes andar xD

Ahora mismo estoy a punto de conseguir que el día y la noche sea en función de la hora del sistema, aunque el problema de obtener la hora y los minutos y finalmente obtener la luz asociada a la hora ha sido más peludo de lo que esperaba.
Title: Re: Simular el día y la noche en Bennu 3D
Post by: Windgate on November 01, 2009, 10:09:40 AM
¡Conseguido! El día y la noche va en función de la fecha del sistema, tanto la iluminación como la niebla oscura que se produce cuando anochece. La precisión y el efecto me ha dejado bastante satisfecho, aquí os dejo una captura:

(http://trinit.es/images/Bennugd/Kombat3D%2001.11.09.png)

Y aquí la descarga de la nueva versión con diversas mejoras.

DESCARGA: http://trinit.es/DescargaDirecta/Bennu3D/Kombat3D%200.1.3.zip (http://trinit.es/DescargaDirecta/Bennu3D/Kombat3D%200.1.3.zip)

Os agradecería si me confirmáis que el efecto de día/noche parece correcto para la hora de vuestros respectivos países. Los cálculos  que he realizado están en /prg/tiempo.prg

Ahora creo que voy a meter lluvia, aunque dudo si hacerlo superponiendo gráficos en 2D, usando pequeños modelos que caen del cielo o con emisores de partículas...
Title: Re: Simular el día y la noche en Bennu 3D
Post by: SplinterGU on November 01, 2009, 10:38:46 AM
buenisimo!
Title: Re: Simular el día y la noche en Bennu 3D
Post by: FreeYourMind on November 01, 2009, 10:58:30 AM
Si ya me fije :)
Una cosa,  sobre el tema de camára, es baseado en el irrlish no ?
Yo  pensaba que internamente trataba el tema de las colisiones con las paredes en la camára, o sea, que al navegar por el mapa, las paredes no se cortarian y dejarian ver otros pasillos o el fondo.
Esto se tiene que programar o el engine tiene funciones para ello ?
Title: Re: Simular el día y la noche en Bennu 3D
Post by: Windgate on November 01, 2009, 01:49:21 PM
Si la cámara es en primera persona es sencillo controlar las colisiones con el escenario para que la cámara no lo atraviese, en cambio si la cámara es en tercera persona es muy complicado, ya que el seguimiento es automático y si añades esa cámara a la lista de colisiones puede quedarse atascada...

Lo cierto es que el tema de la cámara en Bennu 3D no funciona demasiado bien... Quizás se pueda programar alguna solución para detectar si la cámara se quedó atascada y en ese caso volver a invocarla, pero sería complicado conseguir que funcionase bien.

Ahora mismo estaba programando el sol con un emisor de partículas gigante, también se posiciona correctamente en función de la fecha del sistema, os mantendré informados xD

Con la lluvia ha sido imposible, he hecho una gota en 3D pero meter la lluvia de modelos 3D satura la memoria... Habrá que buscar otra solución.
Title: Re: Simular el día y la noche en Bennu 3D
Post by: BoMbErLiNk on November 01, 2009, 03:51:54 PM
Esta interesante, siempre me fascino la campiña del Zelda OOT.

He visto que cambias los 3 componentes del RGB con la misma variable para hacerlo más claro o oscuro.
Has pensado en hacerlo por color independiente ? Para darle un tono anaranjado a la tarde, azul oscuro para la noche (luna llena), violeta al amanecer (con niebla más abundante)

Lo de la hora creo que no me funciona, quizas noto más niebla y el bitmap del fondo más oscuro, pero sigo viendo diferentes tonos de sombra proyectados en el escenario en el mismo angulo, nose si son preprocesados.
Title: Re: Simular el día y la noche en Bennu 3D
Post by: Windgate on November 01, 2009, 05:09:56 PM
Sí, había pensado en aportar tonos como dices, de hecho si saco un momento me pondré a ello.

Siento comunicar que la versión anterior tenía un bug al calcular la hora... Me ha tomado mucho tiempo y no doy con un método apropiado para obtener un tono de luz entre 0 y 255 a partir de la fecha del sistema, de manera que a las 12:00 PM tengamos 255 y a las 0:00 AM tengamos 0 de iluminación, si alguien puede aportar algo...

Aquí dejo la nueva versión con un escuadrón de enemigos para probar el rendimiento, el sol funciona y la iluminación en función de la hora ya debería funcionar sin problema, aunque se puede mejorar.

DESCARGA: http://trinit.es/DescargaDirecta/Bennu3D/Kombat3D%200.1.5.zip (http://trinit.es/DescargaDirecta/Bennu3D/Kombat3D%200.1.5.zip)
Title: Re: Simular el día y la noche en Bennu 3D
Post by: Prg on November 01, 2009, 07:44:35 PM
suena muy bien :) revisando karma ++

a propósito, alguien sabe de las nuevas librerías 3d que serían compiladas para bennu el fin de semana?

edit.. wow, ¿cómo le haces para mover partículas al rededor del arma de uno de tus personajes? (¿cómo obtienes el punto sobre el cuál tienen que girar, y los ángulos para girarlas?)
Title: Re: Simular el día y la noche en Bennu 3D
Post by: Windgate on November 01, 2009, 08:46:40 PM
l1nk3rn3l habló de compilar las nuevas librerías la semana, pero aún no lo ha hecho, yo también estoy canino esperando, todos los días miro el hilo de Bennu 3D deseoso :P

Las partículas no las muevo sobre el arma, los modelos eran así... Con M8E_ADDCHILD se podría hacer un arreglo, pero el ángulo de giro no sería más que una aproximación.

Me alegro que te haya gustado, si tengo alguna duda te preguntaré a tí Prg, por ahora estaba intentando conseguir un mecanismo para acceder fácilmente al identificador de proceso a partir del identificador de modelo... He leído por el foro que tú usas LOCAL, no me parece mala idea por el momento pero sigo investigando...

Una duda: ¿Cómo hiciste para que las barras de energía de tu juego de magia se acortasen?
Title: Re: Simular el día y la noche en Bennu 3D
Post by: Prg on November 01, 2009, 10:19:45 PM
con este método podrás colocar una barra sobre un enemigo y mostrar la sangre que tiene.

[code language="bennu"]m8e_getposmodel(prota,&posl);   //tomas la posicion del modelo enemigo

      posl.y+=altura;        //altura a la que colocaras la barra
      M8E_GETPOS2DFROM3DPOS(posl,miposi);  //en miposi de tipo _pos2d guardas la proyeccion del posl
      
      M8E_GUImove(mibarra, miposi.x,miposi.y);  //imprimes la barra en pantalla sobre el enemigo
      M8E_GUIGETRECT(mibarra, &rect_zon);     //tomas la region del gráfico en una variable de tipo _TRect2D rect_zon;
      rect_zon.LowerRightCorner.x=miposi.x+vc_ener*ener;  //y calculas cuanto vas a mostrar de la barra (posicion x de la   barra)+(energía)*(rango de energía)/(energía_total) donde (rango de energía)=la medida de la barra de energía

      M8E_GUISETRECT(mibarra, &rect_zon);       //ahora aplicas los valores anteriores para mostrar la energía en la barra[/code]
Title: Re: Simular el día y la noche en Bennu 3D
Post by: FreeYourMind on November 02, 2009, 12:19:16 AM
Aprovecho para preguntar por algo que nunca hice, imaginando la respuesta.

Si bennu3d es basicamente utilizar aparte de bennu, los modulos del engine 3d, y todo es por software, se pueden ejecutar juegos de bennu3d en el port para Wiz ??

Tu ejemplo funcionaria en la Wiz ?

Si es afirmativo (que lo dudo) entonces es un pecado que no se haya informado mejor a los mortales :)
Title: Re: Simular el día y la noche en Bennu 3D
Post by: SplinterGU on November 02, 2009, 12:34:40 AM
bennu3d no es software.
Title: Re: Simular el día y la noche en Bennu 3D
Post by: Drumpi on November 02, 2009, 02:06:20 AM
¿No decían en otro hilo que si lo era? o que podía serlo porque las librerías 3d existen sin aceleración HW (irrlitch creo que iba por soft, por ejemplo).
De todas maneras, aun así, dudo que ande en la WIZ (a menos que la aceleración HW haga milagros), al menos lo suficientemente bien como para hacer un juego potable... pero son especulaciones.
Title: Re: Simular el día y la noche en Bennu 3D
Post by: SplinterGU on November 02, 2009, 02:25:45 AM
http://es.wikipedia.org/wiki/Irrlicht

Renderizadores

* Direct3D 8.1
* Direct3D 9.0
* OpenGL 1.5
* Irrlicht Engine software renderer.
* BurningsVideo Software Renderer

pero tengo entendido que bennu3d requiere dx u opengl... de hecho no pude probar esta demo porque me da error al inicializar el opengl...
Title: Re: Simular el día y la noche en Bennu 3D
Post by: Windgate on November 02, 2009, 11:23:04 AM
Hay un render por defecto si usas 0 como parámetro... Imagino que se tomará el Burning y según esa lista es software.

En cualquier caso, como creador de un render "casero" por software ya anticipio que es im-po-si-ble hacer que funcione por software de forma decente, incluso optimizando para no procesar vistas ocultas y aunque eliminase el Gouraud Shading seguiría siendo una basurita... Nada que ver con Bennu 3D, no daría ni para tener un md2 animado en pantalla.

Por cierto he descubierto que lo que más consume con diferencia son las listas de colisiones, si no los añades a las listas de colisiones puedes tener hasta 300 modelos animados con un comportamiento "decente" mientras que si hay colisión no puedes pasar de 20...

Por ahora acabo de meter varias "fases" y he despertado viendo cómo había amanecido y el sol brillaba en lo alto, ha sido muy bello, ahora voy a intentar meter lluvia y nieve con partículas, ya que con otros métodos consume demasiado.

Karma++ Prg por lo de las barras y por ser una persona así de especial :-*
Title: Re: Simular el día y la noche en Bennu 3D
Post by: SplinterGU on November 02, 2009, 12:42:43 PM
cuidado que hay libs por soft que animan modelos md2... pero claro, 1 par de modelos, no puede mover la inmensidad que mueve bennu3d.
Title: Re: Simular el día y la noche en Bennu 3D
Post by: Windgate on November 02, 2009, 02:38:41 PM
Dejo la nueva versión, estoy seguro de que os va a sorprender:

Lluvia, nieve y tormentas, con efectos de sonido incluidos, día y noche, el sol en el cielo, varias fases...

Sólo un detalle, en /prg/global.prg hay una variable llamada num_fase que vale 2, si la ponéis a 1 podéis ver la fase 1, en la fase 2 está la gran nevada mientras que en la fase 1 hay tormenta y lluvia.

También podéis modificar la línea 45 en main.prg y poner fase ( 1 ) o fase ( 2 ) para que se cargue la fase correspondiente.

DESCARGA: http://trinit.es/DescargaDirecta/Bennu3D/Kombat3D/Kombat3D%200.1.7.zip

El próximo paso es que también esté la Luna por la noche y mejoras de eficiencia en la lluvia y la nieve para que sólo nieve en la cámara activa, ya que ahora nieve en un area grande y eso ocupa demasiada memoria. También unos giros aleatorios en el foco de nieve para conseguir el efecto de viento variable :P

Por cierto, estoy pensando en abrir un hilo específico para este proyecto llamado Kombat3D, ya que hay mucho más a parte de simular la día y la noche... Siento haber saturado el foro con hilos basados en el mismo proyecto, pero estaba probando diversas cosas de Bennu 3D y al final a desembocado todo en el mismo proyeto :D

Galería completa de capturas:

(http://trinit.es/images/Bennugd/Kombat3D%2001.11.09.png)
(http://trinit.es/images/Bennugd/Kombat3D%2001.11.09%202.gif)
(http://trinit.es/images/Bennugd/Kombat3D%2001.11.09%203.gif)
(http://trinit.es/images/Bennugd/Kombat3D%2001.11.09%204.gif)
(http://trinit.es/images/Bennugd/Kombat3D%2002.11.09.%20gif)
(http://trinit.es/images/Bennugd/Kombat3D%2002.11.09%202.gif)
(http://trinit.es/images/Bennugd/Kombat3D%2002.11.09%203.gif)
(http://trinit.es/images/Bennugd/Kombat3D%2002.11.09%204.gif)
(http://trinit.es/images/Bennugd/Kombat3D%2002.11.09%205.gif)
(http://trinit.es/images/Bennugd/Kombat3D%2002.11.09%206.gif)
Title: Re: Simular el día y la noche en Bennu 3D
Post by: Prg on November 02, 2009, 04:38:36 PM
wow, se ve genial en las capturas :) ya quiero verlo correr. Descargando y karma++ :)
Title: Re: Simular el día y la noche en Bennu 3D
Post by: Drumpi on November 02, 2009, 06:09:06 PM
Sin palabras me he, yo tambien descargo, aunque aun no esté con Bennu3D, algún día me será de muchísima utilidad.
Y no te preocupes por los temas esparcidos, mejor así: la información específica de cada parte se encuentra antes.