AxelErasion_banner.png
AxelErasion_logo.png

7th Game Project

Engine: Silvertejp (our own)

Timeframe: 15 weeks (half time)

Team size: 11

Genre: Parkour FPS

Parkour and shoot your way out of the building - conquering room after room in this fast-paced action game.

My Contribution

In this project, I got to co-create the player with another programmer. I was responsible for the combat side of the player. This includes the creation of the two weapons available to the player. There is a semi-automatic and a fully automatic weapon. You can also kick enemies and slow down time.

Semi-Automatic

axelerasion_semi.gif

The semi-automatic weapon is a precise, high damage weapon with a few bullets that one shots enemies in their critical zone.

Fully Automatic

axelerasion_auto.gif

The fully automatic weapon has a short wind-up before firing any bullets. These bullets deal less damage, but are fired fast.

axelerasion_camera.gif

First Person Camera

I also implemented the fps camera! I learnt a lot during the creation of the camera as I had to dabble a bit with quaternions.

Here is one of the earliest versions where I was testing out the camera in-game.

The Player Combat & Abilities

axelerasion_combat1.gif

Animations

Another responsibility I had regarding the player was implementing all of the animations! For this, I worked closely with the artist who made and animated the character. I also added some simple additive animation blending to the idle and run animations. The player's animations are brought together with a Finite State Machine inspired by the animation state system present in Unity.

For this project, I also reworked and refactored a lot of the animation system that was built during the last project. In the end, this made it much easier to work with.

axelerasion_animation.gif

UI

I implemented nearly all the UI in the game. Mainly the menus and the player UI present in-game. To create the menus and especially the settings, I created different UI elements such as buttons, sliders and toggle-buttons.

axelerasion_ui.gif

Other

I got to do a lot of different things this project other than what I mentioned above! Some of these are mentioned below.

Instanced Rendering

Because we had noticed a GPU bottleneck in our engine, I wanted to implement faster rendering. I did this by instancing our rendering of models for shadows and the G-Buffer. Even though the visual result was the same in the game, with or without the instancing, it felt good to have optimized some of the GPU work.

Point Light Shadows

One thing I spent a lot of time on was implementing shadows for our point lights. I struggled with getting this one right, but I finally got it to work after some extensive debugging with my fellow programmers!

axelerasion_pointlights.gif