jueves, 12 de mayo de 2011

¡Ya tenemos HUD!


Os presentamos el HUD del videojuego que aparecerá en la parte inferior de la pantalla. En él tenemos un contador de vueltas y un medidor de velocidad (ambos recuadros reutilizados del taller de Gosu impartido por José Tomás Tocino a través de la ADVUCA). Además el cuadrado azul que vemos se convertirá en la foto del piloto y en la parte superior de cada bandera aparecerán sus nombres.

¿A qué esperáis para probarlo?

¡Rozamiento funcionando!

El rozamiento ya está funcionando en el videojuego. Si te sales de la trazada del circuito, la velocidad máxima de tu coche se verá decrementada considerablemente.

Para lograrlo, hemos utilizado el sistema de colisiones a nivel de píxel. Partimos de dos imágenes, la del circuito original y la del circuito dividido por zonas de rozamiento. Ésta última la cargamos como imagen y con las funciones getData() y toBipmap() la convertimos en un Bitmap. Tomamos los puntos de referencia de la caja de colisiones del coche y obtenemos el color de ellos en el Bitmap. Luego, dependiendo de los colores que obtengamos, el resultado será uno u otro.

¡Anímate a probarlo!

miércoles, 11 de mayo de 2011

Pruebas para el rozamiento con los bordes

Ya está en marcha la implementación del rozamiento que afectará al coche cuando se salga de la carretera. Se usará el programa tiled para crear los circuitos y un mapa de colisiones. Así, podremos detectar dónde está el coche y aplicarle la colisión adecuada. Este es un ejemplo de las imágenes para crear los circuitos y el mapa de colisiones:


















Así, en los píxeles verdes el coche podrá alcanzar su velocidad máxima y en los amarillos sufrirá el rozamiento con la tierra, el césped o los límites del circuito. Faltan las imágenes con las vallas que serán de color rojo, y son los objetos que el coche no podrá atravesar.

Avisamos también de que hemos actualizado el diagrama de Gantt, que recordamos pueden consultar aquí.

martes, 10 de mayo de 2011

Referencias bibliográficas

Aquí os mostramos algunas de las referencias bibliográficas que hemos usado:

WIKI SDL -> Usada para ver ejemplos sobre programación de videojuegos y poder trasladarlos a libGOSU.

Referencia libGOSU -> Usada como referencia de los prototipos y funcionamiento de las funciones de libGOSU.

Manual de SoundStretch ->Manual para usar la utilidad para generar las muestras de sonido del motor.

Solución de problemas

En esta entrada os vamos a contar los principales problemas que hemos encontrado y la solución por la que se ha optado:

1- IA: implementar la inteligencia artificial en uno de los problemas más grandes a implementar en un videojuego. La solución por la que se ha optado es hacer pasar a los vehículos por unos checkpoints situados en las curvas. Detectamos la colisión del vehículo con el checkpoint y hacemos que gire un ángulo previamente establecido en el checkpoint y una vez haya terminado que alinee con la siguiente recta.

2- Sonido del motor: Puesto que el sonido del motor debe ser continuo y no teníamos ninguna herramienta en gosu para hacer pitch (cambio de tono), lo hicimos con las muestras de sonido ya generadas. La implementación se basa en recorrer un vector de muestras de sonido alternando entre dos canales de sonido para conseguir que no se noten los saltos entre pistas. En principio se iban a implementar dos marchas pero al final hemos decido que no va a haber cambios de marcha puesto que complica en exceso la gestión del sonido cuando hay colisiones.

¿Qué hacemos?

Debido a la falta de tiempo de los componentes del grupo comunicamos algunos cambios en la idea inicial del proyecto:
-No vamos a poder implantar un sistema de puntos para desbloquear circuitos.
-No habrá daño en los coches al chocarse.
Nuestra intención era completar el proyecto pero estamos viendo que la implementación de la inteligencia artificial y su combinación con las colisiones nos va a tomar más tiempo del previsto. Por tanto renunciamos, en principio, a implementar estas dos funcionalidades.

No obstante, aun debemos debatir internamente en el grupo sobre que es más adecuado: Añadir estas funcionalidades con menos circuitos o tener más circuitos sin estas funcionalidades.

¿Qué opináis vosotros acerca de ésto?

sábado, 7 de mayo de 2011

Autómata IA


Aquí os presentamos el comportamiento que van a tener los coches de esigt.

El autómata se basa en los checkpoints que habrá repartidos por todas las curvas del circuito. En base a parámetros que contiene el checkpoint como el ángulo de giro, velocidad de la curva y ángulo de salida vamos pasando por todos los estados del autómata.

Por si os interesa, aquí tenéis un pequeño tutorial para dibujarlos fácilmente usando el lenguaje DOT del paquete graphviz.

El código fuente lo tenéis en trunk/doc/AutomataIA.




Doxygen

Hemos subido a la forja en /trunk/src/Doxygen documentación, tanto en HTML como en LaTeX, de algunas clases del proyecto.

Saludos.

viernes, 6 de mayo de 2011

Disponibles las estadísticas de la forja

Os dejo un enlace a un tar.gz que contiene las estadísticas de los desarrolladores del proyecto:

Pulsa aquí para descargar las estadísticas

Tenemos LOGO!!!!!!

Cortesía de Eduardo Fierro. Os dejo un enlace a su web http://eduardofierro.es/ Agradecemos a Edu esta ayuda gratuita que nos ha prestado haciéndonos este logotipo.