Team Size: 9
Absent is a narrative driven action-adventure game where you play as the robot Rolf. It takes place in post apocalyptic Sweden in the 90s. You wake up in a city mall with no memory. Fight your way through the mall using stealth, melee and range combat, as you try to collect memories from the past.
This was a project made during my time at Future Games. It was a 6 weeks long project with a team of 4 designers and 5 artists. Because we had no coders, we designers had to do all of the scripting ourselves using only Blueprints.
Balancing the game
Designing gameplay that matches the narrative
In the beginning we established that it was going to be narrative driven. During the discussions we talked about that we wanted the gameplay to match the narrative.
We decided that the robot was initially a helper robot that was assigned to help a family. Then we used that as a root to discuss the combat design for the character. This landed in that the robot should use mainly stealth to overcome the enemies, but it will also be able to pick up guard robots tasers and find objects in the environment that can be used for melee attacks.
When we had decided what direction we wanted to go with the gameplay I started looking at similar games that we could use as reference. The game that we thought was most similar to our idea was Last of Us, which was also the game the art time wanted to use as reference for the art direction.
I set it up so I could stream Last of Us to the rest of the team, where we then could take apart the game and use it as inspiration for our gameplay design, level design and scripting.
Something that was new in this project that I really like was that I did all documentation in Miro, instead of writing GDD. This felt more flexible and the rest of the team was more willing to look at it compared too reading trough a GDD. I documented mainly through text and diagrams and flowcharts.
The first few weeks was only dedicated to implementing the core mechanics we had in mind. The plan was to build a foundation that we could then use to quickly prototype, and change things based on feedback.
The scripting was split between me and another designer, where I was responsible for the player character and he was responible for the enemies. We had no coders helping us and we were not allowed to use c++, so everything was done with blueprints.
Mechanics I designed and implemented
The player can walk, crouch and sprint. Crouching will make no noise when the player is walking and it is mainly used to sneak up on enemies. Sprint make the player run faster make a lot of noise and is mainly used for escaping.
I worked closely with an animator deciding what animations we needed and how they should feel.
I setup an animation blueprint too handle the animation logic and used blendspaces to blend the different states based on speed and direction.
The range weapon is designed to be powerful but have low ammo. The enemies all have one weakspot that will oneshot the enemy upon hitting it, but it is protected by a shell that the player will have to destroy first. Destroying the weak spot will stun the enemy for a few seconds, giving the player a chance to either shoot the weakspot, or perform a takedown and therefore save a bullet. Hitting other parts of the body will do decent damage and slow the enemy.
We made the decision to keep the shooting mechanic simple and easy to use, meaning there is no recoil or spread. We felt it make more sense given that the range weapon is a taser and a robot is firing it.
Aim Down Sight
Different hitmarkers depending where on the body you hit
Range weapon blueprints
The melee attack is designed to be a last resort if you failed to do a stealth takedown or cannot shoot. It has decent damage and infinite durability but hitting an enemy wont cancel their melee attack, so you most likely will take damage yourself. To make it easier to target the enemies I added a lock on function by holding down the right mouse button.
Melee Weapon Blueprints
Playtesting and balancing
We had regular feedback sessions with teacher and guests and I also did some playtesting with friends. This helped me find bugs and balancing the combat. The range weapon was especially hard to balance due to peoples skills at aiming would vary a lot. It was based on the feedback I made the decision to make the gun more powerful but has less ammo. I also made it require a lot less shots and melee attacks to kill the enemies, regardless of if you hit the weakspot or not.
I think I started playtesting too late. I got too caught up in scripting and did not playtest properly before jumping to the next mechanic. This was partly because we had no coders and I felt stressed because I had to implement so much, but it was us that scoped the game and I underestimated how long some features would take to implement.
It was a very fun project and I really improved my blueprints skills and how to implement animations, which have made me more confident at prototyping in Unreal.