MORANT SEBASTIEN

Game Designer and Programmer

Junior Front-end Developer

Home Travaux BUT
Logo de FEAST

Feast - Projet Fin d'Etude B3 ICAN LYON

Développement d'un boomer-shooter roguelike en groupe de 3

FEAST

Feast est un FPS de style retro dans lequel le joueur incarne un alien qui se reveille au centre d'un complexe scientifique souterrain. Pour s'echaper, il va pouvoir devorer l'integralité des meubles, props et humains pour evoluer.

Sebastien MORANT [Game Design, Gameplay Programming, Level Design, Sound Design, Game Art 2D, Tech Art]
Antoine Yon [Game Design, Gameplay Programming, Game Art 2D, Tech Art]
Juan Seraphin [Game Art 3D]

Unreal Engine 5 : Blueprints, Level Editor (+ Sublevels), Niagara, Fab, MetaSounds, Materials, Widgets
Piskel pour sprites 2D

Gameplay de FEAST

Biomasse et Evolution

Lorsque le joueur se raproche d'un objet qu'il peut manger, un contour vert apparait sur celui ci. Le joueur peut rester appuyé sur la touche d'absorption (par defaut "f") pour devorer tout ce qu'il se trouve devant lui. Chaque objet devoré rapporte de la biomasse que le joueur peut ensuite depenser :

Evolution : Le joueur peut evoluer jusqu'a deux fois, pour passer de sa forme larvaire a une forme juvenile puis adulte.
Soin : Le joueur peut maintenir la touche de soin (par defaut "A") pour se soigner d'une portion de sa vie manquante une fois par seconde. La portion de vie augmente a chaque tick de soin.
Armes : Debloqués a partir de la forme juvenile, les armes sont des variations du bras canon de l'alien. Chaque arme a ses propres caractéristiques : degats, projectiles par tir, tirs par secondes ainsi que cout en biomasse par tir. Les armes ont besoin d'etre debloqué et ameliorés en echange de biomasse mais, a pars la premiere ont besoin d'etre decouvertes dans le niveau.
Competences : Le joueur peut debloquer des competences dans une arbre de competences. Chaque competence a un effet different, allant de simples augmentations de statistiques a des effets speciaux tel que des contours sur les ennemis

Generation de niveau

Le jeu ne genere pas un layout de salles proceduralement a chaque run, mais l'interieur des salle lui l'est. Chaque niveau contient une liste de salles ainsi qu'une hashmap salle<->liste de sublevel. Lorsque le niveau est chargé, pour chaque salle, un sublevel est choisi aleatoirement parmis sa liste.

A certains endroits dans le niveau se trouvent des "ancres" qui, lors de la generation du niveau se repartissent entre eux les armes du jeu, au niveau des ancres selectionnées apparaissent alors des objets qui, lorsqu'absorbés ajoute l'arme correspondante a la liste des armes debloquables pendant la run.

Comme le jeu permet d'influencer l'environnement en detruisant et devorant des meubles, il n'a pas été possible d'utiliser de simples level streaming volumes. La premiere fois qu'une salle est atteinte, son sublevel selectionné est chargé, lorsque que la salle est quitté, le sublevel n'est pas dechargé mais mis en pause/desactivé. En mettant en pause un sublevel, les changements persistent mais pas les etats physiques : un objet devoré reste devoré mais un objet destruit sera retrouvé dans un etat neuf. L'optimisation est tout de meme satisfaisante car les objets physiques ne sont plus calculés et le tout n'est pas render.

Etant limité par le temps, un seul layout par salle existe actuellement dans le jeu.