Kokomaru Development
Toy wars

Tipo de proyeceto: Videojuego

Descripcion del proyecto:

Este es un juego de tanques multijugador que consta de un arena en la cual 4 jugadores son colocados y puestos aprueba el uno contra el otro, por lo que tienen que recoger las armas que tengan a disposicion y empezar la destruccion del resto.

Fotos del proyecto:

-Menu principal
-UI en el gameplay
-Creditos
-Gameplay
-Jugador
-Multijugador
-Envio de informacion

Proceso de desarrollo:

El juego se desarrollo con la metodologia de SCRUM, por lo que emepzamos diviendo las tareas en splits semanales en los que cada uno de los integrantes iba a dar un minimo de 8 horas de trabajo diarias al proyecto, lo colocamos todo dentro de un cronograma donde primero que nada discutimos, las tareas iniciales y finales para llevar un orden de todo y tratar que tenga el mejor flujo.

Fue un proceso de 15 sprints (15 semanas), en los que se estuvo trabajando con un grupo de 3 personas al comienzo, pero que a mediados del proyecto se cambio a 2 personas, por lo que se tuvo que reajustar muchas tareas y horas.
-Cronograma
Al tener esta situacion de que un miembro del equipo se tuviera que ir del proyecto, se tomo la decision de recubrir sus horas, siendo que ahora se estaria trabajando de 8 a 16 horas por semana para compenzar la falta del miembro, esto con el objetivo de no realentizar el desarrollo de todos los features que buscabamos.

Pero hubo otros problemas que afectaron nuestro tiempo y eficiencia en ciertos sprints, lo que genero que en algunos sprints hubiera tareas que se recorrian al siguiente o que de plano se replantaban si se arreglaban o se removian, esto debido a la limitante de la entrega final del proyecto.
-Sprint del proyecto completado con exito
Mas sin embargo, dejando de lado una que otra semana dificil, el desarrollo fue fluido en su mayor parte, siendo que si se tuvo una version jugable que puede ser utilizada y que tiene almenos el 85% de los feautres que teniamos planeados inicialmente, siendo los que no pudimos incluir los de:

-Eventos de la arena durante la partida
-Almenos 8 personajes desbloqueables
-Diferentes mapas con variedad de estilos
-Skins para los personajes desbloqueables
-Props explosivos esparcidos en el mapa

Con lo que con esto concluyo esta seccion y pasare a hablar de detalles mas tecnicos del proyecto que fueron desarrollados por mi parte, asi como los problemas que tuve y como los solucione.

Mi parte en el proyecto:


-Layout tomado del GDD de toywars
Mis primeras tareas fueron relacioandas con el diseno del nivel, esto basandonos en el GDD que ya habiamos creado previamente, por lo que empeze haciendo eso, creando un canvas con figuras primitivas que utilizaban el layout ya descrito, asi como el spawn de objetos y jugadores.

Esto fue relativamente lo mas sencillo de todo el proceso, ya que no tomo mucho tiempo y las demas tareas que tenia eran tambien relativamente sencillas, entre ellas era reducir la carga de poligonos que tenian los vehiculos, para darle un rendimineto mas grande al juego, que por cierto era para celular.

El problema era sencillo, por lo que no tuve ningun problema con esto, hubo uno que otro detalle que recibi de retroalimentacion, que termine implementando, pero pues nmo fue mucha cosa relevante, durante las primeras semansa estuve haciendo tareas con las que no me sentia totalemnte desafiado a un niveel que no hubiera tenido antes
Para las siguientes semanas, ya comenzamos a trabajar con lo escencial del juego, osea el multijugador, pero habia debido a la poca experiencia que teniamos todos usando esta herramienta (Photon), por lo que aqui es donde comenzaron los problemas en varias partes, asi que tratare de explicar cada una como pueda, ya que los 3 principales problemas fueron estos:
Para las siguientes semanas, ya comenzamos a trabajar con lo escencial del juego, osea el multijugador, pero habia debido a la poca experiencia que teniamos todos usando esta herramienta (Photon), por lo que aqui es donde comenzaron los problemas en varias partes, asi que tratare de explicar cada una como pueda, ya que los 3 principales problemas fueron estos:
-Enviar informacion
-Problemas de sincronizacion
-Retroalimentacion
Aunque algunas de estas tareas no fuese realizadas por mi een su totalidad, al tener que trabajar para compensar la falta de 1 miembro, me vi en la necesidad de tomar algunas de estas tareas para poder resolverlas y poder continuar con el desarrollo. Posiblemente lo mas tedioso de todo fue el hacer que la informacion estuviese sincronizada, porque en un principio no parecia funcionar del todo bien y si un jugador recogia un objeto, en primera no era igual al que aparecia en el otro jugador y pues tampoco se eliminaba al ser tomado.
En parte esto era debido a como estabamos manejando estos elementos, Photon tiene una manera muy curiosa de manejar el envio de datos, en donde se tiene que ver que informacion es muy importnate que tiene que ser enviada y recibia por todos al momento de que pasa y cual deberia ser enviada todo el tiempo, pero sin importar mucho si este tenia algun tipo de delay.
Aqui es donde detecte el problema y eso me permitio hacer varias pruebas diferentes para ver si estaba en lo correcto o no y no solo eso, me iba a permitir ver mejor la fluidez de datos, por lo que eso fue lo que hice y me alegra saber que si logro arreglar los errores
Lamentablemente para el momento en que yo tome estos problemas en mis manos, ya estabamos en las ultimas semanas de desarrollo, por lo que no se pudo pulir al 100%, pero en parte me alegra saber que la solucion iba por un buen camino.
Otra cosa que intente mucho fue el estar checando constantemente si X o Y informacion tenia que clasificarse como informacion que se envia una sola vez, pero de manera forzada o como una que puede perderse a tiempos. Pero al final esto fue lo que falto perfeccionar, ya que no teniamos muy claro si el control del multijugador era de usuarios a usuarioMaestro o de usuarios a la nube (Refiriendome a si usabamos a un jugador como host o el mismo servidor).
Otra cosa que tambien me gusto mucho, fue la implementacion del sistema de queueing, que a pesar de no tener en consideracion algun atributo especiald e los jugadores, servia como una mini sala de espera que estaba presente siempre que el jugador empezaba a abuscar jugadores para jugar, tambien tuve varias tareas en el area de diseno de los menus y la UI, pero no voy a indagar mucho en esto, en resumen, estuve en platica con un artista platicandole como y que necesitaba el arte para el juego, que como se ve en las capturas, si quedaron muy buenas para el juego.

Conclusion:

Me entristece que el proyecto no tuviera todas las features que teniamos planeadas hacer, asi como las nice to have, pero es parte del desarrollo en SCRUM, que a pesar de quitarnos tareas importantes, nos dio mejor flexibilidad, almenos a mi, puesto que los incovenientes que se generaron estaban completamente fuera de mi control y era mi trabajo poder adaptarme para poder dar todo lo posible para que el producto final terminara lo mas apegado a lo que se planeo como se buscaba

Volver a arriba