lunes, 24 de julio de 2017

Vídeo gameplay: Sistema de misiones.

Paralelamente a la programación del sistema de daños del paquete, el cuál ya os mostramos un avance en una entrada anterior, también hemos empezado la programación del sistema de misiones.

De momento la programación de esta parte consiste en crear una estructura interna para poder gestionar la información de cada misión como, por ejemplo, el sistema de puntuaciones que tendrá el juego al finalizar cada partida, la transición entre misiones, el soporte para varios vehículos o el número y tipo de paquetes que se transportarán en cada momento entre otras muchas cosas. 

Además, cada misión podrá estar formada por varias submisiones que podrán consistir en ir a buscar unos paquetes en distintos puntos de recogida, o ir a buscar a un personaje para llevarla a otro sitio, o alguna sorpresilla más que tenemos en mente pero que ya veréis más adelante si finalmente lo podemos hacer :-).

Para toda esta gestión hemos creado un menú dentro de Continue game dónde el jugador podrá seleccionar la última misión si quiere seguir desde la partida anterior, o bien podrá seleccionar otra que ya haya hecho si quiere mejorar su puntuación.

Una primera versión del selector de misiones podría ser lo que se muestra en la siguiente imagen.

Menú del juego: Selector de misiones.


Cada misión tendrá una miniatura de un edificio o una zona destacada de la misma para poder identificarla mejor cuando se quiera repetir en otro momento más adelante. También se verá la puntuación obtenida y una valoración en estrellas del rendimiento de la partida.

Además del selector de misiones y el sistema interno para poder gestionarlas, hemos estado mejorando la interacción con el menú del juego. Ahora cuándo se hace clic en Start game empieza una nueva partida con la primera misión de la historia, y si seleccionamos Continue game nos permite seleccionar una que ya hayamos realizado.

También hemos mejorado el menú de pausa, para poder reiniciar la partida si seleccionamos la opción Restart mission. Con la opción Exit to main menu nos devuelve al menú principal para poder seleccionar otra.

Al inicio de cada encargo hemos añadido de momento una pantalla de presentación con el nombre del mismo. En esta pantalla, o en una posterior, mostraremos su descripción o un diálogo entre personajes para meter al jugador en la partida y saber lo que tiene que hacer. De momento esta parte es solo una prueba porque hasta que no definamos como iniciaremos cada misión no vale la pena perder mucho tiempo en esto.

En el HUD hemos añadido también una cuenta atrás de la partida, ya que el jugador tendrá un tiempo límite para finalizarla.

Os dejamos con un vídeo para mostrar la interacción con el menú. Aún se puede ver algún fallo en la pantalla de presentación de la misión cuando se selecciona por segunda vez. Como veréis, las letras animadas tienen un parpadeo al inicio que esperamos solucionar en próximos días.


En próximas entradas mostraremos ya un nuevo sistema para detectar los daños del paquete. Lo hemos estado probando estos días y va mejor que los otros dos sistemas anteriores que ya probamos, así que parece que vamos por el buen camino.

También mostraremos algún avance más en la parte de la ciudad que estamos montando, a ver si la vamos dejando terminada y nos podemos meter con la fase 3 que sería terminar de darle el detalle que le faltan a algunas calles.

De momento esto es todo, esperamos que os haya gustado y nos vemos en la siguiente entrada :-).

lunes, 17 de julio de 2017

Mapa V: Servicios de la ciudad.

Como ya sabéis, la semana pasada publicamos un gameplay mostrando el sistema de daños del paquete que el jugador transportará durante la partida. Así que esta semana poco podemos mostrar de la ciudad montada en Unreal, ya que hemos estado trabajando con la programación de este sistema.

Por tanto, os traemos unas vistas desde el propio Blender de algunos edificios (polícia, bomberos, hoteles, bancos, etc.) en los que hemos estado trabajando estas últimas semanas. Algunos ya los habréis visto en imágenes de la ciudad que hemos ido publicando, y otros aún no los habíamos mostrado.

De todas maneras, aprovechamos para mostrar también el método que tenemos al hacer modelos. Primero, a base de las referencias que buscamos, modelamos un edificio y lo texturizamos con el atlas de color. Cuando obtenemos el resultado que buscamos, para dar variedad a la ciudad de forma fácil, hacemos copias de los edificios y los cambiamos de color. A veces, si nos da tiempo, hacemos pequeñas variaciones del propio modelo. Y a veces, las dos cosas a la vez.

Como siempre, para muestra un botón:

Hospitales de la ciudad.




Edificios de la policía y bomberos.



Iglesias y ayuntamiento.




A veces es muy complicado hacer distintos edificios sin que se parezcan. A continuación os mostramos en dos imágenes esto que apuntamos. Como veréis, los bancos de la primera imagen y los hoteles de la segunda son muy parecidos.

Edificios de oficinas de los bancos y gasolineras.

Hoteles y supermercados.


Tanto los bancos como los hoteles tienen un estilo sobrio y hacerlos de colores no nos acababa de convencer. Por otra parte, los dos pueden ser edificios enteros. Los bancos para las oficinas y los hoteles para las habitaciones. Aunque hemos querido hacer modelos distintos para los bancos, haciendo de distintos tamaños, es inevitable ver las semejanzas entre los dos.

Aquí jugamos con dos bazas importantes. La primera es que una vez distribuidos por la ciudad con un poco de picardía (no ponerlos juntos, básicamente) es más complicado hacer la comparación. Y la segunda es que siempre podemos crear más variaciones de los edificios para crear más diferencias entre ellos si vemos que con separarlos no es suficiente.

Esperamos que os haya gustado :).

lunes, 10 de julio de 2017

Vídeo gameplay: Sistema de daños.

Esta semana hemos empezado a implementar el sistema de daños del paquete, para que mientras se transporte del punto inicial hasta su destino, los golpes que pueda sufrir dentro del vehículo, a causa de una conducción agresiva, se vea reflejado en una barra de vida.

De momento es todo muy básico, pero la idea es hacer una barra de vida que tendrá el valor de 100% al inicio de la misión, indicando que el paquete está en perfecto estado. A medida que transcurra la misión y el paquete reciba golpes durante el trayecto, esta barra de vida irá bajando, hasta que llegue a 0% y se dé la misión por fallida.

Además de esta variable, también estará la variable del tiempo. Así que el jugador deberá gestionarlo para ir tan rápido como pueda hasta el destino, y a la vez tendrá que conducir con el suficiente cuidado para que el paquete que transporta no reciba daños graves. La variable del tiempo aún está por implementar, aunque la añadiremos en los próximos días.

Para detectar el daño en el paquete que se transporta hemos probado dos formas distintas. 
  • La primera es a través de los golpes del paquete con la carrocería del vehículo. Cuándo el paquete recibe un golpe, se calcula el vector velocidad del vehículo y el vector velocidad del paquete, y su resta nos da un valor aproximado del impacto. Si es lo suficientemente elevado, se detecta como daño del paquete. El problema de este método es que algunas veces nos detecta un impacto elevado cuándo a simple vista no parece que haya impactado  lo suficientemente fuerte o se ha quedado apoyado a un lateral del vehículo.
  • La segunda es a través de las rotaciones del paquete dentro del vehículo. Cuándo se produce una rotación, si ésta es de un valor elevado, se detecta como daño del paquete. El problema de éste es cuándo el paquete se gira y el eje Z, inicialmente vertical, toma una posición horizontal y empieza a detectar daños que no son correctos.
Así que en eso estamos, probando y perfilando la mejor opción para detectar los desperfectos. Seguramente al final la mejor opción será una mezcla entre los dos métodos.

A continuación os mostramos un pequeño vídeo de unas primeras pruebas que hemos hecho para la detección de los daños del paquete. En este caso es con la segunda opción, la detección de daños por rotación.


Esperemos que os haya gustado y nos vemos en la siguiente entrada :-).