Project details
Developed over 15 weeks
Unity 2021.3.22f1
released june 13th 2023
The Team :
Antoine Coustenoble
Lead Visual Design,3D Artist,Documentation,Game-Design
Bastien Denis
Lead Game Design,Programmer,Documentation
Camille Menana
Lead Sound Designer,Game Design
Matthias Helderald
Lead Programmer,Game Design,VFX & Lighting
Make the most of what you have
INTRODUCTION
Our first school project with a 3D toolset, using Unity and FMOD. We were given a theme for this project : Min/Max .As a result, our project's motto is as follows:
Make the most of whatever resources you have to endure against waves of enemies. Attracting and throwing objects from the environment will be your sole way to guarantee your survival
We aimed to provide a game that offered a renewable experience, one that could be enjoyed multiple times without ever replicating the previous playthrough. This involved creating a deep sense of immersion within the game, achieved through enclosed settings and intense action sequences. We intended to challenge players by placing them in difficult situations and compelling them to adapt with the resources at hand. Moreover, we strived to offer players a diverse range of objects, levels, and consequently, gaming scenarios.
Game Design
We aimed to provide a game that offered a renewable experience, one that could be enjoyed multiple times without ever replicating the previous playthrough. This involved creating a deep sense of immersion within the game, achieved through enclosed settings and intense action sequences. We intended to challenge players by placing them in difficult situations and compelling them to adapt with the resources at hand. Moreover, we strived to offer players a diverse range of objects, levels, and consequently, gaming scenarios.
Programming
The most crucial aspect of programming this game was designing the state machine. Given the cyclical nature of the game and the well defined system states, a state machine seemed like a wise choice.
Project Repulse has 4 states:
VFX
Explosion :
The Explostion fx can be broken down into three phases :
• Bright flash whose size rapidly decreases as if it were collapsing upon itself.
• Luminous streak with random position and lifespan originating from the center of the explosion.
• Rotating arc that extends and vanishes.
For this FX I wanted to do a sort a Sci-fi chemical explosion, so that it fits with the artistic direction.Also I tried to incorporate the "Pulse" of Project Repulse in the rotating arc.
For example here is in detail how I created the rotating arc that extends and vanishes.
• First, I created a new block in my explosion VFX, which spawns once.
• Next, I initialized the particle to have a lifetime of 1 second and set the arc to the desired angle.
• After that, in the Update function (every frame), the arc will rotate by 15 degrees on the y-axis.
• Then, I plugged in the texture and set the size of the texture.
• I also adjusted the size of the texture over its lifetime using a curve, making it gradually larger with a plateau at the end.
• Lastly, I set the color of the texture with a variable and multiplied the color and the alpha over the particle's lifetime using an additive blending mode. This allowed me to control the brightness of the arc throughout its lifetime.
Blackhole :
The Blackhole fx can be broken down into three phases :
• Expansion of the black hole.
• Expansion of the accretion disk.
• Rotation of the accretion disk and particles.
For this blackhole I had the intention to create a quite luminous blackhole with an easily recognisable accretion disk and area of effect so that the player would knows the metrics of the gravitational attraction.
Dissolution :
• Gradual dissolution of the object from top to bottom following a
procedural pattern using a coroutine.
I drew inspiration from Portal for these shaders. I liked the concept of dissolution, but to maintain consistency with the artistic direction, I designed it to glow and decompose in a way that would loosely resemble lasers or heat in general.