Motor de gravedad

Started by JaViS, October 25, 2007, 10:47:38 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

SplinterGU

A mi tambien me parece que lo ideal es usar alto ya hecho...
Lo de unir no hay problema... eso es simple... pero se necesita todo un analisis y un diseño de que seria cada funcion, etc...
Claro, bueno, todo eso de las propiedades, funciones, etc... es lo que hace falta...
Adelante JaViS, ya que fuiste el culpable de la idea, da el primer paso...

A ver... yo te tiro las primeras preguntas...

- Para que me sirve exactamente el motor? por ejemplo?
- Que hace (o haria/aportaria) exactamente?

- Se necesitan variables extra a las existentes? Cuales?
- De no ser necesarias nuevas, cuales de las existentes estarian involucradas?
- Funciones, que funciones serian...
- Dependerian de algun otro modulo o funcionalidades existentes? (graficas, trigonometicas,...)?
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

syous

 ;) eso mas o menos es trigonometria, geometria, etc, etc
su utilidad inmensa no digo una fisica tipo motor havok  de half life 2
pero si una fisica tipo libreria newton .
que es muy util para simular viento, lluvia,, saltos, etc de forma realista
Un Saludo
EL dia que la humanidad aprenda a mirar y sentir con los ojos del alma, recuperara su humanidad
http://sodonline.net/
http://darknessage.ayudaprogramacion.net/
http://www.ayudaprogramacion.net/

Proyecto: MMORPG
Completado: 2%
Estado: En Desarrollo...

JaViS

QuoteAdelante JaViS, ya que fuiste el culpable de la idea, da el primer paso...
maldicion!! XD

bueno, voy a estudiar la lib en mi casa despues del laburo, a ver que se puede sacar
Working on Anarkade. A couch multiplayer 2D shooter.

Kel

#18
Quote from: syous on October 29, 2007, 03:33:21 PM
su utilidad inmensa no digo una fisica tipo motor havok  de half life 2
pero si una fisica tipo libreria newton .
que es muy util para simular viento, lluvia,, saltos, etc de forma realista

hmm.. solo comentar, que el havok en sí lo unico que lleva es un integrador/simulador numerico, y esto tambien lo lleva el ode o el bullet, por tanto es similar a lo que ya tienes en opensource. 

Pero puedo decir que el Newton en si es la mejor libreria que existe porque respeta las ecuaciones de newton con bastante precision no como otros motores que son meras aproximaciones, segun el autor de la lib newton, el tio intentó hacerlo lo más fiel posible a la física de newton que se ve en los libros y no meras hack-aproximaciones como otros motores. Mucha gente que usa Ode en sus juegos se ha quejado de su inestabilidad.

Ups, edito: se me olvidaba comentar si quereis ver como funciona un motor en condiciones en el blender viene integrado el Bullet, y se puede ver en tiempo real pulsando la tecla P con alguna demo que os bajeis para el game engine de blender.

considero como mejores alternativas a Ode, el newton y el bullet engine.
aunque si alguien esta mas puesto en el tema que me corrija puesto que hace tiempo que no miro el tema de motores :D

syous

 ;Dcierto seria muuuuuuuuuuuuuuuuyyyyyyyyyyyyyyyyy util por lo menos a mi que estoy con los efectos climaticos
Un Saludo
EL dia que la humanidad aprenda a mirar y sentir con los ojos del alma, recuperara su humanidad
http://sodonline.net/
http://darknessage.ayudaprogramacion.net/
http://www.ayudaprogramacion.net/

Proyecto: MMORPG
Completado: 2%
Estado: En Desarrollo...

Kel

nose si servira de algo, pero lo mas conveniente a mi modo de ver sería usar una libreria, Ode y bullet creo que son opensource, Newton no estoy seguro.

En el caso de que algun valiente (y digo valiente porque no es tan sencillo) se atreviera a meterle mano a algo parecido a un pequeño motor de fisica para usarlo en bennu o fenix tendria dos opciones para hacerlo:

1-Usando las formulas de toda la vida de la fisica de instituto, algebra y trigonometria basicamente para hacer un motor con la fisica basica.... Seria algo simplón y habria gravedad, friccion, proyectiles, movimientos con aceleración, muelles simples y oscilaciones simples, impulsos y colisiones elasticas e inelasticas y torques(balances de fuerzas entre objetos como una balanza)... y poco mas(que no es poco).

2-Hacer un sistema de fisica en condiciones como Ode o newton. Aqui ya seria todo calculado numericamente, usando ecuaciones diferenciales y un integrador euler o RK. tendria todo lo anterior y la dinamica seria mas amplia. no es que sea más dificil que lo anterior, simplemente requiere mas tiempo porque es un poco mas avanzado.

solo lo pongo como nota de que hacer algo asi requiere de por lo menos unos pocos de meses y es una tarea titánica. Actualmente estoy estudiando la parte 2 de lo anteriormente escrito y es tan complicado que tengo que usar un programa tipo matlab para algunas soluciones.

Así que lo dicho, lo mejor usar un wrapper o usar una DLL de alguna lib como bullet o Ode... bueno al menos espero que a alguien le haya servido la información, saludos.

SplinterGU

La libreria tiene que ser rapida...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

laghengar

Propongo estudiar a Arquímedes, es el padre de nuestras matemáticas y física, de hecho sus problemas era una mezcla de ambas ciencias. Sus textos no son tan complicados (recordad la antigüedad), yo creo que podeis entenderle perfectamente y llevarlo a la programación.
!!!Blender Blender Blender yuhuuuuuuu¡¡¡ novato o_O

DCelso

Buenas,
veo el tema este muy interesante, pero también bastante complicado para el tema de juegos 2d. ( En 3D, sería complicadillo pero serían básicamente fórmulas ya que es un entorno mas parecido al real)
El motor de gravedad depedería mucho del tipo de juego a implementar.

Por ejemplo:
En un juego de plataformas es simplemente gravedad de atracción terrestre, para saltos y caídas teniendo una línea como referente de tierra firme (osea donde dejaría de caer el objeto).
Para este tipo de juegos necesitariamos definir en los proceso la masa del objeto y luego en el proceso general tanto la aceleración gravitatoria (9,8) como el punto central de atraccion algo como g_x y g_y.
Se tendría que odviar el impacto contra el suelo porque crearía quizas deformaciones en la línea de tierra complicando los mapas de durezas. Aunque si se implementara esto daría mucho realismo a estos tipos de uego :D.

En un juego de beat em up es complicaría un poco porque ya la línea de tierra firme no es tal, en el caso del salto se debería guardar antes de saltar la distancia sobre una línea base del personaje para luego usarla como referente de aterrizaje.

En un juego shot em up, quizás interese la atracción de cuerpos esféricos sobre las naves.

En juegos de carreras, ya no sería tan necesaria pero  quizas interesasen otras aceleraciones como las centrífugas y centrípedas.
 
Creo que también se necesitaría en el proceso principal definir otra variable global como tipo de juego o algo así.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

laghengar

#24
pero si podeis hacer todo eso con unas pocas funciones. De hecho para la gravedad, creo que solo hace falta una estructura y una función.

Qué puñetas, para la gravedad con una asignación aritmética vale, dy+=10; y santas pascuas.
!!!Blender Blender Blender yuhuuuuuuu¡¡¡ novato o_O

SplinterGU

Supongo que no es tan simple como 1 formula, supongo que para hacerlo realista deberia tenerse en cuenta cosas como posicion vertical del objeto, nivel del mar, resistencia del aire, velocidad/orientacion del viento, etc...
Creo que en un buen motor de gravedad, hay muchas variables en juego, todo depende de lo que se quiera hacer, pero un motor de gravedad deberia soportar la mayor cantidad de condiciones posibles, lo bueno de este post seria poder analizar y plantear cuales son esas variables en juego y que funciones o que comportamientos deberia brindar el motor.
No se trata de leer arquimides o platon o pluton o mercurio o venus... :P
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

laghengar

Bueno yo mencioné a Arquímedes porque pensé que la gente estaba pensando en calcular los centros de gravedad, y éste tenía métodos de cálculo sencillos usando la geometría.

Si se quiere hacer un foro de todas esas variables que estais comentando ahí no me voy a meter, nunca he llegado a profundizar tanto. Solo puedo hablar de centro de gravedad, empujes, pares de fuerza, esos datos de presión y no se que del mar, ni idea.
!!!Blender Blender Blender yuhuuuuuuu¡¡¡ novato o_O

SplinterGU

jejeje, con lo del nivel del mar, me refiero a que segun la altura donde uno se encuentra estando en posicion de reposo (altura inicial) la fuerza de gravedad difiere con respecto al nivel del mar...
si bien la mayoria de los casos no requieren algo completo, un motor de gravedad debe ser algo completo...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

l1nk3rn3l

es interesante el tema , hay un motor 2d de fisica por ahi en la red

no recuerdo el nombre pero esta sobre graficos OpenGl


SplinterGU

Si, seria bueno que entre los usuarios se dediquen a diseñar esto, yo realmente dudo que lo haga, pero muchos seguro tienen la necesidad de un motor de gravedad y muchos otros seguramente usaron alguno, con que todos colaboren un poquito podrian hacer un motor "made by Bennu's Users"...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2