top of page

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

Detailed tutorial written for creating this specific flamethrower in Hammer's I/O system and Particle Editor

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. 

bottom of page