Creando un juego de batalla en arena online con Unity

Dic 01

Creando un juego de batalla en arena online con Unity

A lo largo de 8 meses he estado desarrollando con los chicos de Jemchicomac (creadores de juegos como Crazy Belts) un videojuego que es una fusión entre un “brawler” como una arena online, cuyo nombre es Bosonauts y al cual te invito a echar una partida.

Es un juego creado con el engine Unity 5, la parte online la hacemos con Photon Cloud para tiempo real y AppWarp para datos en la nube.

Mi parte del desarrollo fué un poco de todo, diseñar elementos de la interfaz de usuario me gustó mucho, pero participé sobre todo en la creación de elementos de gameplay, con un mínimo diseño de niveles y juego, y programación online y de otro tipo de componentes que ayudaban a la edición de los elementos ya mencionados así como a mejorar la inteligencia artificial de los personajes. Otra parte que me gustó mucho hacer fué la programación de animaciones.

Este es un típico personaje de Bosonauts, uno al que le tenemos mucho cariño por aparecer recientemente tras pasar mucho tiempo como boceto.

abuelo_con_gafas

podéis ver que el shader es de tipo brillante, es uno especial que creé para los personajes del juego, ya que tiene una luz trasera o backlight. También creé otro para el cristal de las gafas, las cuales se seleccionan usando una interfaz que programé basándome en una rueda sobre el canvas (puede verse aquí) que se ajusta automáticamente en función del aspect-ratio de la pantalla del dispositivo.

gafasnew

podéis ver la pantalla de selección del personaje, las gafas las coloqué un poco más abajo porque me pareció gracioso, pero a J.Antonio (al jefe) no le gustó mucho la idea pues no son unas gafas para leer 😀

El backend programado por Sergio Escanciano guarda en segundo plano los cambios hechos en el personaje, desde el nombre, al color pasando por el personaje y objeto equipado ,en la nube, usando JSON como formato de datos y sockets y http como medio de transporte ,todo empaquetado, una genialidad, también se encargó de toda la parte de la arquitectura de información de las clases en C#, aprendí mucho de este hombre.

En el siguiente paso vamos a ver la pantalla de selección de nivel,

nuevotut

donde además podéis observar cómo funciona el sistema de tutoriales que programé, al fondo se pueden ver los players/bots que se conectan a la partida, el modo de juego, …

El personaje es una animación prerenderizada por lo que tiene mucha más calidad. De hecho pestañean, animados por la mano de Yeray del Pino, ah!, y la interfaz la diseñó y pintó MCarmen Casado Vila, todo un equipo de cracks! 🙂

playercards

aquí podéis ver con más detalle la pantalla de selección de nivel, escribí un shader para el modelo holográfico y un programa para su animación, así como hice el diseño preliminar y la programación de las tarjetas de cada player, que te permiten añadir a alguien como amigo a tu lista.

Una vez seleccionados el jugador y el tipo de juego junto con el tipo de nivel , y ya con nuestros amigos conectados, a los que podemos invitar por whatsapp, email, facebook, hangsout,etc., etc., entonces pulsamos play y el servidor elegirá qué subnivel del tipo de minijuego empezará, entonces aparecerá una especie de viaje estelar que me llevó casi 2 semanas programar y que combina curvas –

[ver animación]

splines de Bezier para trayectorias aleatorias de cada jugador y cámara, una animación de UV, sistemas de partículas y algunos cálculos geométricos complejos para hacer que todo rodara a la perfección…

[ver animación]

En esta parte ,con todos los jugadores sincronizados pasamos a cargar el nivel del minijuego seleccionado y aparecerá la cuenta atrás, empieza el juego!, unos marcadores de cada jugador en cada color van apareciendo junto con la vida y el número de pepitas que tiene cada uno. El nivel se completa con un sistema de animación que monté para que las pepitas de oro de cada color-un valor, fueran apareciendo con formas en distintos tiempos. Para diseñar el nivel Sergio creó un sistema de tiles o casillas para colocar con su propio sistema de colisiones los tipos de baldosines, que pueden ser pisables, como plataformas o suelo, trampolines como la seta o portales de teletransporte etc., fué genial trabajar con él, conectamos bien a nivel de código, e implementé conjuntamente muchas partes del juego, como en este caso, llegados a un nivel, los elementos de gameplay animados que interactúan con el sistema de edición de un nivel para que el diseñador de niveles pueda hacerlo casi todo desde el propio editor de Unity

old_ingame

En función del juego y el nivel, tendremos que hacer diferentes estrategias para ganar, conseguir el mayor número de pepitas, saltar sobre otros players o mobs, es todo un reto.

Al finalizar hará una transición renderizando sólo al ganador y la palabra Winner, con una interpolación de movimiento a dicho jugador.

Para entrar en detalles más técnicos podéis pasaros por dos de las sesiones de twitch que quedaron grabadas: importando modelos y programando , y , configurando los animators y añadiendo un nuevo personaje al juego

 

Por último ,sólo me queda deciros que A JUGAR!

Artículos relacionados

  • ...

Exprésate dejando un comentario:

Introduce el captcha

Por favor escriba los caracteres de la imagen captcha en el cuadro de entrada