We Are The Lambda Generation. LambdaGeneration is a website dedicated to the video game Half-Life. ( We're basically really passionate about crowbars, headcrabs and anyone who has goatee with a PhD in theoretical physics… )

How not to build a level in ten days – An Ambushville retrospective

Modding & Development Source

As many of you may be aware, PlanetPhillip.com recently held the first of three planned mapping competitions, which would require level designers to create a map in ten days and feature the player being ambushed by enemy forces as the main attraction. “Build a map in ten days? How hard can that really be?” I naively asked myself. As it turns out it’s pretty damn hard! Let me tell you a story…

How not to build a level in ten days – An Ambushville retrospective

Be aware, this article contains huge spoilers for the level “Lost At Sea” which is included in the “Ambushville” mod. I recommend you play the mod first before reading this article!

The Initial Idea

BThXc4NIcAATkpF.jpg large

What shall I build? How will the ambush work? Am I excited about building this level? These are all important questions that I asked myself when I first started out brainstorming for this project. As is usually the case, my mind was completely blank at first so I did what I always do when I can’t think of anything cool to make, I browse the internet for images of old abandoned buildings. After about thirty minutes of searching I finally came upon it, the image that would be my salvation, the image above this text. What shall I build? An abandoned coastal defense fort. How will the ambush work? The combine will come to kill you once they detect your presence on it. Am I excited about building this level? HELL YES!

Day 1


I spent most of the first day building, destroying, and then building again until I got a rough size and shape that I was happy with. I tried to stick with very broad strokes when creating brushes (brushes are 3d shapes placed by the thousands by level designers in order to create map geometry in the source engine) as my Achilles heel tends to be that I will build a single room or area, spend 3 hours detailing it up only to realize that I would need to change the area significantly later on. I wanted to avoid this as much as possible as to be more efficient (It is also good practice no matter what level you are making!).

Day 2


Disaster! What was I just writing about keeping things simple at first? I spent most of the second day creating this wonderful Combine lookout tower, complete with walkway, detail models and structural supports that meet with the seabed below! Look at it, it’s magnificent! Unfortunately what I SHOULD have been doing was continuing to get the bare bones of the level complete so that I could start testing the layout and get some basic gameplay added to the map. This error would become a common theme in the days ahead!

Day 3


Moving more in the correct direction today. More of the basic fort is complete (you can see it has more depth to it now than on previous days) and there are some very basic boxy rooms inside where I have been testing various sizes and shapes for the player to explore. The large tower structure at the very back has been roughed in and I am now certain that I want players to climb to the top of this tower and that the pinnacle is where the ambush will be sprung. But how will the player get up there? I hadn’t answered this question yet. 6 days remain…

Day 4


Decent progress on finishing off the basic shape of the sea fort today. You can see that it is starting to take on a good shape and various walkways, windows and other navigation specific details have been added. No progress has been made on the tower yet, and there are still huge gaps in the fort on the opposite side from where this screenshot was taken. You can see that there is a fair amount of detailing in the form of rounded windows and steps, this is totally unnecessary at this stage in development. Boxes will do! The half way point is fast approaching and I’m not nearly half way done with the basic layout yet! Gulp…

Day 5


I was drawing a blank on how I wanted the player to climb the tower so today I focused my attention elsewhere. You can see in the shot above there are some game play elements added to the side of the fort (side closest to the camera) in the form of various scattered platforms that the player can climb in order to get to the second “floor” of the structure. I had multiple ideas on how I wanted the player to get to this second floor, but with only 5 days remaining to finish up the level I went with the most easily implemented solution, the jumping puzzle. I placed a lambda sign at the location the player would want to reach in order that they would notice it, however the location would later change to somewhere much more likely to get seen by players before they had started the jumping puzzle segment. Still no progress on the tower and there wasn’t an enemy in sight. You couldn’t even “finish” the map yet! Oh dear…

Day 6


Day 6 turned out to be very productive! I had managed to lay the groundwork and basic logic for the first major puzzle piece of the map – how does the player disable the Combine force field blocking their path? I decided on a design that would force the player to explore around the fort to find the two consoles that would, when both disabled, lower the force field in the main hall. These consoles would be linked to the force field visually via a blue beam of energy that the player could roughly follow in order to find the consoles (you can see a very basic version of the beam in the shot above). In hindsight the beams are probably way too “hand holdy” (is that even a word?) but they perform the task of showing players that these consoles are connected to the forcefield, and thus that disabling the consoles will allow the player to progress.

Day 7


A milestone! The map is now essentially layout complete! As you can see from the shot above, the tower has been fully built out and detailed (though it does receive more love later) and the player can now progress from the very beginning of the level, though the force field puzzle area, up a newly implemented lift in the center of the tower, trigger the beginning of the Combine’s ambush and then descend once again and find the exit! All the bare bones of the level are now in place, now comes the part that would require the most amount of iterations and testing : the ambush itself!

Day 8


I spent the entire day creating the Combine ambush that the player would have to deal with once reaching the top of the tower. Ideally I should have been at this point two or three days ago (although with a much more boxy and ugly level) as I faced the daunting task of learning how Combine gunships work basically from scratch, implementing said gunship into the level (Oh boy! That was fun I assure you! It still doesn’t work right…) and then working on the various Combine foot soldiers that would provide resistance on the inside of the fort where players were mostly safe from the gunship. After much trial and error, and many helpful tips from the live stream viewers (Shout out!) I had a basically functional gunship that was able to navigate around various paths in the level and give the player a good fight. The inside of the map was another story however… much work remained!

Day 9


All the broad strokes of the level were now done, but there were a thousand tiny holes to patch up. Today was the day that I sent out a version of the level for testing (Thanks to “Cardo”, “Negke” and “Rapowke”) and the list of broken, bugged and aesthetically displeasing things only grew with the feedback I received. Plugging all the holes in this sinking ship in only a day seemed impossible at this point so I had to prioritize! The visually displeasing things got pushed to the bottom of the pile. Game play bugs, progression issues and player confusion issues were raised to the top as priority fixes! Triage was the name of the game at this point. I had mapped myself into a corner with nowhere near enough time to give the map the tlc it so desperately needed. If I had stuck to my initial plan of boxing out the entire map very quickly then a lot of these issues could have been avoided entirely or at least identified much earlier, giving me time to incorporate more fixes and refine the game play to a better state. 1 day to go…

Day 10


This was it! With the end so close all I could do was continue to fix bugs and polish as much as I could in the time allowed. I had to re-work some of the insides of the level to better guide the player to the exit after the gunship was destroyed (an issue that all three beta testers had brought up), and I had a sickening mental list of areas that needed clipping adjusted (“clipping” is the process of adding invisible brushes to your level in complex areas to make it easier for players to move around in them, for example adding clip brushes around various stair railing so players cannot get stuck on them while ascending/descending) or lighting tweaked.

After much coffee, take away pizza and stress the map was finally looking good! All the major issues that testers had commented on had been addressed and I still had about two hours before the deadline was up, I spent some time on a final detail and visual polish pass, including finally building all the cube maps for the level (“cube maps” are points in the level where the surroundings are sampled by the source engine in order to generate appropriate reflections on all objects within or passing through those areas), these cube maps really brought the level to life visually as the Combine metal panels would now reflect the beautiful sunset on display outside! (You can see this slightly in the image above, look at the Combine metals on the watch tower near the camera)

Then disaster struck! My internet connection dropped, there was nothing I could do but wait. The deadline for the competition, 11:59pm, came and went and I grew more concerned and frustrated. Finally, at around 3:30am it came back up and I franticly submitted the map over email to PlanetPhillip. After a sigh of relief I went to bed!

In Closing

Participating in the Ambushville competition was a great deal of fun. It’s amazing how productive you can be when given a deadline, the looming point of no return really gets you to focus on what is important in your level and lets you trim the fat in a very efficient way. Certainly many mistakes were made along the way, but that is part of the level design process! Learn from these mistakes and don’t repeat them! The most interesting part of the whole process for me was seeing how players approach your level by getting beta testers to record a demo of their playthrough. You can gain so much valuable feedback without anyone writing a single word with this process. As it turns out, players are scared of going into water without at least a little nudge, something I had not anticipated and wouldn’t have acted on if I hadn’t seen demos from my testers.

Lost At Sea” is available now as part of “AmbushVille”, a mod containing ten single player Half-Life 2 Episode 2 levels for your enjoyment!


[Ninja Edit!] I have put together an analysis video of the level which talks a lot about the design of the map and all the problems and “happy accidents” that occurred during development, if that sounds like it would interest you the video is embedded below.



  1. Great post Daz, only just got round to catching up on Ambushville and everything.

    Love how you shared your development here, shame about the internet issue though, bloody Openreach!

  2. Nice post Daz! Really good overall, but I think my favorite part is how you took the time to explain the terminology many mappers wouldn’t even give second thoughts about needing to explain. Nice work and congratulations on winning!

  3. Nice to see a development journal sort of article on hammer mapping!

    Also nice map Daz!
    Gona play this tonight

  4. Wow, interesting insight into this, I really love the idea of the map here, I hadn’t seen the competion you mentioned, so is it like a free map pack you can download?

Leave a reply

Sign in via Steam to skip spam and contact fields.