top of page
  • Designed and built the level to shippable quality, focusing on “pushing the envelope of Half Life gameplay"

  • Heavily focused on scripting (Hammer’s Entity-based, visual scripting)

  • Documented and conducted playtests sessions for iterative evaluation

  • Role: Level Designer

  • Game: Half Life 2 - Episode 2

  • Engine: Source SDK/Hammer

  • Genre: Flying Shooter

  • Development Time: 3 months/2015

  • Game Type: Single-player






Level Overview

“Profane Prayers” is a quest for The Elder Scrolls V: Skyrim, built in Creation Kit. This single-player level is a parallel story that does not affect the game’s original lore. Following the title’s Action/RPG play style, it delivers a dark, immersive environment, while providing a new kind of gameplay, based on magical traps. As the Dragonborn, in this quest, players meet Goromithias, a Breton citizen looking for help to find his missing brother, Boromith. During their journey to find Boromith, Daedric cultists ambush them. Captured, stripped of their equipment, and thrown into a cave prison, players must find their way out of that place and discover what is happening. It turns out that Goromithias and Boromith are members of that cult and they want to offer Dragonborn’s soul to summon their Daedra god. In order to survive, players need to dismantle their evil plan and escape.

  • To create a dark, eerie environment, reflecting the overall quest’s mood progression and the profane aspect of the enemies

  • To create a challenging quest, not so common in Skyrim, which weakens players and require them to manage their low resources in order to survive

  • To create a trap-based gameplay, which players must use carefully: while it empowers players – helping them in the disadvantageous situation – it also threatens them, adding more risk to their lives



The map overview shows the circular aspect of this level: players fly through different heights, circulating the environment, while avoiding obstacles and fighting waves of enemies. Each wave has a certain number of enemies that players must kill in order to progress (goal). Moreover, waves have a random spawn system, guaranteeing that, for every cycle, it is not possible to predict with 100% of certainty where enemies will come from

Click on the map for more information about the waves 

Flying Shooter Gameplay

Creating an action-oriented flying shooter game (on rails) that gives players the sensation of empowerment and excitement (thrill of the ride) moving across different path heights was very challenging. Half-Life 2 does not really have any native support for that kind of gameplay. Thus, I had to build several different features in order to accomplish the intended gameplay, such as the flying and shooting systems, the wave system, as well as, enemies’ behavior and reactions to player’s gunfire

Feedback for shooting:


A major goal for this level was to make shooting and flying feel good within the editor/game restrictions. Regarding that, playtests showed it was not possible to trust completely the shooting radical (crosshair), as it did not seem to correspond to the actual direction of the bullets. Moreover, the editor did not provide the resources to fix that properly in the given amount of time. To around that issue, I added two crosshairs indicating a closer and longer distance, as well as, a ‘target in range’ feedback, signaling when enemies resided within range – crosshair turned to red.

Flight control: 


I also added the possibility of toggling between low/high speed, allowing players to better control their movement throughout the level. In terms of flying, playtesters complained about the ship movement’s vertical limits, pointing out they felt artificial – it is not possible to go all the way down, when in the high path, neither all the way up, when in the bottom path. Although the designer acknowledged those issues, that limitation was necessary to add to the variety as it forced player to experience the same areas from different perspectives.

Player Communication:


Building this level involved a big challenge related to player communication: the subtlety of Half Life 2 feedback system for enemies damage was not enough to provide players enough information about their actions in a flying shooter context. They could not tell whether they were hitting enemies or not. Hence, I added a blinking red feedback for both player’s ships and enemies, indicating damage. On top of that, gunships start smoking once they reach low health, while striders catch on fire, under the same circumstances.

Reusing Playable Space

One of the biggest challenges of this level was to create a compelling experience, with the right balance between sense of progression and difficulty curve. Given the project’s scope, it was not possible to create a linear level that could encompass the needed gameplay time – it would have to be huge to accommodate the right difficulty progression. Because of that, I decided to create a circular path (‘8’-like shape) which allowed players fly through the same space several times, while having the same experience in different ways – different obstacles. Moreover, the chosen aesthetics (countryside, mountains, pinewood forest) also provided enough freedom to design different obstacles that made sense in the environment.

8-shaped Map - Gameplay

8-shaped Map - Gameplay

8-shaped Map - RTM

8-shaped Map - RTM

Double edge sword:


Although the circular level layout solved the flow issue, it also created new challenges: reusing the environment, while making loops that were different enough from each other, as well as, giving players a sense of progression in terms of both story and gameplay. That led to a map with two different path heights, combining players flying through the space in both directions (similar to clockwise and counter-clockwise). 

Mixing different heights with both flying directions gave players a variety of approaches, making the same environment be a different experience as players flew across it. WOW moments of transition also entertained players while giving them a better sense of reward and variety.

Difficulty Curve

In terms of gameplay difficulty, I defined an increasing challenge curve, tied to story progression, using short dialogs, enemies, and obstacles. As playtest sessions revealed, initially, players did not know if they were doing right and progressing through the level. In order to fix that, I added “Dr. Kleiner” (an original character from Half Life 2) to the story, talking to players via radio. His dialog lines served the purpose of both giving instructions, as well as, providing a sense of progression, by telling story bits. These story beats worked as rewards (positive feedback), giving players background and indicating advance in the level. “Dr. Kleiner” had lines for every wave, pointing out when a new wave would start, its midpoint, as well as, its end.

Mini Postmortem
  • Fun final product

  • Pushed the box successfully

  • Professor guidance

  • Level performance/framerate was very high

  • Initial analysis paralysis

  • Overscoped project and, consequently, crunch

  • Early playtests did not contribute much to the project

  • Level difficulty curve is still steep

  • The importance of well scoping your project

  • Hammer powerful visual scripting tool

  • Make decisions early and go with it

bottom of page