top of page
smal (1).png

You play as an investigator trailing a serial killer. Immerse yourself with adrenaline-packed action as you gun-fu your way through a victorian England, with poor odds of survival. Dodge bullets, use your slow motion abilities and martial art skills in this gritty first-person-shooter. Find the boss hiding in each randomly generated level, and take it down.

Details

​

​

Genre: FPS, Rogue-Lite, Horror
Engine: Unreal Engine 4
Team Size: 6
Duration: 9 months (oct 2019 - june 2020)
Platform: PC

Background

Self started indie studio

This started out as my personal solo free time project. After networking and finding suitable people from my university, it eventually grew to become an indie studio at Skövde's incubator program. It reflects what kind of games I'm passionated about and is personally my all time favourite portfolio piece.

RESPONSIBILTIES

  • Designed all player related systems

  • Designed the gun feel and gun play

  • Designed the core gameplay experience

  • Designed the enemy AI behaviour with state trees

  • Playtested and balanced all systems

  • Blocked out and single handedly produced the levels

  • Designed pacing and various level beats

  • Set dressed, populated and landscape sculpted the maps

  • Applied lightning to all levels

  • Designed a procedurally generated level system together with a programmer.

depositphotos_183681200-stock-video-abst

Gameplay Design

The combat system

action-hero-fight-15-512_edited.png

My aim with the combat system was to create something fresh that I had never seen before. I wanted to mix my passion for antique weaponry with fast-paced combat. I wanted the player to feel like John Wick in the Sherlock Holmes universe. They should feel like a murder machine, while still knowing that one mistake can result in terrible loss. The weapons are slow but deadly. Bullets are scarce. The player will have to rely on hand-to-hand fighting, slow motion mechanics and weapon juggling in order to survive in combat.

No

depositphotos_183681200-stock-video-abst

Yes

  • Long reload time

  • Scarce ammo

  • Strong melee

  • Agile movement

type-of-solder-001-512_edited_edited.png
  • Unrealistic gunplay

  • Rapid firing weapons

  • Automatic healing

  • Rewards for passive playstyles

superman-thenoun-004-512_edited_edited.p
Anchor 1

Combat elements

game-terrorist-weapon-gun-512_edited.png

Ranged combat

swat-police-009-512_edited.png
depositphotos_183681200-stock-video-abst

At ready input

depositphotos_183681200-stock-video-abst
2-512_edited.png

Melee combat

depositphotos_183681200-stock-video-abst
depositphotos_183681200-stock-video-abst
depositphotos_183681200-stock-video-abst

Weapon modding

depositphotos_183681200-stock-video-abst

Enemy behaviour

depositphotos_183681200-stock-video-abst
artist-show-performance-008-512_edited.p
Gear_icon_svg_edited.png
depositphotos_183681200-stock-video-abst
slowmotion-video-slow-motion-settings-51

Slow motion

depositphotos_183681200-stock-video-abst

Diving

depositphotos_183681200-stock-video-abst

Sliding

This webbing of interconnecting mechanics created the kind of gameplay I was looking for. The amount of enemies the player encounters in each level beat cannot be faced with fire power alone due to the slow reload speeds and rarity of ammo. The player will have to glue the combat together with an aggressive, close quarters playstyle. This is encouraged by strong melee, weapon drops from the enemies and slow motion build up from melee executions.

swat-police-009-512_edited.png

At ready input system

32041_edited.png
31532_edited.png
31532_edited.png
31532_edited.png
2063261-200_edited.png

=

+

Melee

​

=

Ready weapon

​

Fire​

32041_edited.png

+

=

Aim down sights​

=

This system has two main purposes. It binds the mouse to all combat related actions. The player has instant access to melee at the click of the shooting button, encouraging melee use at any time. It also adds a layer of immersion and realism, forcing the player to practise trigger discipline by readying their weapon before shooting, insinuating that firing is a powerful action that comes with a cost.

game-terrorist-weapon-gun-512_edited.png

Ranged Combat

3383257a0d9a92d78085a4f6fedf6660.gif
2120615-200_edited.png
Artboard_17-512_edited.png
06-FOOD-READY_fresh-juice-512_edited.png

Resource management

Juice

Headshots

depositphotos_183681200-stock-video-abst
depositphotos_183681200-stock-video-abst

While guns have high damage outputs, they are clunky and slow to reload, as most Victorian weapons are single-action. The player will have to carefully place their shots in firefights to manage their ammo use.

To further play on high risk, high reward behaviour, each enemy has a porceline mask which shatters in pieces and gives off a satisfying sound and replenishes some slow motion to reward players for headshots.

The gunplay is infused with juice in multiple ways in order to make the weapons feel fun to use.  Aiming down sights provides a slight zoom to increase target focus. A knock back to the camera is added after each shoot to emphasise gun power. Hit surfaces explode in concrete or blood.

Gear_icon_svg_edited.png

Gun modding

WeaponModding.gif

Since this game is a rogue lite, I needed to add replayability by extending the weapon pool without overloading the animator with work. Each gun in the game is split into defining weapon parts that can be mixed freely. This creates unpredictability every time the player picks up a gun, because they will behave differently. It also adds progression and strategy to the game, as the player can scavenge the world to build a firearm that suits their needs. A revolver can be a fast fanning, room sweeper, or a high caliber, long range weapon, depending on what the player wants to pair it with.

artist-show-performance-008-512_edited.p

Enemy behaviour

I wanted the player to feel like a predator, hunting the enemies down with their superiority. I could emphasise this by making adjustments to the enemy behaviours in addition to providing the player with powerful mechanics. Enemies are more prone to a passive combat approach, allowing the player to be on the offence. They will verbally dictate their actions as they are searching for or fighting the player to reveal their positions as the game lacks a mini map. They will retreat in fear when they have witnessed a certain amount of allies being murdered.

​

​

Final Result

So what does this combat system look like in action? Here is the result.​

depositphotos_183681200-stock-video-abst
Mansion entrance hall.png

Level Design

​

​

For this project, I invested myself in both traditional, hand crafted level design as well as developing a PCG (procedural content generator) with a programmer, since the game was supposed to be a rogue lite. ​

​

We wrote a scientific paper in Swedish on the process of creating a PCG specifically aimed for first person shooters, which can be found here:

 

 

 

 

 

I also summarized the process below.

​

Anchor 2
FnVVn9G.gif

Procedural level design

There are countless ways to go about making a PCG that would affect our workflow. I wanted the environment to feel different every time it was generated. It needed to fulfill certain needs in the gameplay. After that, we could set up a list of goals. 

​

  • Playable

  • Believable

  • Flexible application

  • A tool controlled by a level designer

Needs

Goals

3083091-200_edited.png
goal_edited.png
  • Support first person shooter gameplay

    • Cover placement​

    • Verticality

    • Route options for the player

  • Visually complex

  • Realistic in terms of layout

  • Controlled by parameters

  • Modular enough to make different kinds of buildings

Arsenal definition

My first task was to create a workflow an AI could easily follow and prepare modular blueprints that could be generated and placed in an arsenal ready to be used by the programmer.​

Floor/Roof

unnamed.png
unnamed (2).png
unnamed (3).png
unnamed.jpg

I created a common asset by applying a tiling floor and a roof texture to a box mesh. I then added beams to the underside of the cube to add complexity.

Walls

unnamed (4).png
unnamed (5).png
unnamed (1).jpg
unnamed (6).png

I added a tiling panel to the wall asset. The wall texture and the panel could be set with parameters, allowing the blueprint to be used in different contexts and rooms.

Wall alternatives

Stairs, beams and railings

unnamed (7).png

I made alternatives for the wall, such as a doorway, a door with playable functionality and a window with a spotlight attached to the blueprint.

unnamed (8).png

The level would contain height differences, so I included the following assets with complex collision.

Furniture and details

unnamed (9).png

Lastly, I added all the furniture. I made the decision to pre decorate them. Which detracts from randomness, but gave us valuable time to implement other features.

workflow_edited.png

Workflow

I then proceeded to find an optimal sequence in how the created assets could be used.  I arrived at this solution:

1.Basic layout placement

unnamed (2).jpg

Room size and shape is determined by floor tiles. Doors are placed according to adjacent rooms. Windows are placed on walls leading to the outside.

3.Wall Decor

unnamed (4).jpg

Wall decorations are placed on empty wall spots, detected with ray casts on the wall bound furniture from the center of the room.

2.Wall bound furniture

unnamed (3).jpg

Defining furniture for the room themes are placed along the walls, this is mostly to provide disposition and context.

4.Floor Decor, cover objects, lightning

unnamed (5).jpg

Same thing is done with floor decorations. If the room is bigger than a certain size, a chance for cover furniture objects can be placed in open spaces. Dynamic lightning is then generated, because light baking isn't possible during run time.

50-512_edited.png

The design tool

The last thing I needed to define was how the design tool could be requested in order to carry out this work flow and satisfy all needs. I handcrafted a map with the described work flow. This was used as a benchmark for quality assurance of the design tool, but also helped me visualize the parameters that I was about to request.

From creating the map, I knew I needed to be able to specify how many rooms and how many floors each building would have. I needed to specify each room's theme, what assets they would contain, the room sizes and the spawns of loot and enemies. I also needed to request how many paths that could be taken between each floor. I made the following flow chart:

Final Result

GenerationTimeLapse.gif

Generation time lapse

​

Raw, unaltered generation

​

Hand Crafted Level Design:

Prologue Level

​

Since this is the first level of the game, it had to serve a couple of important functions:

tutorial-icon-png-19_edited.png

Tutorial

A complete tutorial of the in-game mechanics and enemy behaviour

depositphotos_183681200-stock-video-abst
depositphotos_183681200-stock-video-abst
2277868-200_edited.png
2330996-200_edited.png

Narrative

Expectations

depositphotos_183681200-stock-video-abst

Establish a narrative and create an interest for world exploration

Set expectations for the rest of the game and generate exciting questions

Overview

fd1e231ebecc1ef2e8f23f52c3917c48.gif

A.

Introduction - Waking up

41fc6378f4ebf3a5c53ddff8d6cd5db7.gif

B.

Tension creation - The forest

Overview map.jpg
1db770f303c37b2ced6aee4adedf30cc.gif

C.

Combat tutorial - Beatrice's house

e3d0aad6c3d0da48a3a23db0b1aa008d.gif

D.

Ramp up - The fields

dd47df9e2541a22255a4b319c3e128ba.gif

E.

Climax - The mansion assault

Introduction - Waking up

The player wakes up from a nightmare in a Victorian apartment. The streets of London can be seen outside the windows. The player is free to explore this cosy area. I used the same workflow as the procedural level generator uses to create this apartment, described above. The lights are warm to insinuate that this is a safe environment. Shadows are dark to hide elements in the level, forcing the player to examine things closer, encouraging them to explore. My main goal with this area was to provide the player with some kind of context.

af2d2bb552beaed0fa1073fbbcf267da.jpg

Atlas apartment is the hub that the player starts in every time they die. It is designed to feel like the only safe space in the game. It also hides visual details, hinting clues to who Atlas is, as he is a quiet protaganist. It's changing along side the narrative.

36e6f485348e801c55e4104e88708980 (1).jpg

One of the rooms appears to be his office. It contains pieces on several crime investigations, suggesting that Atlas might be a law enforcement officer of some kind. This is an example of environmental story telling.

997e24b0afdcb0491096ce8408604aa1.jpg

An empty gun is found in the office, preparing the player psychologically for an upcoming battle.

35fc4e15603a58eeb09dc570ca0b72c5.gif

As the player steps out of the apartment and turns around, it has disappeared. Making the player question whether or not they are still dreaming. Level streaming out the apartment is a combination of tracking the camera angle and a trigger volume.

Anchor 3

Tension creation - The forest

The player has to walk through a dark forest with an empty gun. I wanted them to wonder what might lurk in the thick vegetation. The level is blocked in by natural  cliff walls and  a giant  river to prevent the use of invisible walls. I sculpted and painted the landscape with the built in UE4 tool. I added volumetric lightning that pierced through the trees to exaggerate the moon light.

c41bf797c019f73d4d509b7710ce0117.jpg

A deer is placed on top of a cliff when the player learns how the aiming system works. This provides a natural target to test it on, with an empty gun. It also adds life to the scene, making it feel more surreal.

4d10f362019f8695475a2ad506af6213.jpg

I was generous with the foliage painting to achieve a realistic look, but also to add uncertainty. I made sure to clean up any overlapping  chunks of vegetation with an optimization tool in Unreal Engine.

074ea32a3d0b406033cc9c4cf130f5da.jpg

If the player chooses to explore an off branching path, they are rewarded with a beautiful vista and some cigarettes.

c35b32bc8f2a9801e4fd6fd24900d224.jpg

A couple of lamps lights up the darkness at the end of the main path, directing the player's attention to the objective.

Anchor 4

Combat tutorial - Beatrice's house

The player encounters a small house. Poorly perserved and seeminly abandoned except a couple of lights. The player is told to fetch something from the cellar, which contains the first shootout in the game. The player has to walk through the combat zone into a backroom before the encounter to start, this way, they are already familiarized with the environment.

5f4490efed837ca1a60a7cca84fcd174.png

If the player tries to walk down into the cellar before speaking to Beatrice who will hand them a flashlight, they will have a hard time navigating in the darkness, forcing them to investigate the house further before proceeding.

e552ae2ed49df069ed7f86c78ad31316.jpg

The cellar was designed as a confined combat area. It needed to have verticality to make the targeting zones more interesting, with several ways of traversing between the floors to give the player options in their positioning and for the enemies to flank.

481fb39e9621edf142d40ac597d79cbf.jpg

The cellar is also populated with cover objects and railings to provide defensive options for both the player and the enemy, but it also synergises well with the diving mechanic.

8dc943b27d498d49e86fbfcc082d94d9.jpg

Because it's positioned below the landscape, I had to implement several trigger volumes to disable its collision and visibility at the entrances to the cellar.

Anchor 5

Ramp up - The fields

This area is a transportation zone, serving as a breather, but also puts the player's acquired combat skills to test in the later part.

623707fe3b810c0befeb40ee7eac58b7.png
4f02152d662f28d81f58263556d82907.jpg

I wanted this area to feel big and open so that the player could choose their own path. Either they can stick to the main road when they engage the fight, having their back covered by the cliff. Or, they can cut right through the open fields to reach their destination faster, but have less cover options.

Fighting ranges are longer, mixing it up from the previously cramped encounter.

bec6f6cc9b2bec94f25386b0da88b7a5.gif
03284d4fb67de14ae6b4c38153d732bc (1).jpg

One of my favourite details in the environment are the ditches, inspired by real life experience. These can be found around pasture lands on the Swedish country side.

At the end of this area, a couple of wagons filled with human remains can be found, indicating that it might have something to do with the earlier seen crime investigation.

Anchor 6

Climax - The mansion assault

The player enters a grand mansion after the fight in the fields, barricading themselves inside. Weapon parts are scattered across the level, introducing the player to the gun modding system. This last area is getting overrun by endless hordes of enemies, pushing the player to survive for as long as possible. It was important to design this level to accomodate for a prolonged encounter.

A reaction video from let's player "SpetroRin"

Mansion library.png

I wanted the mansion to offer a range of different combat zones. The library has a lot height differences. Corridors enables close quarters scenarios. The entire area is circular with multiple branching paths, allowing the player to constantly adapt to the enemy spawns.

d3736112978ea2e5a58e2ceed74cb06e.jpg

Some areas have unique gimmicks, such as the dining hall with destructible windows, allowing the player to slow motion dive and shoot through them to feel like an action hero. 

Anchor 7
bottom of page