top of page

Lab Break

Goal: Create a playable, art-passed and complete level from scratch in just 2 weeks!

Lab Break Cover.jpg

Built for Sven Co-op, a cooperative mod for Half-Life (1998) on the GoldSource engine which used CSG brushes to create its levels.

​

Me and Kourosh Amirhosseni took on this effort as a team and came out victorious with a map that offered nearly 30 minutes of gameplay.

GoldSource, The Difficult Engine

GoldSource uses a CSG system to create the mesh in its levels. These meshes are called "brushes" and there are quite a lot of limits when working in the Editor:

  • A brush can only hold a primitive shape and if it's non-planar or not convex, it will throw errors. Anything more complicated than a pyramid or a cube needs to be split into multiple shapes.

  • Unlike modern engines that let you have open skies, here you need to "box in" your levels. Every side (floor, walls, ceiling) needs to be closed off by a brush and any leak in this geometry will break compilation which lead to us focusing on interior spaces rather than open ones like jungles.

  • Each level needs to be compiled before it can be played and tested, slowing down workflow.

  • The Editor cannot preview lighting and so, for whatever small tweaks you made to the lighting, you had to recompile the entire level's lighting which could take between 2-15 minutes.

  • The list goes on and on with more difficulties....

 

It's due to all these limitations that this 2-week challenge was much more difficult from what you'd expect and​ almost a miracle to pull off. It's also why I cherish modern engines so much for allowing the creators to spend their energy creating the game and not fighting the engine .

Idea Generation & Workflow

With no initial idea of what the level would be, I suggested we have a brainstorming session to come with the setting and plot while placing the  "2 Weeks" text right in the middle to remind us of the time-frame that is set in stone.

Brainstorm.jpg
Narrative.jpg

After connecting the dots, the level's narrative was planned and the playthrough was split into several sections.

Based on our situations in life (available time and energy) we decided that the best approach would be to:

  1. Divide the sections between the members so work could be done simultaneously without having to wait for one another.

  2. Each member creates their sections in full from start to finish.

  3. The sections are then all stitch together at the end and a quick pass is made to make sure it feels seamless.

Managing Schedule & Deadline

 

14 days was a pretty tight time frame to deliver such a project. Each day mattered and needed to be spent efficiently. With it already being the end of the first day we only had 13 days to account for, so I set up the deadlines as below for maximum efficiency:

Deadlines.png

While I had worked with deadlines before, they were never made around such short time frames. I was too optimistic about our capabilities and also severely underestimated the amount of work that was required, especially for Polish stage. This was a big mistake of mine and the result was us missing half the deadlines and with me having to stay up all night on the last day to finish the polishing stage.

​

Still, we persevered and by constantly adjusting our course we managed to reach the publishing deadline. The experience taught me a lot. There's a lot to learn from your mistakes and I'm glad I had the opportunity to make such a mistake early and since it was for a personal project, it was in a space that wouldn't bring real harm like it would if it was an actual commercial project.

​

Since then I've had a lot of time and experience to improve myself on the matter. I've also learned that while veteran's estimations are more accurate, even they still miss the mark with ever-present optimistic views. As such, over time I've improved both my skills and my mindset to deliver much more realistic estimations that don't put the company at risk.

Course Correction Measures

Scope Creep Correction

The intent was to make a map with decent length and quality rather than just "make something". During the first half of the Blockout stage many parts were created and even more were intended to be made.

During the second half we realized that we're not actually going to have enough time for all of them.

​

Scope creep happens but what matters is how you handle it. First thing we did was grasp our situation and come to the understanding that the sections we had planned and hadn't started making needed to go. That was the easy part.

​

The next part was understanding that even some of the sections we had already made needed to go too. to.

Axed Parts.webp

Some of these sections were in their prototyping stages, some where fully walkable, some even had their scripting work finished and only needed an art pass like other parts. Still, no matter what their state they all translated to one thing: More work. Work which we did not have the time for. We could either keep everything but deliver a poor experience or cut them out and focus on making the remaining parts reach their full potential.

​

We took an axe to all these parts American Psycho style and cut off anything and everything that wasn't necessary. This real-time course correction was one of the main reasons we reached the 2 week deadline with the final product offering decent quality.

Prefabs and Premade Assets

 

One of the first things I did was make prefabs for objects that could share the same visuals all through the map (like doors) and make modular prefabs that could be used anywhere just with a fresh coat of paint.

Prefabs.webp

Next one was recycling assets from previous projects. I had many incomplete projects from before and they were all a bucket of resources to pull geometry from. Assets already created and pre-test, now all I needed to do was refurbish and adapt them to this map's goals. It's often more efficient to reuse older assets rather than starting from scratch.

​

Even the final boss's arena was amongst these recycled assets as it fit the level's combat perfectly!

Boss Arena Before and After.webp

To speed things up even further we used public ready assets. Many other mappers had shared their prefabs and models for public use and we used them for everything that wasn't special or unique to our map and could be generic (like chairs, server computers, etc.). This allowed us to speed up our development process without it being an asset flip.

Level Design Details

Some problems I solved and some mechanics I used to make sections more fun.

Hiding Enemies.webp

A famous "door problem" is having the Player stay at the entrance of a doorway and fighting from there rather than stepping into the room. The same problem would exist here so I took precautions, placing two rows of book shelves and hiding the enemy soldiers behind them. From the entrance the Player can see these enemies so he steps into the room and only when he is fully inside do they make contact, making it too late for the Player to run back to the doorframe.

Server Room Broken.webp

One part the Player enters a Server Room which he has to wreck. Enemy soldiers are placed in this room alongside the destructible servers. This was done to create a destructible arena where as the fight goes on, more servers (which act as walls and cover) get destroyed which dynamically changes the layout and the rhythm of battle, creating a fun and unique combat scenario

Coolant Overview.webp

The Reactor Coolant System section requires you to reach the computer at the end of the platform that is suspended on a pitfall. The layout relies heavily on verticality offering 4 levels of height, allowing for a much more fun combat encounter.

Boss Room Design

 

You're an augmented laboratory experiment who has wrecked havoc during your escape. What's the climax to all of this? Facing another augmented laboratory experiment who's supposedly using newer technology.

​

Knowing the Player had passed so many different combat scenarios before, I designed the final boss  arena to surpass it all, offering dynamic power struggles, verticality and adrenaline more than any of them.

The Intro

 

The intro needs to hype you up and set the mood. Reaching the boss room entrance you are first greeted by the main antagonist (the creator scientist) through the speaker above the door, telling  you that you are not their only superhuman and that they have exact replicas of you but with even better augmentations. The door then opens and you can walk in.

​

There on the raised platform in front of you, a small lift brings the boss up and into view, setting off the combat.

AI & Verticality

You are now up against the boss. A flat won't cut it. With the implementation of verticality the room is split into 3 levels. The AI requires hand-placed nodes to move around and through vigorous experimentation I was able to encourage the enemies to use all 3 levels and even prefer higher ones, despite their AI being from 1998.

​

Items are scattered across all 3 levels requiring you to move through all of them to stay stacked and alive.

Spicing It Up Even More

The map is designed and balanced for 3 Players so, having the boss be alone wasn't interesting. Everyone would just pile up on him. To fix this I set spawn points for other enemies to enter the arena and help him, but I specifically set certain limits and logic to stop it from becoming tedious. I had 2 types of enemies to spawn and I set the following logic:

​

  • There would be a maximum number for each enemy type that can exist at any time. When that cap is reached, it waits until one of them is killed before it can start spawning another one. The Players should be challenged but not overwhelmed.

  • Each enemy type's spawn rate is different, having the "fodder" enemies spawn faster while the "special" ones spawn at a slower rate. This was done to balance the fight and give the fight peaks and valleys.

  • Each enemy type has a limited number of tickets. When that many of them are killed they stop spawning indefinitely. This was done to allow the fight to actually end at some point.

  • All enemies wear black clothes except for the boss who is colored red to easily distinguish him from others.

  • I played and tweaked out every single variable until I myself -- the creator who has spent the last 2 hours tinkering with it -- found it fun and addictive. I then had it playtested by my teammate and later some friends to make sure of it.

​​

There are also Trip Mine pickups that cause heavy damage which the Player can use to set traps and control the fight with.

Plant Traps.gif

All of this resulted in a fight that is challenging, engaging and fun.

Verticality Fun.gif
bottom of page