Castle of Flames
About The Level
-
A single-player level for Half-Life 2
-
Explore an old castle that combine soldiers converted into a secret base
-
Use a flamethrower ability to burn away obstacles in your path
Project Goals
-
Learn Half-Life 2's I/O System and particle editor
-
Create a working flamethrower in Half-Life 2
-
Incorporate the feeling of magic into the tech world of Half-Life
Project Info
-
Project Duration: 2 Months
-
Team Size: 1 Developer
-
Game: Half-Life 2: Episode 2
-
Tools Used: Hammer Editor, Source Particle Editor, Photoshop
Level Walkthrough
Scripting a Flamethrower
Learning I/O and Particles
Half-Life 2's Input/Output (I/O) system was a very different scripting system than I was used to coming from a code-based background. I focused on learning the basics of their I/O system and then I could apply the logic that I already knew from other systems to the basics of I/O.
-
I used existing tutorials to learn how to create particle systems and damage output.
-
I could leverage the entity system by placing the fire entity on flammable objects. This allowed flammable objects to appear to ignite when hit.
Using the flamethrower to burn enemies
Iterating on the Design
There were a lot of values that I had to get right on the flamethrower: radius, distance, how much light did it cast, damage...
Initially, the player had no weapon throughout the entire level. Instead they had the flamethrower and a fireball attack that they could switch between at will. This proved confusing to players and it added even more mechanics for them to keep track of.
I learned that simplicity is better than throwing lots of mechanics at players. Cutting the fireball let me focus in on the flamethrower and polish it more and more.
-
Create destructible cover and objects that gave the flamethrower more uses
-
Polish the particles and the lighting so that it looked more real
Burning enemies and destroying objects
Designing the Level Around A Mechanic
Teaching Players to Do Cool Things
With this awesome flamethrower created, I had to be sure that players knew how to use it and that it was useful in more than just combat. To do this I spread out a series of destructible walls that block the players progress. This means that the flamethrower has to be used multiple times in order to progress, the first one being in the player's starting room.
This ensures that the player knows how to use it and gives opportunities for them to use it again and again. Just making something isn't enough. Players need to know how to use it and be given ample opportunity to use it.
Some key things I learned:
-
Don't let a player leave the room they acquired an ability in until they've used it successfully
-
Vary how that ability is used to keep it interesting
-
Consistently require it's use so player's don't forget about it
Creating Destructible Cover
One concept that came through iteration was the idea of using destructible cover. The flamethrower ability was useful in combat and I had it required in places to burn down walls to continue. The gating mechanic was just there to make sure that the player could use it outside of combat and that it was taught in a safe place. Testers found this to feel out of place and unnecessary, so I started to look for ways to amp up it's usefulness.
I already had destructible walls implemented for gating, so I decided to add that feature onto most of the cover in the game. This allowed players to get more feedback from their new ability and it increased the sense of it's power and usefulness. Testers quickly enjoyed the feature much more; they loved one of the rooms I created that was filled with zombies and destructible cover, making it a high point in the level.