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.
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!
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.
ALPHABOT First-person animation system
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...
TRAMPOLINE MADNESS third-person animation system
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!
Sound Design
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.
Prior work
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.