Kyomaps - The Mapping Portfolio of Jason Gimba

[ Home ] [ Mods ] [ Professional ] [ Resume ] [ Links ]

 

Sebastian: The Life of a Mod

Sebastian has been released and in my effort to get it done before the end of 2010, I ended up foregoing the fun "developer commentary" mode. Nevertheless, I thought it would be fun to look back on Sebastian's development. Unlike my professional work, a lot of my modding work comes directly from my head, so I don't tend to keep a lot of write-ups and maps. But Sebastian did have a few sketches and plenty of development revisions, so I'll try to do my best.


A Brief History

The hospital was my favorite part of Half-Life 2: Episode One. I believe it's because unlike the rest of the episode, which tends to be more methodical and a little more focused on puzzles - whether that's operating Citadel machinery or pushing cars over the Antlion mounds - the hospital was a pretty no nonsense shotgun-to-the-head fight. When the music starts, you know what's going on. You're going to cut loose and kill Zombies or hapless Combine Soldiers who happen to be in your way. It was a refreshing moment.

At the same time, one of my favorite games of the last couple years was Mirror's Edge. I hated it at first, as did a lot of people I think, for its trial-and-error gameplay. Eventually I overcame this and had a lot of fun with it. One of the things I loved about it was the sense that you were fleeing insurmountable odds. This was an FPS that encouraged you not to shoot. Because, as we all know, too often we play as the invincible super soldier who fears nothing. Yet, we'd also agree that the first few minutes of Half-Life 2, when you're running from tenement to tenement to stay one step ahead of Civil Protection, are among the best. Much like a stranger in a strange land, you are urgently being whisked forward without being able to stop and ask questions.

So with these two things in mind, I set about designing a mod that emphasized these elements. It was realized early on that before Freeman could be armed to the teeth, I wanted him to face his own insurmountable odds. That came in the form of the Strider who bursts onto the scene, breaking up the relative calm. There's nothing you can do about him. You can only take cover behind cars and hope Barney can find a way out. You are soon separated from your pal as you enter the parking garage of the hospital, with a promise to meet up later. After a slow build-up in the parking garage beneath the hospital, you eventually find a way to reach the main floors and go about wrecking havoc with your boomstick.

Course, the Strider from earlier didn't forget about you either. It returns at key moments in a relentless attempt to finish the job, shooting through windows to get you.


The Layout

I am something of a minimalist when it comes to level layouts. If I can't justify a room for some gameplay reason, I lean toward not having it at all. A reason could be to host a major battle, to provide exploration time, to provide downtime between encounters, to showcase a new weapon, etc. I believe that something is perfect (or at least, ready to go!) when you can remove nothing else from it without compromising the design.

This is contrasted against a meandering stream-of-consciousness kind of design where a designer tunnels on and on, figuring that the gameplay is inconsequential to the physical surroundings and can always be slotted in after the fact. Part of this is because of the limited time I have to work on maps, so every area needs to count. Part of this is also because I feel that rooms are like characters. Just as two-dimensional characters are lousy at telling a story, so too is a world of corridors and arenas that don't seem to have a purpose other than to serve as corridors and arenas.

Sebastian had a few crude sketches that served as the basis for its overall layout.

Strider Hospital

The earliest seeds of what would become the mod started back in late April 2010 with this map. At this point and for most of the mod's development, I referred to it as "Strider Hospital," with the overarching theme (on top of replicating that great hospital gameplay) of Freeman being pursued by a tenacious Strider. Although this layout was not the one I ran with, it did establish the four basic cornerstones of the map. Namely, the exterior portion of the map, the parking garage, the hospital itself, and some kind of final showdown with the Strider on the roof. All four of these archetypes were honed and developed for the final map.

What was also important to note in this early map (excuse the chicken scratches) is that the hospital loops back on itself. This is based on the idea that the elevator shaft is the only thing that leads to the roof, but it gets stuck on the 2nd floor. In order to reach the roof, you needed to get to the stairwell at the other side of the hospital to reach the 3rd floor, and then circle back around to the elevator shaft. The stuck car now serves as a platform for reaching the ladder in the shaft that leads to the roof.

Strider Hospital

From this draft, I did a shotgun pass on the map, where I just tried to put down the basic layout to see how it felt. I don't usually follow the debug orange texture approach because even at this stage, I'm interested in what textures I'm going to be using and how they look together. Since this map has a real-life grounding in similar maps in Ep. 1, it was important to get to know their texture schemes and how they were used in Valve's maps. A few months before I had the plan to do a hospital, I had run through Valve's hospital and noted different texture combinations, the dimensions of certain details, and so on. These helped inform my version of the hospital.

Structurally, some things were immediately clear. One, the layout of the parking garage and where the elevator was located made no logical sense. The lobby stuck out into the middle of the underground road. How would cars get to the opposite side of the garage? Furthermore, it was obvious that the size of the garage had a big impact on the length of the hospital hallways above. They had to run from the elevator to the far side of the building where the Strider would be. One long hallway wouldn't cut it. We needed a full-on lobby or some other structure to break it up, and also be judicious about how long the parking garage was. These were things I let simmer for the next few weeks as I thought about where I was going with this.

The second map came from late June 2010. I believe it coincided with time-off from work for Independence Day. Here, many of the structures were part of the final map. The exterior and the parking garage layout are almost identical to the final version. The hospital is very similar to what this sketch is like, with a few alterations. There used to be two emergency rooms and there were several more recovery rooms on the second (fictionally, the third) floor. I dropped the second ER because with the limited hospital prop set, I had trouble making it look unique from the one before it. Likewise, on the second floor, the S-shaped hallway was eliminated and replaced with another hallway that maximized your encounter with the Strider.

As such, the hallways in the final version of the hospital present three distinct permutations with the Strider - running toward it, running away from it, and running alongside it.

From here, things evolved at a fairly steady rate. The map that would become the final... maps... was started in late June 2010. Until late October, it was developed as a single very large map, like Powerstation 17 was. But over time and as gameplay was added, I began to run out of entdata. On top of that, my desire to use a few expensive entities, like func_smokevolume in the parking garage basement, led to missing effects in other parts of the map, presumably because I was exhausting a global particle limit. On top of that, synchronizing the street and the skydome where you would fight the Strider was problematic. So, I decided to cut it into two maps at a natural break in the action - the elevator getting stuck - and that was really a good idea, since in the final version the entdata was about 85% in the first map and 98% in the second. No way that would have ever fit in a single map! But for those who say Sebastian plays like one long map, you'd be right. It was at one point. :)

Oh, the name. Even though I kept the Strider Hospital moniker for a while, I did have to settle on a real name for the mod. I always liked the name Sebastian for how it sounded. He's also the patron saint of plagues, among other things. So the name Saint Sebastian for the hospital sounded good and didn't seem to coincide with any real hospital, except for the one in the TV show Lost, which was just a coincidence. Maybe I should have put that Dharma Initiative logo somewhere. I couldn't really think of any other name, so I just stuck with Sebastian.

In the end, there were about 200 drafts and backups of the map files from July to December. I only had so much time to put in massive work on them, mostly over the weekends or during vacations. I took a break from it over August.

Anyhow, here are some interesting things that changed over the course of the mod's development.


Evolution of the Map

The Intro Corridor

So in the previous map, you might have noticed that the intro corridor looked a lot different. In fact, it looked like the picture above. The original draft was a bit less straightforward and meandered between buildings, rather than just getting to the point. One thing I didn't like about this was the way the buildings cast shadows on the ground that darkened everything. I remembered a while back, I had a map for another mod project of mine, "Propaganda," which I never finished. I liked how that started.

It looks a lot like the start of Sebastian, huh?

Seb 2 Seb 7

I basically rebuilt this area from scratch for the intro corridor. Incidentally, a lot of the buildings I constructed for Propaganda found their way into Sebastian, in a different configuration of course. This is part of the reason why Sebastian's exterior came together relatively quickly compared to the rest of the mod - all the concepting was done in an earlier mod. If you want to go even farther back, the earlier iterations of these buildings also showed up in my original "scrap map" Propaganda.

The Strider's Entrance

The Strider needed to enter the scene in a really dramatic fashion. The tunnel in the screen above was the first stab at this. He was going to come barreling down that tunnel, sort of like his appearance in that one Half-Life 2 level where you are making you're way down a tunnel and the Strider charges at you from behind. But that tunnel was enormous. I'm not kidding. And this tunnel here, the poor Strider could barely fit. He has a bit of a wide stance when he does the crouch walk, so he needs even more width. Basically, the height of the tunnel just looked silly in this context, so it was replaced by the building and skybridge.

Seb 4

The skybridge was a direct homage back to that early Valve trailer, right down to the 6m sign. :)

The Hospital Elevator

When the player calls for the elevator, the power goes out. Therefore, they have to take a jog downstairs to the generator room to turn the power back on. Complicating this is a valve that is needed to raise the parking garage gate that leads downstairs. For a while, there was an ordering issue here. How could I make sure that the player interacted with the elevator before being able to go downstairs? In this original draft above, the question was unanswered and really confusing. The side door which the Zombine bursts from in the final draft was originally a valve door. Behind which, there was... another valve that you had to take to the other door.

I mean, that's confusing just reading it, isn't it?

The Zombine was the solution to this problem. On interacting with the elevator, the power goes out and the Zombine bursts through a locked door, opening up this side room where a single valve is. And the obligatory Poison Headcrab, of course. It's also a nice little surprise, a total win-win.

The Emergency Room

The ER went through a few different drafts. This was the original one. Originally, the hospital's design was a lot more squiggly and had several points where you had to duck into other rooms, such as the ER, because something blocked your path. I could never get that right. Rubble always has to come from somewhere and since the floor above was playable space, it couldn't be the ceiling. These massive rubble piles just looked bad and had to be super tall to make it look like you couldn't go over them. In the final version, everything was re-routed to be more direct. No little shortcuts into the other rooms - the hallways just went there. Additionally, for the ER itself, the final version forces you along a U-shaped path through the shower area. In the original, you could just hop over the counter and skip the encounter.

Something else worth noting with the ER is that here and in the security office, I really wanted to play around with sickly green lights. Batman: Arkham Asylum used that effect in the morgue and I thought it added a lot. It took a while to try to dial in exactly what RGB values worked for this. Most the time, I ended up with something way too green. I eventually ended up using Valve's standard for Combine lighting and shifting the hue of the light from ice blue to ice green. This was also contrasted against the standard yellow incandescent lighting in the shower area. Without that contrast, them whole room was drenched in an unappealing green.

Refractive glass windows were the final touch, partially obscuring the room from the hallways while still hinting at a large room behind them.

The Cafe Baltic

Originally, the Cafe Baltic was another lobby, very similar to the one on the floor below. In fact, it was so similar that it elicited confusion from a playtester who was immediately concerned upon reaching this room. He thought he had gone in a full circle and came right back to the place he started. I decided that the room needed another theme and so a cafeteria was built, the walls retextured, and a pretty heavy bloom was added just to make it distinct. This only took a couple days and I was really happy with how it turned out. Confusion was gone, and here was another room that added visual variety to the hospital while still reinforcing that it was a hospital. With hospital food. My brother insists that the hospital in downtown Portland has fantastic prime rib on Wednesdays.

Roof Access

This concrete room serves a couple purposes. First, it eats up some of the considerable space between the elevator shaft and the rooftop where you fight the Strider, and it also serves as the last restocking point of the level. Originally, it was kind of claustrophobic. The texture scheme was reminiscent of Powerstation 17. Playtest commented that it really didn't "fit" the hospital theme. So I did some revisions here, just like with the Cafe Baltic. Tile was added, albeit using a grimier texture, to continue the tile theme elsewhere. Exposed concrete was minimized. The ceiling was inspired by the one in Kleiner's lab. I liked the final result.

The Strider Battle

The final Strider battle using the Hopper Mines was kind of a pain to implement and went through about three different implementations. In all three revisions, the goal was the same - allow the player to use Hopper Mines to destroy the Strider, which are continually replenished by Claw Scanners.

Claw Scanners made sense as the delivery mechanism. Not only are they known to accompany Striders, acting as sight beyond sight for them, but they are also naturally able to deploy Hopper Mines, which is briefly seen at the end of Episode One. This seemed l
ike a good match!

The problem is, the mines that are dropped are completely unaccounted for. There wasn't an easy way to know how many mines existed on the ground and how many more had to be brought in. Likewise, there was no way to know when a mine was exploded, both because the mine is created on-the-fly from the Claw Scanner, and because Hopper Mines lack an "OnExplode" I/O callback.

What I wound up doing to solve this was using a trigger_multiple along the surface of the roof that filtered only for Hopper Mines. The trigger calls a counter that keeps track of how many mines are inside it. If a mine has left the trigger, it is assumed that it either exploded or was thrown away (and will explode in the future as any !activator who leaves the Trigger will be automatically killed in 10 seconds). A timer does a continuous check every few seconds to see if we have a deficit of mines, and summons one Claw Scanner in each interval if we need more. The Claw Scanners follow a series of path_corners. On passing any of these path_corners, they can randomly choose to drop the mine they are carrying. The last path_corner over the arena will force them to drop the mine if they haven't alteady.

I had settled on the timer-based mechanism as the third and last revision of the battle. Previously, I had attempted to tie it to Claw Scanners completing their routes or dying, or Hopper Mines entering and leaving their trigger volume. Neither was especially reliable.

The system is not completely foolproof. It is possible to get a couple more mines than I intended. Likewise, sometimes when the mines impact against the Strider, the hit doesn't count. As a result, taking down the Strider can take anywhere from 6 to 10 hits. I think what probably happens is that the game doesn't always filter that the mine did the damage, depending on various factors in code. A filter was needed to commit increased amounts of damage to the Strider. If you try killing a Strider with Hopper Mines in standard Half-Life 2, it takes about 20-30 of them, which is totally impractical for a boss battle. So I cheated a little. It's not like there's an existing scenario in Half-Life 2 involving Hoppers and Striders, so the player has no point of reference for how many hits it should take. :)

Still, I think the end result is worth it. I got really tired of the cliche of finding that one lone RPG on the other side of the arena to kill a Strider and wanted to do something a little different. Plus there's kind of a fun David and Goliath thing here. How do you take down a giant using only your zero-point energy field slingshot?


The Last Few Weeks

December was a mad rush to get the mod done because I really wanted it to be part of PlanetPhillip's Mod of the Year contest. Whether I thought I had a chance of winning or not, it was a great motivation to finish it (just as unemployment was a great reason to hit the gas on Powerstation 17, heh heh). Many, many things were added in those final weeks.

  • There was a fair bit of custom texture work.
    • The most obvious of which are the murals which were added the day before release. I had always wanted to do some propaganda in a map. I especially love it when it plays ironically with what's around you. For example, in an early train station map I was working on, I wanted to have a bright and cheery "Let's Take The Train!" mural with happy smiling people amidst a sea of dead zombies and civilians. But finding free resources for propaganda was kind of hard. On a whim, I decided to do a search through the US Government pages, since virtually everything the government does is public domain. And the National Cancer Institute had a massive treasure trove of doctor-related propaganda. I'm not kidding. You want doctors consulting with patients? Scientists holding test tubes? Diagrams of the human body? They have it all. Run it through a few filters in Photoshop, do some desaturation, make a normal map, and you have a nice conversation piece for the people in the waiting room.
    • Less obvious was the hospital signage. It was made to mimic the signs that Valve created for the hospital, but these were made from scratch using textures from the Blender Texture Pack. Aside from adding to the hospital ambience, a big motivation behind the signs was to reinforce Barney's order to you - to get to the roof. Signs for the stairwall emphasize that it has "No Roof Access" while the signs near the elevator emphasize that the 4th floor is Roof Access.
    • After about a day of struggling (and learning quite a lot about how .vmts worked), I got the refractive glass to work. You only see it on that one tenement door in Half-Life 2. I made a new .vmt that let me call those existing textures on a brush. It's the small victories!
    • The roof's surface was kind of blah, a very large expanse of rubber roofing. So I made a vertex blend shader by rolling out a custom .vmt that again leveraging existing Valve textures. It's really easy to do this. I should do it more often because the blended displacements break up texture monotony and look "next gen" to me.
  • Monitors were added above the generator panel to remind the player to go back to the elevator. For one playtester, it wasn't clear to return there once the power was back on. The monitors were always there in some form or another, but weren't functional.
  • The many side rooms were added along the hospital hallways. They came out of a need to have more locations to hide goodies from a playtesting suggestion. But they also helped break up the combat by providing nooks and crannies to explore.
  • The mechanism for replenishing Hopper Mines in the Strider battle was changed to the aforementioned timer-based system. The paths of the Claw Scanners were also adjusted to ensure that no mines would drop onto the vents.
  • Last minute combat tweaks included giving more Combine the AR2 rifles and adding the rappeling Combine to the final Strider battle. The make-up of Zombies in the final parking garage encounter also changed. These changes helped to form the final difficulty curve.

Minor Things You May Not Have Noticed!

  • There is a G-Man encounter in the second map. From the start at the elevator, go to the right and look down the hallway behind the door.
  • Doors you have to go through are red whereas ones you don't are white. A small Mirror's Edge homage.
  • Barney will skip his opening monologue after "Look out, Strider!" if you run straight for the parking garage entrance. We know your time is valuable and if you don't want to watch the cinematic, then fine, we'll just skip it. You most likely know what you're doing anyway if you left Barney behind, right?

Post Mortem

What Worked?

  • Barney. I think the addition of choreographed scenes added immeasurable awesomeness. It's polish that I think most fans would come to expect from a good HL2 mod. I gave myself a crash course on Faceposer back over Thanksgiving and with relatively fruitful results, roped korgmeister into doing Barney's voice. Now, he's Australian, but you wouldn't know it from most of the dialog. He did a lot of rehearsing and produced many different takes to choose from. I put a lot of effort into his expressions and gesturing to help sell the character. In the end, Barney does a good job of bookending the mod, providing both an intro and a proper outro that Powerstation 17 lacked. Key to all of this was keeping a tight rein on how much dialog was going to be in the mod. I knew I wanted to customize every line that was said, so I had to use a finite number of lines. After all, given the length of the mod, I didn't need a whole State of the Union speech.

    As some reviewers have mentioned, they enjoyed the Barney sequences and wished Barney played a larger role in terms of being a comrade. I did toss around the idea of Barney helping the player take down the Strider at the end, but by that point it was too close to release to seriously contemplate.

  • Improving on Powerstation 17. While Powerstation 17 was a well received mod, there were a few common complaints about it, and I feel pretty much all of them were addressed in Sebastian. By far the most common was the way the mod ended. After you destroy the Combine Gunship, it just fades to black and rolls the credits. It is an extremely abrupt ending. Barney was instrumental to fixing this in Sebastian. His arrival at the conclusion of the final battle gives us about a minute to ramp down and properly end the mod. The use of music was also restrained. There isn't as much music in Sebastian and what exists is staggered across the mod and doesn't repeat. Music cues will also fade out properly if the player was incredibly fast and made it to the following music cue before the previous one is finished.
  • The size of the map. As I alluded to earlier, there were other mod ideas that came and went between Powerstation 17 and Sebastian. Propaganda was one of a handful. There was something to do with a radio tower on an island, that lighthouse idea, even another hospital. Yet all of these basically had a common thread - they were meant to be bigger and longer than Powerstation 17 was. After all, one of the chief complaints about that mod was its length.

    But ultimately, I had to come to grips with the fact that to create a mod to the detail and quality I wanted, within a reasonable time frame, there was no way it could be much larger. Some mappers are happy to just tunnel away and produce mods that are many hours long, or flit from one location to the next, never really dwelling or fleshing out the details. And, truth be told, there are more than a few mod players who are more than happy to play mods that are really, really long. But I take no pleasure in things like Offshore or Strider Mountain. I'd rather have the short mod that's detailed to the n'th degree and really fun. My favorite mods are things like Minerva, Mission Improbable, and Union. Relatively short, but meticulously detailed and strongly capturing that Half-Life spirit.

    So developing Sebastian as a single map, relatively small on paper, was the right thing to do. Because, invariably, it ended up being a lot of work to get to the level of quality I wanted.


  • Gameplay and pacing. After some exposition in the city streets and the build-up in the parking garage, I believe the mod succeeded in its goal of providing a fun environment for blowing apart Zombies and Combine in a hospital setting with your trusty boomstick. The addition of the side rooms not only provided ample space to put supply crates (as this is a hospital, you wouldn't generally find ammo off-the-shelf), but added some exploration that increased the gameplay length, contrasted against the combat, and produced a fuller overall experience.

  • The Strider battle. I'm happy that I stuck with it, despite issues with how to implement it, because it's a novel way to bring down the beast that, to my knowledge, hasn't been done before and yet stays within the theme of Half-Life 2.

What Didn't?

  • The lights in the parking garage. Because all of the lights in the garage turn off when the power goes out, it's a very large expanse of named lights. All of the lights can be toggled, which makes them somewhat dynamic. Not as expensive or dynamic as a true light_dynamic, but still dynamic. As a result, they cast direct lighting, which is what causes the heavy shadows here because the lighting doesn't bounce off surfaces. But worse, sometimes props would get confused about which lights were lighting them. So, a recurring problem the garage had was pitch dark props in the middle of bright light.

    Not really wanting to get rid of the dark sequence, there were a few ways I tried to mitigate this. The most basic was moving or removing props that were in the darkness. Other tricks were to add geometry to these areas to prevent the player from taking the props there, as well as increasing the radius of lights. That said, it's still possible to get the dark props, particularly if you save/reload when props are in certain areas of the map.

    In retrospect, if I knew about that limitation, I probably would have designed the garage in a different way to minimize the amount of artificial lighting needed. I believe so long as there was an ambient light source that was always available, such as light from outside or the car headlamps used in the basement, the problem would at least be minimized. It is far less obvious in the basement, where the headlamps are used to help spotlight where the player is meant to go.

    One little trick about this section - to get the cubemaps to not look shiny and glossy in the darkness, the level starts with all of the lights turned off. So the cubemaps are built assuming darkness, and as such don't glow. Course, they don't really shine either, but you tell me which looks weirder. :)

  • The title screen. It's kind of funny, the very first thing you see is something I don't really like. The streets at the start are probably the most photogenic part of the mod, in my opinion, but having the title screen be the same thing as the start of the mod would look silly. If I was to do it again, I probably would have picked the long Strider hallway on the second floor of the hospital and have the Strider walk by every now and then.

    As if to compensate for this, I tried to make the chapter selection images look really nice and included NPCs in them instead of having them be boring screenshots.

    Incidentally, that Claw Scanner in the title screen is kind of spastic, isn't he? He's meant to be photographing the corpses, but someones he whips around very quickly or tries to aggressively back up against walls. His SetFlightSpeed doesn't work, so there wasn't a whole lot I could do about him. Once he knocked over the monitor as he flew off. I haven't seen that in the final release, but I would imagine if the stars were aligned right, he probably could. :)

 

 

All original content is copyright 1997-2011, Jason Gimba Back to Top