Page 1 of 1

Creación de Motor de Plataformas 01

Posted: Thu Feb 10, 2022 11:14 am
by Oniric-Factor
Saludos a todos.

Al final parece que estoy empezando a tener un poco de tiempo y he querido empezar por crear un motor básico para hacer juegos de plataforma.

Mi idea es ir publicando aquí los avances junto con el código pertinente, para que podáis verlo y usarlo, modificarlo, proponer o discutir lo que sea.

Será algo parecido a una memoria, con la diferencia de que todos los presentes pueden participar, ya sea preguntando o aportando.

Re: Creación de Motor de Plataformas 01

Posted: Thu Feb 10, 2022 11:19 am
by Oniric-Factor
Por el momento he visto varios de los ejemplos disponibles aplicando el motor de físicas y he observado que todos adolecen del mismo problema: no controlan cuando el personaje está pisando realmente el suelo.

Lo lógico sería chequear el valor de la velocidad vertical que está aplicando el motor de físicas, siendo cero cuando el objeto se encuentra posado sobre un sólido.

Preguntando a Alberto, me mencionaba de usar la función GetPhysicsVelocity, que devuelve una matriz con los valores de los vectores de velocidad X e Y en los indices 0 y 1 respectivamente.

Por el momento he tratado de utilizarla en VRBASIC de la siguiente manera:

Code: Select all

DIM pvel(2)
....
pvel = _GCALL(sp1, "GetPhysicsVelocity")
_GLCALL(db1,"SetText",pvel(1))
Sin embargo, por el momento siempre me marca cero. Seguramente este aplicando mal el valor de retorno.

Perdonad por lo breve del texto. Conforme vaya avanzando trataré de ir adjuntando también los archivos.

Re: Creación de Motor de Plataformas 01

Posted: Fri Feb 11, 2022 9:54 pm
by droman
Me pillo un sofá, una bolsa de palomitas y me quedo pendiente de cada paso que des.

Por supuesto, en todo cuanto pueda ayudar, dímelo. No soy bueno programando video juegos, no nos vamos a engañar, no lo he hecho en la vida (soy más de backend y frontend).... pero a ganas no me vence nadie :)

Así, para empezar... intentaré usar la función en VRSCRIPT y te comento si saco algo positivo.

Re: Creación de Motor de Plataformas 01

Posted: Sat Feb 12, 2022 5:23 pm
by Oniric-Factor
Problema solucionado. Con la última versión DEVELOPER ya es posible asignar correctamente los valores de la lista a un array de VRBASIC. Por el momento ya vamos teniendo la física básica de un plataformas implementada.

El siguiente paso será aplicar un scroll y hacer diferentes pruebas para determinar cuales son los mejores métodos para implementar los objetos sólidos del nivel.

Por el momento en el código puede verse (inhabilitado) un scroll sencillo, pero el centrado no es el mas adecuado, ya que se basa en las coordenadas del jugador, cuando sería mas preciso anclarlo directamente al propio objeto GLSprite.

Conforme vaya avanzando iré puliendo mas el código. Por el momento esta basado en algunos ejemplos de los que me habíais pasado, que me ha estado viniendo muy bien para ver como iba esto.
Por supuesto, en todo cuanto pueda ayudar, dímelo. No soy bueno programando video juegos, no nos vamos a engañar, no lo he hecho en la vida (soy más de backend y frontend).... pero a ganas no me vence nadie :)
¡Gracias Droman! Por el momento si quieres te lo puedes ir descargando y lo trasteas. Yo os seguiré manteniendo informados.

Re: Creación de Motor de Plataformas 01

Posted: Sun Feb 13, 2022 5:25 pm
by Oniric-Factor
Actualizo el hilo. El motor ya implementa el Scroll y he mejorado un poco las físicas. En los últimos cambios se puede ver como se gestionan los punteros a los objetos entre VRBASIC y las librerias GL.

Re: Creación de Motor de Plataformas 01

Posted: Tue Feb 15, 2022 10:46 am
by efraimsangil
Menudo crack! Veo que te has hecho con el código muy rápido.

Si necesitas cualquier cosa, me dices.

Re: Creación de Motor de Plataformas 01

Posted: Tue Mar 01, 2022 8:39 pm
by Oniric-Factor
Saludos a todos.

Publico una nueva actualización con bastantes avances respecto a la anterior versión.

- Físicas ajustadas.
- Scroll enlazado al jugador
- Sistema de colisiones implementado
- Inmunidad y efectos al recibir impactos

Aun faltan bastantes cosas, como la asignación de todos los sprites conforme a las acciones que se están ejecutando, aunque ya lo tengo mas o menos preparado. También faltan la música, los efectos de sonido... los iré añadiendo a la plantilla/motor en próximas actualizaciones.

Actualmente tenemos un problema y es que parece que la función LINKCAMERA no funciona como debiera, ya que al desplazarse mas de unos 1200pixeles, el foco de la cámara se pierde y deja de seguir al personaje.

Se lo he comentado a Alberto, así que espero que pronto esté solucionado.

Un detalle importante sobre los gráficos que se ven en el ejemplo: NO SON LIBRES. Podéis usarlos para vuestros experimentos, pero por favor, no los incluyáis en ningún juego.

Durante este tiempo también he desarrollado una aplicación para generar los objetos solidos y dañinos del escenario, aunque aún está en fase beta. Mas adelante espero poder liberarla.

¡Seguimos en contacto!

Re: Creación de Motor de Plataformas 01

Posted: Wed Mar 02, 2022 7:09 am
by efraimsangil
He estado echando un ojo al código y veo que usas dos sheets para el movimiento de correr, uno mirando a la derecha y otro a la izquierda. Esto no es necesario si se usa la función: _GLCALL(s2,"SetHFlip",0)

Si cambias la línea 74 por esto, lo tienes resuelto. Usas un sólo sheet para ambos movimientos:

Code: Select all

	if PVEL(1)=0 and XF<>0 then if XF>0 then _GLCALL(sp1, "setanimation","run"):_GLCALL(sp1,"SetHFlip",0) else _GLCALL(sp1, "setanimation","run"):_GLCALL(sp1,"SetHFlip",1) 'Animacion Carrera

Re: Creación de Motor de Plataformas 01

Posted: Thu Mar 03, 2022 7:59 am
by droman
¡¡Joder que gusto!!

Ya era hora que alguien se diese cuenta de que aunque no es obligatorio.... SE PUEDEN USAR ESPACIOS Y SALTOS DE LINEA. Que gustazo da ver las cosas separadas y bien presentadas... Para los que no estamos acostumbrados a escribir de esa manera todopegaosinespacios, se gradece, por que el código es mucho más legible y se puede entender.

Te felicito, no sólo por tu currzado, si no por facilitar las cosas y no "ofuscarlas".

Re: Creación de Motor de Plataformas 01

Posted: Fri Mar 04, 2022 3:50 pm
by Oniric-Factor
Gracias, a mi me da tela de coraje ver un código gorrino XD

Acabo de comprobar que el fallo del LINKCAMERA está corregido y he estado añadiendo un par de cosas. A ver si pronto puedo publicar una nueva versión del motorcillo.