![Half-Life2Screenshot1.png](https://static.wixstatic.com/media/2a3a0c_8cc9e5e846e341c78d1624e9b36d0cff~mv2.png/v1/fill/w_210,h_132,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/2a3a0c_8cc9e5e846e341c78d1624e9b36d0cff~mv2.png)
Half-Life 2
A Prisoner's Misadventure
Project Summary
Game: Half-Life 2
Engine: Hammer (Source Engine)
Development Time:1 month
Team Size: Solo
Playtime: 15 min
This single-player level is set in an alternate Half-Life 2 universe where Gordon Freeman is captured by the Combine after escaping Ravenholm. Gordon must find his way out of an abandoned apartment complex area controlled by the Combine army.
![Gradient Background](https://static.wixstatic.com/media/11062b_773720c471c8454d84f5e2ae1c354440~mv2.jpg/v1/fill/w_128,h_72,al_c,q_80,usm_0.66_1.00_0.01,enc_avif,quality_auto/11062b_773720c471c8454d84f5e2ae1c354440~mv2.jpg)
Map Overview
![Gradient Background](https://static.wixstatic.com/media/11062b_773720c471c8454d84f5e2ae1c354440~mv2.jpg/v1/fill/w_142,h_80,al_c,q_80,usm_0.66_1.00_0.01,enc_avif,quality_auto/11062b_773720c471c8454d84f5e2ae1c354440~mv2.jpg)
Design Goals
![Gradient Background](https://static.wixstatic.com/media/11062b_01d453afabd246f5849172d4141992a2~mv2.jpg/v1/fill/w_108,h_61,al_c,q_80,usm_0.66_1.00_0.01,enc_avif,quality_auto/11062b_01d453afabd246f5849172d4141992a2~mv2.jpg)
Goal 1: Encourage Player Interaction with the Environment
The clever use of environmental object is an a recuring gameplay theme from the original game. In this level, I created a similar experience by encouraging player interaction with the environment.
# 1 Enviromental Puzzle
Shoot down hanging platform and use it as a bridge to reach another area.
This first environmental puzzle requires the player to shoot down a hanging metal plank to bridge a gap between buildings, introducing the core mechanic of shooting breakable joints to create crossing points.
![HangingObject.png](https://static.wixstatic.com/media/2a3a0c_2898869b2a3e48eb8f636c88d80258ef~mv2.png/v1/fill/w_653,h_393,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/HangingObject.png)
# 2 Combat/Environmental Puzzle
Shoot down hanging objects and use them as covers
This 2nd puzzle builds on the hanging object mechanic from the previous puzzle, combining it with a combat encounter. The area is purposefully designed with a few small covers to begin with. Players must create their own cover by shooting down hanging containers, which permanently changes the layout of this battlefield and turns a unfavorable situation into an advantage.
![HangingObjectAsCovers.png](https://static.wixstatic.com/media/2a3a0c_b972027dcc8243b3ad7d4667acec432c~mv2.png/v1/fill/w_893,h_525,al_c,q_90,usm_0.66_1.00_0.01,enc_avif,quality_auto/HangingObjectAsCovers.png)
# 3 Combat/Traversal Puzzle
Control moving platform on a battlefield & use it to gain positional advanatge
This controllable moving platform (shipping container) allows players to access the yellow building by using it as a bridge. It also provides cover when approaching the sniper window on the building's upper floor.
![MovingObject.png](https://static.wixstatic.com/media/2a3a0c_43e260619ac04ed3bb07bebcd5d012ca~mv2.png/v1/fill/w_660,h_418,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/MovingObject.png)
![Gradient Background](https://static.wixstatic.com/media/11062b_01d453afabd246f5849172d4141992a2~mv2.jpg/v1/fill/w_108,h_61,al_c,q_80,usm_0.66_1.00_0.01,enc_avif,quality_auto/11062b_01d453afabd246f5849172d4141992a2~mv2.jpg)
Goal 2: Provide interesting ways to flow through space
Maps from Valve games, especially Half-Life and L4D, excel at encouraging exploration and providing memorable wayfinding challenges. I wanted to follow this design principle and create a memorable layout that is fun to explore and play through.
Here are some techniques I used to achieve this goal:
# 1 Elevation
Creating elevation is a very basic but very effective way to make the flow of the level feels interesting. In this image, I made the player go through multiple floors with 6 elevational changes in a 3-minute puzzle. Looking at the core puzzle loop it’s rather simple – disable forcefield 1 (start at E1) to enter the building’s upper floor (E4), get to the rooftop (E5) to use control terminal 2 & disable forcefield 2, and finally enter the building behind E6. Without elevational changes this whole experience of walking from one control terminal to another could be tedious, but thanks to elevation, wayfinding and mapping a complex environment becomes a challenging and rewarding experience.
![elevation.png](https://static.wixstatic.com/media/2a3a0c_8049ed626eda47b9852e9487ac7d73e9~mv2.png/v1/fill/w_921,h_602,al_c,q_90,usm_0.66_1.00_0.01,enc_avif,quality_auto/elevation.png)
# 2 Unconventional Path
The path to a destination doesn’t need to be a conventional straight road or corridor. In Valve games, it could be anything from a window to a moving train or a hole between walls. In this level I also added a few nonconventional paths to make the traversal experience feel more like a Valve map.
Example #1: An elevated vent that requires stacking crate to reach. Exiting the vent allows the player to ambush the enemies.
![UnconventionalPath-1.png](https://static.wixstatic.com/media/2a3a0c_a28adb4cc5d942eab43ed31e33211d93~mv2.png/v1/fill/w_522,h_325,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/UnconventionalPath-1.png)
![UnconventionalPath.png](https://static.wixstatic.com/media/2a3a0c_fdc0a09a485b45299545f3a3fcd8e997~mv2.png/v1/fill/w_456,h_325,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/UnconventionalPath.png)
![UnconventionalPath-2.png](https://static.wixstatic.com/media/2a3a0c_2f6b1d4044a3442bb1afbfbec367ec90~mv2.png/v1/fill/w_524,h_332,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/UnconventionalPath-2.png)
![UnconventionalPath-4.png](https://static.wixstatic.com/media/2a3a0c_cd3efdb67adf473db1006f4efb162c3e~mv2.png/v1/fill/w_458,h_332,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/UnconventionalPath-4.png)
Example #2: Break the glass window and jumping out of a seemingly inescapable room.
Example #3: Crossing a narrow wood plank.
Example 4: Stealth attack the enemies using a hole on the ceiling.
![UnconventionalPath-5.png](https://static.wixstatic.com/media/2a3a0c_6f2a4f00a6f645339eb625fc0dcee4aa~mv2.png/v1/fill/w_491,h_303,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/UnconventionalPath-5.png)
# 3 Loops and Alternative paths
Though Half-life 2 is a very linear game, the game world almost never feel linear while we’re playing through it. One way to break the sense of linearity is to provide players with various alternative paths that allow them to loop around an area through small circles and large circles.
![AlternativePath.png](https://static.wixstatic.com/media/2a3a0c_40948bcd6a9044088fd913de1a48f946~mv2.png/v1/fill/w_410,h_359,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/AlternativePath.png)
Breaking spaces into smaller sections creates more paths and loop, giving players the opportunity to adopt different strategies during a fight. Circling around to find good covers, observing the environment for good position, and attacking from different angles -all of these combat strategies are supported by a layout with loops and alternative paths.
![AlternativePath3.png](https://static.wixstatic.com/media/2a3a0c_7463a1333e724d9ea7477c43a01f69e1~mv2.png/v1/fill/w_601,h_359,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/AlternativePath3.png)
![Gradient Background](https://static.wixstatic.com/media/11062b_01d453afabd246f5849172d4141992a2~mv2.jpg/v1/fill/w_108,h_61,al_c,q_80,usm_0.66_1.00_0.01,enc_avif,quality_auto/11062b_01d453afabd246f5849172d4141992a2~mv2.jpg)
Goal 3: Scripted combat encounter that feels like it’s a part of the story
Half-life 2 is full of surprise and memorable combat encounters. In this level, I aimed to create similarly memorable combat moments that surprise and engage the player.
I managed to achieve this goal by using following elements:
# 1 Use Patrolling AIs to tell a backstory
Here I placed patrolling scanners visible to the player before they enter the combat. They helped with level narrative by telling the story of what happened in this space before the player’s arrival.
Without any text or cinematic moment, the player immediately understands that this location is monitored and controlled by the Combine army after seeing the scanners.
![Patrolling.Scanner2.png](https://static.wixstatic.com/media/2a3a0c_2720d1e6790c4133b4e1cdb68de3ce7f~mv2.png/v1/fill/w_604,h_317,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/Patrolling_Scanner2.png)
# 2 Smart AI that appears to have agency
Make AIs cooperate as a team
To make enemy AI seem smarter, I put enemies with complementary roles into the same squad. For example, in this area, a scanner and a sniper work together. Scanner is a flying melee enemy that could only blind you instead of doing any real damage. The sniper, on the other hand, is a long ranged heavy hitter, but since he is immobile, he doesn’t pose any threat unless the player has moved out of the cover.
As a team, the scanner forces the player out of cover, while the sniper deals damage from long range. This cooperation gives the impression of intelligent AI with strategic agency.
![sniper2.png](https://static.wixstatic.com/media/2a3a0c_0c0fd81e4f6943e1b6164e6429e2d7e0~mv2.png/v1/fill/w_536,h_337,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/sniper2.png)
Make AI "react" to the player’s action
![EnemySpawn2.png](https://static.wixstatic.com/media/2a3a0c_1b8054929b474f4b8bc627751566df0b~mv2.png/v1/fill/w_487,h_312,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/EnemySpawn2.png)
Aside from patrolling enemies, most of the enemies are spawned after a trigger condition. I placed the triggers in a way that makes the player see exactly when and where the enemies appear.
In this image (Left), the Combine soldiers rush out after the player activates the moving platform, the control terminal is placed in a position allowing the player to see enemy coming out from the opposite building.
I aimed to make the AI's reactions feel natural rather than scripted. This image (Right) shows enemies rushing to attack after the player deactivates the forcefield, giving the impression they've been alerted.
![EnemySpawn.png](https://static.wixstatic.com/media/2a3a0c_a900f5e7733445e081d3a5d164e21d1c~mv2.png/v1/fill/w_546,h_307,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/EnemySpawn.png)
![Gradient Background](https://static.wixstatic.com/media/11062b_773720c471c8454d84f5e2ae1c354440~mv2.jpg/v1/fill/w_140,h_79,al_c,q_80,usm_0.66_1.00_0.01,enc_avif,quality_auto/11062b_773720c471c8454d84f5e2ae1c354440~mv2.jpg)
Other Level Design Techniques
![Landmark.png](https://static.wixstatic.com/media/2a3a0c_0ef124d577014576b2db470d15e46620~mv2.png/v1/fill/w_666,h_358,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/Landmark.png)
Landmark
This is the final building, designed as a tall, visually distinct landmark. It remains visible from section 1 & 2 of the level, guiding players towards it as their goal.
Leading Lines
In this area, the wall & fences, the graffiti and the floor trims are all leading lines that point the player’s eye towards the next objective - the ladder.
![LeadingLines.png](https://static.wixstatic.com/media/2a3a0c_bb66a67d22174f2a9f9591c738a7353b~mv2.png/v1/fill/w_617,h_329,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/LeadingLines.png)
![EnviromentalStory.png](https://static.wixstatic.com/media/2a3a0c_dc30de1cd506490d9ecb2fb5813e13b3~mv2.png/v1/fill/w_682,h_366,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/EnviromentalStory.png)
Enviromental Storytelling
I added decorations to make the level feel more alive. Empty corners like this could be used to tell the backstory. The messy trash can and the table with newspaper hint at the location's history before the player's arrival.
Use Lighting to highlight important objects
I used cool and warm lighting contrasts to highlight key entrances and objects. The blue and orange lights enhance visibility by creating a strong color contrast.
![Lighting.png](https://static.wixstatic.com/media/2a3a0c_9b596ab38fbe4e50980c705ea09ff1ac~mv2.png/v1/fill/w_670,h_392,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/Lighting.png)
![Gradient Background](https://static.wixstatic.com/media/11062b_01d453afabd246f5849172d4141992a2~mv2.jpg/v1/fill/w_139,h_78,al_c,q_80,usm_0.66_1.00_0.01,enc_avif,quality_auto/11062b_01d453afabd246f5849172d4141992a2~mv2.jpg)
Postmortem
What went well?
Sucessful implementation
The whitebox was easy to build because the LDD and initial map design were clear. It closely matches my initial vision, requiring no major structural changes or difficult implementations.
Good communication with the stakeholder
I met with my professor weekly, which helped clarify design issues and concerns. These discussions boosted my confidence, allowing me to implement changes more effectively.
What went wrong?
Prioritized narrative over gameplay, leading to overscope
I initially prioritized narrative, aiming to tell a story about Gordon escaping with fellow prisoners. I only abandoned this narrative when I realized there wasn't enough time to script companion AI & design a good combat layout for the NPC squad. Cutting the story earlier would have prevented this overscope.
Optimization starts too late
I delayed optimization despite its importance, only starting to make func_detail during the aesthetic pass when build times exceeded 30 minutes. I should have prioritized optimization earlier instead of waiting for long compile times.
What I learned?
Letting go of good ideas is fine
If a good idea doesn’t fit the level, I should let it go. A cohesive level with a few strong ideas is better than an unfocused one with many unrelated ideas.
Fix things early so I can test early
Fix issues early instead of postponing them, even minor ones. Early changes allow for testing and iteration, whereas late changes may have to be accepted due to time constraints.
Do not filter out feedbacks that I don’t agree with
When stakeholders or testers suggest changes I disagree with, I shouldn’t ignore them. Instead, I should understand why they made the suggestion and address the underlying issue even if I choose a different solution.