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