With the new year starting and I am currently studying instead of working on my projects, I think it is a good time for a recap video of my game-dev work 2021!

CINEMATIC MODE
I made a new cinematic system! On trigger - the player enters "cinematic mode", which disables the controller while changing to another skeletal rig which lets me control and animate the full character body. Immersive transition betweeen player and cinematic mode. Here is a preview.



Post date: 2021-12-06.

GAMEPLAY VIDEO
I added UE4 free environmental assets to my project ("Polar Sci-Fi Facility" and the "Spaceship Interior Environment Set"). Nice addition for visual feedback, but I will continue my work in the more isolated levels when I am implementing new content and mechanics.

Polar Sci-Fi Facility
Spaceship Interior Environment Set

Post date: 2021-11-24.

NEW PURIFIRE
A big thanks to my talented friend Egle Petrulyte for letting me use her weapon model for my project! This gun was supposed to have made it into the game Bloodworth, which I worked on as a sound designer.
As the game project got put in the ice box and the model did not get into the game, it sure is great fun to see it in this project with sounds and animations!

Link to Egle Petrulyte's artstation.

Post date: 2021-11-14.

NEW M200
I just finished up the mvp for the sniper. There are some missing sound effects and tweaks to the scope mode to be made.
I tweaked, rigged and animated the royalty free unrigged model from cgtrader which was created by A-Editor.

Post date: 2021-11-05.

NEW RGS-50
Take a look at this fresh piece of utility! I have yet to create the rest of the animations for the weapon, which you'll see soon.
I tweaked, rigged and animated the royalty free unrigged model from cgtrader which was created by Genior.

Post date: 2021-10-24.


Down below you will be hit with a wall of text (and gifs(!)).

If this is too much of a read for you, then I got a cool three minute video for you.

The Project
Alpha Bot (First-person shooter)

From 0 to current state: 2021-9-28 - 2021-10-19 (21 days).

With this project I want to showcase what one person can do in Unreal Engine 4. Although, the core focus has been on rigging, animating and programming a fast-paced first-person game, with responsive yet fun controller!


Programmed Sway & Offset
The sway and offset system is built so that each animation will run on top of the sway and in relation to the players input and actions. The first-person mesh is wielded to the player camera, and the sway system is moving and rotating the mesh in relation to the camera.

The sway is updated each frame, but is only set once per frame. I define many affecting variables (shown in the gif poorly presented) and adding them as a sum total before lerping the variables from the current values to the target values.
The sway is updated each frame, but is only set once per frame. I define many affecting variables (shown in the gif poorly presented) and adding them as a sum total before lerping the variables from the current values to the target values.

- The X-offset is set up in relation to the players movement velocity. The higher velocity, the further away the weapon moves from the camera. The output float values are clamped between min and max values.

- The Y-offset is defined by the distance between the character root and each foot in real time. When the left foot is in front, the first-person Y-offset is moving to the right, and vice versa - creating this left and right stagger-like movement.

- The rotations are handled via direct input from the player mouse movement (yaw and pitch). The input values are between -1 and 1. These values are used to multiply with other values to control the local rotation of the first-person rig.

Some animations also 'requests' a static offset. Example of this is when certain animations, such as reload or inspect, appear too close to the camera. I trigger the offset request on some of the animations. Since all these values lerp between current and target values it creates an additional cool effect to the animations.


NOTE: This is NOT something I've learned from a YouTube tutorial. These implementations are fully mine.


Rigged and animated
I have modelled the Robot character and rigged all assets. All first-person animations is made by me. I made the animations with resposiveness in mind. I think that the quickness really enhanced the "responsive" feel that many successful first-person shooter games have.

Responsive behavior & feel
Each animation montage has different blend in and out times set up. In most cases many would think that blend times should be everywhere, for every animation, but that is not the case.

In the way I have set it up, I have to use very short or zero blend times on certain animations, such as the equip animations. Since the previous animation have similar bone names there is a risk that the previous animation (probably unequip) will blend with the new equip animation. That can result in wierd poses if the weapon rig is swapped with another resulting that the weapon mesh pops in and out of the picture while the hands are still visable.
In the way I have set it up, I have to use very short or zero blend times on certain animations, such as the equip animations. Since the previous animation have similar bone names there is a risk that the previous animation (probably unequip) will blend with the new equip animation. That can result in wierd poses if the weapon rig is swapped with another resulting that the weapon mesh pops in and out of the picture while the hands are still visable.
While talking about responsiveness, states and conditions play a role in the controllers feel. I defined which actions have priority over others, e.g the player should always be able to interuppt their reload for a weapon swap, weapon drop or a melee attack.

I wanted quick and tactical animations, but I also created an additional set of animations that does not really serve a gameplay purpose other than being cool and creative. Animations like 'inspect weapon' was fun to animate. I also created a slower, more 'fun to watch' weapon unequip animation for each weapon.

To make sure the unequip stayed fast in combat, the player will perform a quick weapon unequip animation when changing to another weapon. But if the player swapping to an unarmed state, the player will perform a more flashy and fun animation with longer play duration.


Built to implement more
Each weapon is set up in a way so that it is easy to implement more weapons. I have rigged each weapon together with the Robots upperbody mesh and armature. So all there is to do is to create and import a new weapon with animations, connect it to a animation blueprint, add some values to the already existing 'weapon stats' structure and... done.

The new weapon base is finished and only the thing left to do is to add special functionality to that certain weapon.
The new weapon base is finished and only the thing left to do is to add special functionality to that certain weapon.

Having fun
To make games, you need to spend a lot of time and effort. That is why it is important to ask yourself if you really want this?

My answer has always been yes. I keep coming back to game development even after I started studying Front-end Development.

I do this because this is something that brings me joy.

I do this because this is something that brings me joy.



Next up...

The Project
Trampoline Madness (Third-person gymnastics game)

From 0 to current state: 2021-05-27 - 2021-07-18 (52 days).

This was such a fun project.

I learned a lot about animations in third person games, and how to properly make use of Unreal Engine's animation blueprints, physical animations and blendspaces.


Character Movement
There are two main states in which the player character using for movement; grounded and aerial state.

When moving on the ground, the player controller is rather conventional, and is behaving like most other third person controllers do. But as soon as the player becomes airborne, the controller switches to an "aerial state" and starts to behave different.

In air, the player looses the control over forward and sideway movement. I intend to force the players to transfer the momentum they have on ground in order to go the direction they want in air.

While the players loose control over their location movement in air, they instead gain controls over their rotation movement in each axes.

I am using these rotation values (along with many other values) to trigger and blend between the characters animations.

Animations
Many animations and blendspaces.

Blend animations with physics.

I use Unreal Engines built-in physical animations which lets me blend animations with a strength value. The higher strengh value, the more control the animation has over the ragdoll. This can be set per bone in the character rig and have let me create some cool functionality.

When the player bounce on a trampoline or if the player dashes, some parts of the upperbody simulates physics for a small period of time. To achieve this, I override the active animation system and start to simulate physics on the set bones. Then when I want the return, I cache the current pose (the physics simulated pose) and blend it back to the active animation system.
When the player bounce on a trampoline or if the player dashes, some parts of the upperbody simulates physics for a small period of time. To achieve this, I override the active animation system and start to simulate physics on the set bones. Then when I want the return, I cache the current pose (the physics simulated pose) and blend it back to the active animation system.


Game Mechanics
The challenge of this game is to control the character and make your way through the obstacles while scoring points. While failing is punishing, I want the player to have incentive to challenge themself by doing tricks and flips.

The players tolerance to velocity is low, so in order to be successful the player has to land on certain objects, on their feet, in order to not trip and fall (or die).

Trampolines, madrasses and foam pits are always safe to land on, but they handle differently. Trampolines are bouncy. When the player lands with their feet on a trampoline, they gain bounce force, but if they don't land on their feet, they will loose kinetic energy.
Trampolines, madrasses and foam pits are always safe to land on, but they handle differently. Trampolines are bouncy. When the player lands with their feet on a trampoline, they gain bounce force, but if they don't land on their feet, they will loose kinetic energy.

If the player is in air and has terminal velocity and there is no safe landing spot underneath them, their character will start to embrace for impact (trigger animation blendspaces).

The player can tuck by pressing the jump button in midair. This increased the rotation speed in the pitch and roll axes. The yaw (twist) rotation is, on the opposite, decreased when tucking.

Assets, maps and modes
I was new to 3d modelling when I begun working on Trampoline Madness. My first model was the player character. To help me with the proportions, I imported the UE4 male mannequin and put him behind my model as a reference. This made it easier for rigging and posing later on.

I made quite a few gameplay assets! Every 3d asset in the game is made by me exept textures with depth (brick walls and floor panels are recolored versions of UE4's default textures).

I made quite a few gameplay assets! Every 3d asset in the game is made by me exept textures with depth (brick walls and floor panels are recolored versions of UE4's default textures).


Skins and rewards!
What is a game without skins?

With these rewards and skins, there is room for a Career mode, or a Campaign/Story mode. That would be fun!

Fortnite Sound Re-design 1
Sound Redesign on a Fortnite trailer.

This is my reproduction of the sound design and music for Fortnite Battle "The Baller" trailer. I do not own the video.








Demon Soul's Sound re-Design 1

This is my reproduction of the game audio for Demon's Souls. I do not own the video.








BF 2142 Sound Re-design
Sound Redesign on Battlefield 2142.

This is my reproduction of the sound design from Battlefield 2142: Northern Strike trailer. I do not own the video.







Demon Soul's Sound re-Design 2

This is my reproduction of the game audio for Demon's Souls. I do not own the video.









Harry Potter Sound re-Design

This is my reproduction of the sound design of a short scene snippet from Harry Potter and the Deathly Hallows Part 1. I do not own the video.







Bloodworth Sound Design

This video is showcasing some of my work as a sound designer. I, together with 5 other people, have created the game "Bloodworth" (a game that is not released). I have designed and implemented all sounds.





Listen to more of my sound design on my Youtube.

Power Trial
I had no experience in Blender before 2021. I wanted to make an obstacle course type of game without the need to make assets and animations.

Power Trial was a good project for me to learn more about Unreal Engine 4 which also lead to my work on Trampoline Madness.


Momentum 22
My first Game Design project. This was a really good learning experience for me. Before this project, I had only been co-designing and programming minor implementations games, while I was in an indie-game company.
Press the bars to open. :)