XenoBiotica is a third person horror shooter inspired by the resident evil 2 remake

In this project we used another group's engine due to our group having no dedicated engine programmers. We used the LLL engine made by safety first so many thanks to them for allowing us to use their engine. 

Main Responsibilities 

Player & Gameplay
I was responsible for the player and the gameplay for this project, creating doors, camera and the player gameplay. 

The most interesting challenges I had during the project was making an object follow an animation joint, camera movement & creating the player's statemachine.

We wished to have cutscenes just like in resident evil when you were attacked by an enemy. So the animators adde a camera joint to the animation that was a child of the root joint. I then used a loot of matrix math to get the worldposition of the camera joint so the camera could follow it. Then we thought "hey could we use this to have the guns follow the hands and hip joints". Should be really straightforward right?
Well after several days and help from several teachers & other students I was still not able to make it follow those joints. Something inside the engine marbled up world positions when you started going up inside the joint hiearchy. Since we didn't have much more time to waste on it we decided to have the guns a part of the player mesh & I deactivated them manually through script whenever they were supposed to be in hand or not.

When creating the statemachine with all sorts of playerstates I realised that we wanted to be able to run simultaneous states at the same time, ex. the aiming state can be active when walking & idle state is active.
To solve this I implemented a movement statemachine & action statemachine. The action statemachine's update was run by the movement statenachine's update. This allowed multiple states and some states that would disable the action statemachine (like being attacked making you unable to aim & shoot). 

When creating the player camera controls it was a lot of tweaking to make the movement feel smooth. Another challenge was making the camera not go through objects as we had a 3rd person camera. There was a lot of raycasting to object meshes to see if they were in front of the camera. Then trying to optimise the code to cull objects so it doesn't raycast to the meshes of everything as that's pretty expensive.



Jesper Andersson
Ventus Andersson
Niklas Alquist
Kevin Fredin
Erik Neuman
Oskar Sönne
Molly Tandberg


Arvid Aspeborg
Hugo Jansson
Hugo Orantes Diaz


Elin Ekelöw
Kate Ekberg
Felicia Johansson
Falke Persson
Lowe Silverlyra

Level Design

Niklas Hagerman
Oliver Ringh
Claudia Sjöbeck

Techical Artist

Frida Petersén
Oskar Thölén