martes, 19 de abril de 2011

Colisiones funcionando

Ya funcionan las colisiones de nuestro juego. Tras varias semanas de trabajo hemos conseguido detectarlas y darles un efecto apropiado.
El efecto no es del todo real pero nos sirve para lo que tenemos en mente, ya que no es un videojuego de simulación, sino arcade.
En la carpeta trunk del proyecto está acoplada esta nueva funcionalidad que podréis disfrutar en cuanto arreglemos las diferencias entre el sonido y las colisiones.

Un saludo a todos.

martes, 12 de abril de 2011

Ingeniería del proyecto

Disponéis en la forja del documento con la ingeniería del proyecto que contiene los casos de uso y el modelo de datos de ESI-GT. Directorio.

Algoritmo del game loop

Ya está listo el algoritmo en alto nivel del game loop:




Lo tenéis también en el SVN del proyecto. Además, hemos actualizado el diagrama de Gantt, que podéis consultar aquí.

sábado, 9 de abril de 2011

Documento de requisitos y modelado de mundo

Está listo el documento de diseño donde modelamos el mundo que pretendemos que tenga nuestro videojuego. Esta es la dirección directa por si le queréis echar un vistazo: https://forja.rediris.es/plugins/scmsvn/viewcvs.php/*checkout*/trunk/doc/mundo.pdf?root=esigt&rev=54

miércoles, 6 de abril de 2011

El rugir del motor

¡Hola a todos los seguidores de ESIGT!
Nos entusiasma mucho presentaros la versión alfa del sonido de nuestro primer motor de competición.

La base para generar un sonido continuo de motor ha sido encadenar muestras de sonido generadas con el programa libre SoundStretch (http://www.surina.net/soundtouch/). La generación de las muestras se ha automatizado con un script en bash que será subido en breve a la forja. Las muestras están separadas entre sí por 0,25 semitonos (en breve intentaremos probar con 0,125 semitonos para conseguir un sonido mejor todavía) y son reproducidas (en bucle) por el sistema de audio de gosu con dos canales para minimizar los saltos entre pistas de audio. A falta de encapsular mejor todo, el código contiene ciertos bucles para añadir retardos que en posteriores versiones se sustituirán por timers (como debe ser).

En cuanto al formato, de momento usamos wav ya que el programa para hacer el "pitch" solo acepta este formato pero el formato final será ogg con el que reduciremos notablemente el tamaño de las muestras.

Añadido segundo jugador y archivos XML

¡Buenas noticias!
Hemos añadido un segundo coche, para disfrutar del juego en modo dos jugadores. El Audi A4 se maneja con las clásicas flechas y el Ferrari F360 con w,a,s y d. Para ir probando las opciones de la física, el coche nuevo tiene un poco menos de aceleración pero más movilidad. ¡Anímate a probarlo!



Además, hemos decidido hacer uso de ficheros XML donde guardar las características y la imagen de cada coche. Para ello, hemos usado TinyXML y el Parser creado por David Saltares para su proyecto Granny’s Bloodbath (¡muchas gracias!) que nos ha facilitado mucho la vida.

Como comprobaréis, hemos ajustado las colisiones con el borde de la ventana para que los coches no puedan salir del circuito. Quedan aún pendientes las colisiones entre los coches y la desaceleración que experimentarán en el césped.

Tenemos página web de inicio

Hemos creado una pequeña web para personalizar la página principal de la forja de rediris. En ella se pueden encontrar enlaces al blog, el SVN del proyecto y a la documentación con Doxygen, aparte de los enlaces a los distintos proyectos de este año de la asignatura.
La podéis visitar en: http://esigt.forja.rediris.es

martes, 5 de abril de 2011

Circuito modificado para facilitar las colisiones

Con el objetivo de facilitar la implementación de las colisiones del coche con los bordes de la carretera, se ha convertido la imagen del circuito a una binaria en la que se distinga de forma inequívoca la carretera de lo que no lo es. Para ello, hemos creado una función en matlab para que se pueda hacer automáticamente con el resto de los circuitos. Para que funcione de forma adecuada, la carretera debe ser igual o más oscura que en el circuito de prueba, y el resto de circuito más claro que ésta.

Éste es el circuito de prueba:



Y este el resultado obtenido tras aplicarle la función:



Tenéis la función en la forja del proyecto, concretamente aquí, donde podréis mirar el código que está documentado.