Game | Stuttgart Media University | 2024
In the rogue-like cooperative action-adventure game Project Mothership, players slip into the role of two astronauts to prove their skills in teamwork, exploration and puzzle-solving while navigating their way back to the mothership before they run out of oxygen.

Providing a clear vision
Finding a fitting camera concept for Project Mothership was quite a challenging task. In the end, we came up with a top-down system that dynamically changes the camera's height between a minimum and maximum value, depending on the distance between the players. This way, we ensure a smooth appearence throughout various different scenarios.
Additionally, instead of using the players as reference objects, we committed to the oxygen tank as focus for the camera. When it is not picked up and thus stationary, the camera stays in place, keeping both players equally in view. However, once the tank is picked up, the focus shifts to the player that carries it, stressing its importance and providing additional visual feedback for the players.
Maintaining visibility
To ensure no large objects are blocking the view, rays are casted from the camera's position to both players' and the oxygen tank's positions. In case a target with a mesh is hit, it is added to an array that contains all objects which are currently in the camera's fov. Each of those objects' opacity is then lerped smoothly over a fraction of a second so it appears visible but transparent.
Once an object is not detected by a raycast anymore and thus not potentially blocking the view, it is removed from the array and its mesh regains full opacity. With this implementation, the opacity effect does not last any longer than required, providing the player with immediate visual feedback and maintaining the game's flow.


It's all in the details
Since Project Mothership features strongly stylized high-quality graphics, it was essential to implement fitting visual effects. Many of them were created with shaders in Godot's own language, which is similar to GLSL. This includes various effects in combat during charging and attacking but also damage indication for players and enemies.
Apart from that, we also made use of Godot's built-in 3D particle system for more complex physical effects. For example, we simulated clods of soil flying into the air that are synchronized with the digging animation of the armadillos as well as dust being swirled up when the giant drill is activated, reinforcing a sense of immersion for players.