top of page
logo_flavor_savior_2.png

Flavor Savior

Unha deliciosa e trepidante aventura.

Flavor Savior é o videoxogo que desenvolvín xunto con 3 compañeiras como Traballo Final do Grao en Creación Dixital, Animación e Videoxogos. Este consiste nun RPG de estilo 2.5D cuxo combate xira en torno a minixogos de cociña. É o proxecto máis complexo no que traballei ata agora e nel volquei todos os meus coñecementos de programación.

Grazas a este proxecto aprendín a apoiarme no meu equipo á hora de tomar decisións e encontrar solucións e tamén a adaptar o traballo ao tempo dispoñible, implementando o máximo posible pero deixando un marxe para testear e arranxar erros.

FVS_portada_v01.png
Listado de tareas con su respectiva prioridad y deadline.

Organización

Como Lead do departamento de programación, primeiro creei un listado coas mecánicas que conformarían o xogo divididas por rango de importancia, para poder establecer fechas de entregas. Grazas a isto puden ter unha idea clara de que debería implementar para as distintas versións do xogo:

  • Na versión Pre-Alpha teríase a funcionalidade primordial do combate por turnos, o mundo explorable e o sistema de gardado.

  • Na Alpha implementaríase principalmente o sistema de misións, os ataques basados en minixogos e a batalla contra o Boss final.

  • Para a Beta, a última fase, añadiríase todo o apartado visual e compartiríase o xogo con diversos testers para engadir as últimas melloras e arranxar os bugs que encontrasen, podendo así obter a Golden.

FVS_portada_v01.png

Programación

Sistema de exploración

O sistema de exploración é o que se encarga do personaxe do xogador co seu sistema de progresión en base a niveis, o sistema de misións tanto principais como secundarias, a entrada en batalla e diversas mecánicas secundarias.

O funcionamento básico do xogador encóntrase en BP_Player.

  • Sistema de guardado temporal 
    Este sistema de guardado creouse ao implementar a entrada en batalla, xa que ésta atópase nun nivel externo ao nivel de exploración e perderíase o progreso obtido ao ter que crear de novo ao personaxe do xogador.

Ahora ao crearse o personaxe consultase o archivo "temp" para actualizar as variables gardadas. Tras elo cargase o subnivel no que se encontrase e colocase ao xogador na posición gardada. Ao rematar faise a chama Ready, enlazada con tódolos sistemas que non deberían cargarse ata que o xogador esté listo.

Neste personaxe tamén se realiza o gardado do archivo "temp", proceso que pode ser chamado desde outros sistemas.​

  • Sistema de progresión
    Cando o xogador consiga puntos de experiencia ao derrotar a enemigos ou completar obxectivos de misións, comprobarase si conseguiu os suficientes para aumentar de nivel. Se sube de nivel, aumentarán as súas estadísticas según o definido na función CheckStats.

Sistema de batalla

O sistema de batalla consiste nun combate por turnos onde certos ataques do xogador realizanse según o resultado obtido nunhos cortos minixogs. Todo o seu funcionamento encóntrase na extensa blueprint BP_Battle e nos enemigos creados a partir de BP_BattleEnemy.

Primeiro, según os datos gardados no archivo "customBattle", créanse os enemigos nunhas posicións definidas que dependen da cantidade de cada tipo. Posteriormente enlázanse tódolos botones do HUD de batalla coas posibles accións do combate e decídese quen recibe o primer turno según a velocidade de cada bando.

O xogador pode seleccionar calquera dos minixogos que teña dispoñibles e tras elo escoller a qué enemigo danar. Tras seleccionar un ataque calcúlase, según a posición do cursor en pantalla, qué enemigo debería marcarse. Cando o xogador faga clic, chamarase a función do ataque seleccionado previamente. "O especial da casa" simplemente realiza a animación correspondente antes de danar ao enemigo, pero o resto de ataques funcionan grazas ao resultado obtido nos distintos minixogos.

  • Minixogos

- "Bananarang" añade a pantalla WB_Bananarang e crea un temporizador. Dentro do widget o xogador debe facer clic e arrastrar o seu cursor para conseguir lanzar o plátano e completar o minixogo. Se o tempo se remata antes de que o consiga, fallará o ataque.

- ​“Batidor de merengue” ten un funcionamento moi similar ao minixogo anterior. Éste engade á pantalla WB_Merengue, widget no que o xogador debe desplazar o cursor continuamente para conseguir encher unha barra de carga. Se o consigue lanzará o ataque exitosamente.

- “Horneado de pastel” crea WB_Pastel onde un indicador se moverá ata que o xogador o deteña ao pulsar un botón. Dependendo de en que zona se pare, lanzará un ataque OK, Perfect ou Fail.

- “Bate piruleta” funciona tamén a través dun temporizador, como pode verse en WB_Piruleta. Neste minixogo o xogador debe esperar a que apareza un enemigo en pantalla e, cando isto ocorra, clicar para golpealo. Se non consigue facelo antes de que desapareza, fallará o ataque e recibirá dano. Ao danar ao enemigo, tamén o aturdirá durante uns turnos, conseguindo que teña menos probabilidade de atacar.

Ao rematar calquer minixogo, engadirase un cooldown para impedirlle ao xogador lanzar o mismo ataque varios turnos seguidos. Dependendo do tipo de ataque, ao completalos exitosamente chamarase á función para danar únicamente ao enemigo seleccionado ou tamén aos que estén ao seu alrededor. Logo dentro da blueprint de cada enemigo restarase o valor de vida correspondente (se non consigue esquivar) e, se queda algún con vida, o bando contrario recibirá o turno.

​

Se derrota a todos os seus contrincantes, o xogador volverá ao mundo de exploración con unha recompensa que pode consistir en puntos de experiencia ou consumibles.

​

Por outro lado, se o xogador escolle a opción de fuxir, éste deixará a batalla no estado actual se a súa velocidade é maior, senón seguirá en combate e perderá o turno. Da mesma forma que se escolle tomarse un consumible do inventario, terminando o seu turno ao aplicarse o efecto.

FVS_portada_v01.png
FVS_portada_v01.png
Gameplay
bottom of page