Sicaria is a third-person stealth game set in Antwerp during the Eighty Years' War.
You play as an engineer, a person capable of overcoming any challenge through your own cleverness. Use the environment and your skills to remain hidden and accomplish missions undetected to avoid death.
Game genre
Stealth
No. Developers
39 Developers
Development Time
6 months
Engine
Unreal Engine version 5.3
Release
Available on Steam
Responsibilities quick access
Enemy Visual Perception
Feature Description
The enemy’s ability to visually spot the player. This system makes use of a visual range, player motion and other variables in order to dynamically adjust the speed at which the player is seen or if they can even be seen at all. The system works with other in-game tools, such as smoke bombs, which almost fully visually impair enemies.
Socket Detection
Using line tracing, going from the enemy’s face to specific sockets (shoulders, knees, torso and head) on the player mannequin, the enemy checks what (if any) parts of the player are visible. Depending on the distance from the player to the enemy, the minimum of sockets necessary to become detectable varies, making it harder to be spotted from afar and easy to be spotted from up close. The speed at which the player is being detected also varies based on how many sockets there are visible over the minimum amount.
Feature Breakdown
Player Movement Detection
While the player is visible to the enemy, specific movement states influence the speed of detection. For example, if the player is crouching, the detection is relatively slow, while if the player is running or jumping, detection happens at a much faster pace.
Why?
We were working on a stealth game and the enemy’s ability to perceive the player is one of the most important parts of the gameplay experience. We wanted to create a realistic but fair perception process, where enemies could not be deemed stupid, but not too tough on the player either. As such, with influence from games such as ‘(add later I forgot the name rn lmao)‘ I designed a visual perception system that allowed for the enemy to take into consideration not only how close the player is or how long they have been in the visual range for, but also how much of the player is visible and the current motion state of the player. With the help of these variables, the speed of the detection could be adjusted where enemies would feel more real in their ability to spot the player, while also giving the designer a lot more room to make sure the experience stays balanced in the favor of the player.
Peripheric Sight
The peripheric sight works similarly to how distance based detection works. While in distance based detection there’s a simple check of the current distance from the enemy to the player, with the peripheric view there is a different collision box that allows for the enemy to see whether or not the player is in direct line of sight or simply in the metaphorical ‘corner of their eyes’. Detection happens at a much slower pace in this position, not only having different speed modifiers altogether, but modifying the minimum threshold for socket detection as well.
Interaction with State Machine
Detection level had a direct impact on state switching within the enemy AI. Using the value of the ‘suspicion level’ accumulated through detection (be it audible or visible) the enemy would switch to the appropriate state (from idle to suspicious, from suspicious to agro, from agro to searching, from suspicious or searching back to idle).
Mechanical Arm
Feature Description
A prototype representing a weapon which allows for the player to kill enemies from a distance, while facilitating an easy method to hide bodies. This prototype is called the mechanical arm as it makes use of the prosthetic arm of the main character which was established in the story concepting part of the development process.
Feature Breakdown
Why it was created
While in the preproduction phase of the project, we realized the game lacked a USP, making it a very generic stealth experience. Because of this, we decided to use the idea of the prosthetic arm, which was initially deemed out of scope, as a means to make our gameplay more unique. Given how the player had a means to kill enemies in close range by stabbing them with their knife, it would make it fun for them to be allowed to grab enemies from afar in order to perform these assassinations. As such the mechanical arm weapon concept was born.
Charge-up and Mobility Limitations
During prototyping we frequently encountered the issue of the mechanical arm being too powerful. As such multiple limitation attempts were put in place so that the arm would feel more balanced. One of these is the charge-up paired with the player movement limitation. The premise is simple: when the weapon is activated it has a small charge-up period that forces the player to wait before the weapon can be used. In this state or while aiming the weapon, the player is not allowed to move, making the weapon impractical for risky positioning.
Why it was scrapped
The arm was too strong of a weapon, trivializing the gameplay and a lot of the times removing the stealth aspect altogether. Players tended to simply focus on killing all enemies rather than avoiding them. We tried to limit the arm in multiple ways, by restricting movement during use, adding cooldowns, increasing the danger level of using the arm in any way we could, but unfortunately this made players not use it at all. As such, knowing there was not enough time to bridge the gap between frustrating, unnecessary and overpowered, we decided to drop it from the project.
Main Functionality
In its prototype state, the mechanical arm simply spawned on the right side of the player (where the actual arm would have eventually taken its place) during use. The arm when detecting a viable victim (enemy) would extend from its place, latch onto the back of the enemy’s head, and drag them to the position of the player, killing them upon return (which would have later been justified as the arm having a knife in its wrist where the hand had sprung from)
Targeting
The targeting is a very simple feature. The player has a multi sphere trace for objects which allows them to look for enemies within a given range. After detecting viable enemies, the system checks for the closest enemy to the screen center, after which it sets that enemy as the target. The target is then given as information to the grabbing system. If there is no target, grabbing cannot be triggered.