Sponsored By

Getting to grips with a new engine and making a fun level, at the same time, is a challenging prospect. In this post, I analyze "What Lies Beneath", a survival horror map I created for Half-Life 2: Episode 2.

Jose Abalos, Blogger

March 3, 2014

9 Min Read

One of my favorite genres is the survival horror. Its mix of dense atmosphere, stellar audio work and stressful resource management is an explosive mix to me. So, when the chance came of making a level for Half-Life 2: Episode 2, I immediately jumped at the chance of making a survival horror level. After all, this is the game (well, the original Half-Life 2) that gave us that awesome level called Ravenholm. Inspired by Resident Evil 4's cabin siege and the movie The Cabin in the Woods, I attempted to make a survival horror level with a slow first half and a frenetic climax. This was a challenging and fun project, and here are my thoughts on the final result.

What Went Right

Atmosphere: One of the core goals when making this level was creating a level with a creepy atmosphere and in a setting not present in Half-Life 2: Episode 2. I believe I managed to accomplish this by the use of props and decals, crows that fly away from the player, lighting shifts and especially the music. Using sources as different as Mogwai, Akira Yamaoka and Goblin’s soundtrack for Suspiria made for a hard-to-forget experience.


Scope: Burned out by the daunting task that was my previous level, Reggie (which you can read about here), I decided that this time I would make a smaller level, that still had a good amount of gameplay. In terms of scripting and playspace, I believe I succeeded, since I had the entire scripting and a good amount of detail done by the Whitebox milestone, which meant that I could spend more time refining the gameplay and adding more visual detail to the cabin.

Fun New Mechanic: Another goal of this project was creating a new mechanic that changed the dynamic of regular Half-Life gameplay, but one that wasn’t such a drastic departure as the inventory system in Reggie. Inspired by the Suicider enemies in Dead Island, the Explosive Zombie presented a risk-reward scenario, since players had to decide whether to eliminate the enemy straight away or let it come closer so it can take more enemies out when shot. This presented the unexpected surprise that when many Explosive Zombies were clustered together, one good shot could provoke a chain reaction and kill many enemies. This gave a sense of exhilaration to the players, and one that I decided to keep for the final level.

Easy Adaptation to New Tools: This was my very first level working on the Hammer Editor. Thankfully, given the practice working in other editors such as the Creation Kit and especially the Unreal Engine, the learning curve was pretty low, so I could just start building playspaces pretty quickly. The scripting was a bit trickier, since I did not have much experience with entity scripting, but I grasped the concept after a couple of quick prototypes.

Use of Lighting for Player Guidance: Another concept I wanted to explore with this level was the use of lighting not just as an aesthetic item, but also as a gameplay mechanism, by guiding the player from warm lighting areas to cool lighting areas (and vice versa). In this regard, the setting was a good choice, since a cabin in the woods, at nighttime, lends itself naturally to this kind of lighting. Although I think the lighting can be better in the level, at least I’m satisfied with the way it guided players throughout the level.


What Went Wrong

Setting Too Ambitious: Although the exterior and underground base are areas that Half-Life 2: Episode 2 can create very well, the cabin itself was a real challenge. I say this because most of the environments in Half-Life 2 tend to be ruined, decrepit or just really run-down, like the apartment complexes in City 17 (the only exception to the rule is Dr. Breen’s office). This was a complicated prospect for my level, since I wanted to create a fancy cabin. To solve this issue, I downloaded several models and textures from the Internet (all properly credited), like the piano and the bar in the living room. Another way in which I tried to solve this issue was using lots of bullet decals and broken pieces of furniture, to give the illusion that there had been already a big battle between zombies and Combine. Although the end result was good, the cabin did not have as many fancy decorations as I would have liked.

Uneven Time Spent on Areas: Since the big hook of my level, from a visual standpoint, was the cabin and the exterior, I spent a lot of time decorating and cluttering those areas. As such, the underground base got a lot less attention, from a visual standpoint. It was a really challenging area to decorate, since Combine bases, like the Citadel in Half-Life 2: Episode 1, tend to be pretty clean areas, reflecting their efficiency and coldness. I did my best to decorate the area as best as I could, but I feel some more work, visually, would have improved the area.

Exploits: The level’s climax pits Gordon against dozens of zombies, fast zombies and Explosive Zombies. I inspired myself for this sequence in Resident Evil 4’s cabin siege between Leon Kennedy and Luis Sera. That sequence was successful because, in a limited space, it encouraged you to constantly move. The main problem I faced was that there were some spots, like a room in the second floor of the cabin, that were too effective in holding the zombies, since they would take a long time in reaching the player’s position. I solved this issue by spawning fast zombies in that room and also fast zombies in the second floor corridor, but even then, I could have solved this issue in another way, like simulating a fire in the room when the showdown began, so the player could not access said room.

Difficulty: Zombies, by themselves, are not that threatening in Half-Life 2. It’s only when they are present in large numbers and close to the player that they represent a threat. I wanted to instill in the player a sense of panic given the large enemies, where they had to constantly choose whether to kill an enemy or get a better position. The main problem was regulating how many fast zombies there were in the level, because in the first iterations there could be up to five fast zombies simultaneously attacking the player. I solved this issue by changing their spawn timing, so the spawner could not create more zombies until the player killed one already spawned.

AI Pathing: At first, I spawned many zombies, but they would just stand in place until they saw the player. This broke the illusion of panic that I wanted to convey in the level. To solve this problem, I put all the zombies in one squad, and whenever a new zombie spawned, I updated the player’s position to the entire squad, so they would all move towards the player. This made them “telepathic”, knowing at all times where the player was, but that was exactly what I wanted, so in the end it worked out just fine.


What I Learned

Don’t Understimate the Time to Fix Exploits: Given the time constraints of the project, I had set up some time between Alpha and RTM to fix gameplay issues. However, given the exploits playtesters found, I spent more time than anticipated fixing said exploits. From now on, I need to plan a larger amount of time to fixing gameplay problems in future projects.

The Little Details can Mean the Most: Once I was satisfied with the level, I started adding little details, like sound effects, missing toys and crows around the cabin. These details added a lot of atmosphere to the level, giving it an ominous feel. I’m happy I could add those in the level, and for future projects I need to set time aside to implement some of those details.

Ask for Help Early: Since my strengths lie in the scripting area, I can be stubborn when it comes to solving scripting problems, since I like figuring things out on my own. However, given the time constraints present in this project, I could not afford such luxuries. There were two main problems in this regard: making a template for the Explosive Zombie and making the countdown at the end of the level. By asking for help early in the process, I was able to solve these problems early on, leaving me with more time to put fun features into the level, like the details mentioned above.

VisGroups are the Best: VisGroups in Hammer regulate the visibility of the entities inside them both in the editor and in-game. By being very structured in their use I could work without much problems in the editor, especially in the areas around the cabin’s entrance, since the wooden logs often got in the way (every log you see in the cabin was manually placed. It took a long time, to say the least).

Taking Away Control from the Player Can Be Useful (But Don’t Abuse It): For teaching the player how the Explosive Zombies operated, a Combine would shoot an Explosive Zombie and die from the explosion when the player entered the basement. However, many testers could not see clearly what was going on, saying “I saw a guy shooting and then an explosion, but I don’t know what happened”. At first I was reluctant, given Half-Life 2’s lack of cutscenes, but in the end I made a two-second cutscene depicting the same situation. It did not break as much immersion as I had feared, and it communicated how the Explosive Zombies worked, so players could be wary of their behavior when the time came of fighting them.

Although I still feel there are areas where this level can improve, especially from a visual standpoint, I’m happy that What Lies Beneath created a new interesting enemy and provided a good challenge to the player, where every bullet has to count.

If you want to see more of my projects, you can always visit my portfolio website at: http://www.joseabalos.com. Thanks for reading!!

Read more about:


About the Author(s)

Daily news, dev blogs, and stories from Game Developer straight to your inbox

You May Also Like