Solaris

art by Lilia Sitarz

Red Riding Hood retelling in a post-apocalyptic PRL setting. The story of Irka – a teenage courier set to find a medicine for her sick grandma in the midst of a dangerous sun pandemic. At least, that’s what she’s led to believe…

Solaris is a narrative driven parkour game currently in development, created by a team of 10 in Unreal Engine 5.8. I’m the lead quest and gameplay designer of the project, responsible mainly for designing the narrative and gameplay flow of the game, implementing quests and mechanics in engine and directing the creative vision of the project.

Design Core Idea

The game’s whole structure is built on the conflict between the two districts of the city: Bastion and Selev. My main design focus was to highlight this aspect in every part of the game: starting with the visual difference in colors and post-processing, through the narrative shifts depending on the part of the city we’re in, and ending with different mechanics being crucial for each district.

Bastion is more of an open space, with warm, orange and yellowish tones, showing that it’s the safer and more privileged district
Selev’s levels are more cramped, and the color palette is based on red and brown tones. The view tends to be slightly blurred, showing the dangerous and almost psychedelic feel of the district.

Quest design

The plot of Solaris is loosely based on the well-known fairy tale of Red Riding Hood – hence Irka’s distinctive red head scarf, and the story core being bringing a medicine to her sick grandma. The wolf symbolism appears a few times during the story, and takes the shape of every danger Irka has to face during her journey.

Quests in Bastion (called Dream of Bastion and Boy With One Arm) are designed to introduce the player to the world and set up the main goal, emotional stakes and conflicts. The player is introduced to the crucial characters: kind-hearted grandma Lucyna, the sanitary leader Piotr, Irka’s unexpected ally, Cyprian, an ambiguous old friend of hers, and Urlyk, presented only as a memory of the man Irka needs to seek help from. During the first two quests, the player discovers Bastion and the district’s perspective on the conflict and finishes this part of the game terrified of the „scorched district” of Selev, where there is said to be no humanity left. This part of the game is focused more on parkour and conversations than combat, suggesting the „safer” character of the district.

Selev and its two quests (The Scorched District and Welcome Home) give the player a different perspective on the whole situation. By investigating the district while searching for the lost medics’ expedition, Irka learns the Selevians are not the monsters she was told they were. Even after fighting and sneaking past the cannibals, she starts to symphathize with the district, which presents the player with a difficult choice at the end of the fourth quest: should she stay in Selev and help Urlyk with rebuilding the district, leaving Bastion to its downfall, or take the medicine to the medics and leave Selev to rot instead?

The most challenging, but also rewarding part of Solaris’s quest design for me was to keep the documentation accessible for both the team and myself. While I was responsible for the quests themselves, the design documents had to be easy to review for other people and make it clear what kind of assets would be necessary for the quest to work. After discussing it with the team, I decided each document should consist of two parts: the first one being a standard design document, mostly for me to use, and an asset list specific to the quest. The asset list would be divided into three main sections: narrative, art and programming. We would then go over the list at each weekly meeting and set up tasks according to the assets most needed at a given moment.

Gameplay design

Solaris’s gameplay focuses mostly on parkour and combat mechanics. I wanted to focus on mechanics allowing the player to take multiple routes for each level. I figured out this could actually be achieved with only a few simple mechanics. The whole system is based on sprinting, crouching, climbing and vaulting, and it turned out, combining it with appropriate level design created a great gameplay feel relatively easily.

A bigger challenge was to create a fun-to-play, but not too complex combat system. Together with the story team, I made the decision to have Irka carry two weapons: a bat found in her flat and her smuggler friend’s pocket knife. This idea naturally evolved into three basic attack types: fighting with a knife, a bat or bare-handed. Thinking about the gameplay, I figured out the player had to be able to perform three basic types of actions in combat: attack the enemy, block an incoming hit and perform a stealth attack, if they are currently sneaking. However, a stealth attach with a bat didn’t feel natural to me, so I decided to cut it out, resulting in eight total player combat abilities.


For implementing the system, I decided to use Unreal’s Gameplay Ability System plugin. This way, I could easily modify and add new abilities, as well as decide which one to perform basing on the player’s current state. All five types of attacks, for example, use a common ability tag Gameplay.Attack and on receiving input bound to this tag (left mouse button by default) and based on the tags currently owned by the player, a proper ability activates. The tags are set up in a way that it’s impossible to activate two combat abilities at once.

Example tag requirements for an ability

Knife attack

Fist attack

Bat attack

Screenshots

Previous slide
Next slide