Deep Delves Mines


Deep Dives Quarry.png

Project Description:

Deep Delves Mines is a Half Life 2 custom level set within the Half Life 2 universe. Gordon Freeman is tasked with liberating the rebels most influential mine from the hands of the combine soldiers and re-establish a rebel foothold to help bolster their war efforts.

Development Info:

  • PC, Steam, Hammer SDK

  • Solo development project where I designed, built, and scripted the entire 7-15 minute gameplay experience over the course of 9 weeks (October 2017 - December 2017).


 

The level:

I was created the “Deep Delves Mines” level under a few specifications. The first requirement was that the level must contain at least one outside and an one inside area which the player must transition between in order to complete the level. The second requirement was that the level contained approximately 5-10 minutes of gameplay.

In addition to these two criteria, I tasked myself with creating a level within the Half Life 2 universe (as this was not part of the base requirements). I wanted to see if I could create an environment that not only looked like Half Life 2, but felt like it as well. In addition to this, I wanted to be ambitious and really challenge myself by trying to use the existing Half Life 2 assets that I had seen throughout the game, in unique ways. With this, I wanted to see how far I could push both the engine and the assets while staying true to the Half Life universe.

Accompanying “Deep Delves Mines” was an in depth level design document that outlined the full concept description, overview, intensive walk-through, asset list, and image references, which can be downloaded here:

 

A full play-through of the level, including all hidden weapons and loot can be seen below:


Design Decisions & Philosophy:

My primary concern with building out the level was creating a natural sense of flow in the level’s progression through the build and release of gameplay tension.

Guiding players in The Quarry:

A large area of concern in this regard was guiding the player toward where they needed to go in the quarry segment. This segment of the level was intended to be very large and very open with a number of places to explore. Additionally, since the player will be required to utilize the crane in a very unique way I paid careful attention as to how I was guiding the player around the level.

Unlike the much more linear mine segment, I wanted this section of the level to feel open and non-restrictive to the player, but still maintain a sense of linearity. I accomplish this primarily through the use of enemy position and elevation to funnel the player where I want them to go.

When the player starts the level, they are on the upper edge of the quarry. The player has only one direction to go (white), forward, toward the combine blockade (as seen below) since they will fall to their death if they jump off of the ledge to their right.

Deep Dives Ledge Start Annotated Flow.png

While forcing the player to only have one option right at the start of the level goes against creating a sense of openness within the level, it serves as a helpful tool by establishing the idea that progression is tied to the appearance of enemies (red); which I will use in my favor later on.

From here I introduce the first break in tension, where the player is completely safe from any enemies (unless they search the house). The player then has a moment to explore the ledge and look for hidden loot and weapons (green) or continue pressing forward.

Deep Dives Ledge Annotated Flow.png

This is where the element of elevation comes into play. Previously the player had been on the ledge of the quarry where they could over look what was going on down below. This acted as a bit of foreshadowing in terms of presenting the player with an immediate goal, getting to that new area and presumably dealing with the strider who is looming on the opposite side of the quarry.

Deep Dives Quarry Back Annotated Flow.png

Once the player nears the bottom of the quarry, the strider begins to shoot at the player from the high ground while combine reinforcements spawn and begin attacking from the ground level and the balcony around the crane.

This is the point in the level where things devolve into full chaos and bullets and explosions fly everywhere. However, here I call back to the aforementioned technique of using enemies to signal progression. I use enemy spawns in such a way where the player is drawn somewhat linearly across the quarry in an attempt to control the chaos a bit more. The player is completely free to explore and loot the quarry as they choose. However, with the strider providing cover fire, it quickly becomes dangerous to be out in the open. As such the player is pushed toward the first instance of cover they can get to (the awning at the foot of the crane) which conveniently provides the player with ammo, health, and a rocket launcher which will be necessary to deal with the strider.

From here, the combine soldiers then pose the most immediate threat as there are quite a few of them. This pushes the player to seek more suitable cover, ideally in the processing plant, the only full building in the quarry. In here the player is provided with health and shield charging stations as well as more ammo and another rocket launcher in case the player did not find the first one.

Deep Dives Quarry Annotated Flow.png

It is at this point where I work to shift the player’s focus toward the crane. While in the processing plant, the player can very easily dispatch any remaining combine soldiers and has sufficient cover from which they can peak to shoot rockets at the strider. In addition to this, it is from this location where the player is most susceptible to be shot by the two combine soldiers on the balcony around the crane. The player must then eliminate these two combine and in doing so will be pointed toward the ladder conveniently placed between the processing plant and the crane. Taking or being around this ladder will then put the player within the sights of the single combine soldier in the mouth of the mine. This combine soldier gets the player’s attention and points them in the direction of the mine, showcasing that this is where the player needs to go by both displaying an unexplored area and continuing to reinforce the idea that an enemy presence means progression. Additionally, since player’s were initially struggling to get past this point I worked to position the crane to face the mine and I placed a health station on the crane’s balcony that would force the player to face the mine in order to use it.


Challenges:

One of the biggest challenges I faced while planning and building out the Deep Delves Mines level was my initial lack of knowledge about the Half Life 2 universe or the Hammer editor. Throughout the course of the class I would take time to sit down and conduct a thorough play through of Half Life 2 taking careful note of level design decisions that the team had made when creating the game. I wrote up a few deconstructions on particular levels that I found interesting breaking down in detail the flow and pacing of the level, availability of loot, positions of enemies, and structural details that helped guide the player in the right direction. Doing this helped me achieve a more detailed understanding of both the game mechanics and the universe in which it takes place. This allowed me to utilize level design principals such as the '“pile of crap” (a wall, ledge, or pile of crap that prevents the player from back tracking to a previous point in the level) strategy when moving the player through the level.

Alongside learning the game and how it creates a level to level flow, I also had to learn the Hammer editor to a point of understanding that would allow me to build out a complete level, starting from scratch. Throughout development I took on small, pointed challenges that focused on teaching me specific tools in the engine such as, gameplay scripting through triggers and nodes, vis leaf optimization, and custom skybox creation. However, due to the program’s age and finicky nature, running into bizarre issues with leaks or something not compiling properly, was a very common occurrence. Because of this, I had to learn the program’s syntax in order to effectively troubleshoot online as I often struggled to find solutions to my specific issue in Valve’s documentation. Not only did these assignments teach me to learn the fundamental aspects of the Hammer editor, but through troubleshooting and research I learned each aspect of the tool more in depth than the assignment called for. This gave me a better foundation for what I would be able to accomplish in my final level as I not only had practice with the editors basic tools but I also had additional knowledge about how each of those tools worked in the back end and how I could manipulate that to really push the engines limits in my level.

When building out the “Deep Delves Mines” level I did not initially realize just how large my level was until after I began white boxing it, scripting gameplay, and populating it with assets. One challenge I ran into throughout the course of development was keeping a careful watch on the total entity count as Hammer will not compile the level properly if there are too many entities throughout the level. I circumvented this by minimizing the amount of entities present at run time and instead relied on dynamically spawning them according to the player’s position and progression in the level.

Deep Delves Mines Quarry Editor View.PNG

Throughout development I also became aware of how ambitious my overall design was in trying to create an organic space in the sense that my level involved quite a bit of curved geometry and natural shapes which does not play nicely with Hammer. In order to get a curved object it needs to have quite a bit more polygons and takes an exponential hit to the draw time of the level and often causes Hammer to crash, specifically with the terrain elements. My work around to this was to have the terrain appear to be part of a larger curved hill that gave the sense it continued on since I was limited to the size and detail of the terrain pieces. I then tried to supplement this with a custom skybox that projected terrain around the walls of the level to give the sense that the hills continued into the distance however getting the skybox and the terrain to properly line up or look natural was a bit of an undertaking and I do not feel as though I was overly successful in this regard.

Deep Delves Mines Skybox.PNG

One of my biggest challenges and accomplishments in this level however was the creation of the drills within the mine. Unlike the crane, which was an existing Half Life 2 asset with build in scrip-table functionality, there was no model resembling a drill and no entity that could move, spin a drill bit, and be turned on and off. Additionally since I was unable to write a custom script to build in this functionality, I needed to get creative and re-purpose existing assets and script the drill using a few tricks.

I searched through the asset list and found a generator that I would use as the hull of the drill, a head crab canister that would be the drill bit, and I created a few blocks that would be the buttons and the standing platform on the drill’s hull. With the objects parented and the drill assembled I needed to then create a node path that the drill would move along and use triggers to start and stop the drill if I wanted it to be automated. I then needed to make the headcrab canister/drill bit spin and deal damage to the player. I accomplished this by parenting the canister to a small rectangle inside the drill that was spinning as fast as I had set it to. From here I then needed to create a button system that would both allow the player to toggle the drill movement and toggle the drill bit on and off. In order to not break the specific gameplay moments I had planned in the mines however, I also needed the ability to disable one or both of these buttons if I did not want the player to move the drill or turn off the drill bit. In the end, I feel as though I was rather successful in managing to create this custom vehicle and make it still feel believable both in gameplay and in the Half Life 2 universe.


Postmortem:

Overall I am very happy with how the “Deep Delves Mines” level turned out. I feel as though the pacing of gameplay was well structured with an extensive period of rest between moments of combat and gameplay tension allowing the player to get their bearings and safely explore the area. I am also very proud of my re-purposing of assets, namely with the processing plant inside the quarry and the drills in the mine. The processing plant required me to scale and warp existing textures to resemble things like conveyor belts or reinforced wood walls. While on the other hand, the drills were seemingly made out of thin air, using a headcrab canister and a generator at the base two assets and creating custom event scripting behavior to get it behaving like a drill. Additionally, I also feel like I was fairly successful in building out and lighting an environment that resembles a quarry, and to a lesser extent, a mine.

All this being said however I still feel as though there are some area where the level falls short. The two biggest weaknesses of the level are in the use of the crane and in the environment geometry. While using the crane as a bridge was a very clever idea I had a very hard time communicating to the player that this was where they needed to go. I used careful positioning of ladder and enemies to guide the player’s attention in the direction I wanted them to go however it was not immediately obvious that the player needed to lower the arm and then climb the side of the crane to walk across it. I should have called more attention to the ladder, on only leading up to the platform around the crane but to the ladder on the side of the crane since players often seemed to miss this one. Once the found this ladder however they were more likely to figure out the solution. In terms of the environment geometry I struggled quite a bit to make it feel organic. The hammer engine tends to not play nicely with terrain geometry especially at higher poly counts and sizes as this leads to crashing and compiling issues, meaning the piles of rubble needed to be very simplistic, purposeful, and carefully sculpted. As for the quarry itself, I was limited to using simple shapes with simple cutouts to create the main play space. While I could have carefully cut a complex hole out of a massive square this would make editing the level in the blockout phase extremely difficult so I opted to go with a collection of cubes and rectangles with slices cut off and positioned together to form a pit. This allowed me to customize the quarry a bit more and allowed for a more flexible design. However an issue I continued to run into was smoothing out the lips on the ledges and the angles of the quarry to feel more organic and less constructed. In an ideal world I would have been able to bevel the edges on the ledges and cut out a curved shape from a cube instead of an angular one, though neither of these is really possible in engine. In a similar vein, I also felt as though the custom skybox and overall level containment I created were rather weak. The construction buildings projected onto the skybox worked fairly well however the terrain fell short often not properly lining up with the terrain I placed around the edges of the map and caused some dissonance. In addition to this, I tried as hard as possible to stay away from using invisible walls to contain the player in an effort to maintain immersion in this environment, however given the usage of the crane as a bridge and the limits to my terrain usage players are able to get just about anywhere in the level, even onto the opposite side of the quarry where the strider is located.

If I were to start this level over I would take more time in the planning phase to really iron out the overall level structure and conduct small experiments or tests to see if my ideas were feasible. I would then spend significantly more time blocking out and smoothing the environment to be as clean as possible through preliminary gameplay tests; making sure to contain the level properly and that there are no breaks in flow, like the issue I was having with the crane. Only then would I populate the level with final assets and any remaining gameplay elements.