Thanks for sharing and detailed production breakdown
i thought there wouldnt be anything better than akeytsu for creating easy animations. im happy if i am proven wrong.
Keith, I just wanted to stop by and say: Thank you.
SilverTM presented their incredible Project Lambda made for Half-Life fans in UE4. If Valve doesn’t make Half-Life 3, fans will make it by themselves!
Project Lambda: Idea
The idea of the project came up to us pretty long ago, we had it for about two years. Since our main business is selling assets in stores, we began making lots of packs for our future project united by a common idea. The assembling itself started in January. It was then when the first screenshots were taken. Our aim was to try our hands at making a full-fledged game, and I believe we succeeded. We did it just for art and didn’t plan to create a complete remake.
When we started thinking about the location, the episode that immediately popped out in our heads was the arriving at Black Mesa. On the one hand, the location is quite big, combines both indoor parts and nature and is full of many interesting details – just what the artists need. On the other hand, this episode doesn’t require broad programming skills since we are moving through the whole location inside a train.
In fact, we were also going to make the second level, where Gordon already tests the portal and get transported to Xen for the first time. But the first level took way longer than we expected. So we decided to stop there for now.
Level Production: Early Stage
In the early stages, we tried to rip models from Black Mesa but it didn’t take us long to realize that this approach was not very effective and all that massive geometry was more confusing than helpful. So, the typical approach was: I flew around the rooms in Half-Life or Black Mesa, explored them and took screenshots. Then I did a blockout and moved to the assembling and lighting adjustment. If I didn’t have some assets, I put them in To Do list and used some temporary ones for a while. Room by room, I assembled all the levels of the episode.
As you probably remember, the original Black Mesa has three loading areas. In our turn, we were going to make seamless loadings that players wouldn’t notice. The main obstacle was that the location was too big and it was too expensive to keep all the geometry visible. Our solution was Level Streaming. We have one main level with the moving wagon, and the rest of the levels are being enabled through blueprints when we come closer and disabled when we leave them. All in all, there are two main levels and 35 levels with geometry.
By the time we started the project, we had researched everything we wanted considering Black Mesa a base and made a very long To Do list. All the objects were divided into several categories like Military Base, Office or Subway. Then we enriched the categories by adding the objects that would suit the topics but weren’t included into Black Mesa. For example, there are a lot of additional objects in Subway Pack, however, they were not used in Project Lambda. We also took the modularity into the account and made our models easy to use in the future. A total number of meshes made for the project is 1400!
For optimization, we used UE4 tools, such as MergeActor and LODs. Also, during the final stage of the project, we used Instance Tool to combine geometry into instance groups in order to optimize the number of draw calls in the scene.
Paying attention to the details is probably the main part of a Level Designer’s job. Basically, each of us had his own vision of the game levels: “I would make this room bigger”, “This door must be placed closer”, etc. This played an important role in our design. For example, the Railway Station room was redesigned four times. In the first version there were cables and steel trusses across the ceiling, then we removed to make the room brighter and less overloaded, then changed windows, walls, lamps and so on. We wanted to fill the level with interesting scenes like the one in Half-Life 1 where a scientist is missing his train. That’s why we did our best to build many small scenes: a wall is being painted here, people are waiting for a helicopter there. All of that creates an illusion of life. It is interesting to watch and even more interesting to design and create.
Above all, we wanted to make a breakthrough in visualization just like Black Mesa did it for Half-Life.
Textures & Materials
We have done a tremendous work with materials and textures. We strive to find a unique approach for each case and use masks for material adjustment to be able to get the most from a single texture. For instance, all barrels are initially white and you can pick any color for their material. This rule refers to all other objects, all of them are more or less customizable. Of course, we aligned our materials with Black Mesa, yet we tried to make them more up to date and realistic. Also, we always try to find how the object looks like in real life. It is nearly vital when you work with PBR.
Now, there are about 790 textures and 550 instance materials in the project.
When it comes to lighting, it is important to mention that all the light is rendered in real-time. It was done to cut the time necessary for lightmaps baking and save the space on the hard drive (tests showed that bearable lightmaps of the first room require almost 1Gb). Plus this type of lighting is easier to work with.
We used volumetric lighting and fog to lighten the dark places. Initially, we were going to make our project visually close to the Area 52 from Wolfenstein: quite a big dark space with point lights and spotlights. However, later we withdrew that idea in favor of having more light in the room. Though we still use a volumetric lighting system, because it is visually more attractive.
Besides, as you’ve probably noticed, each room has its unique lighting. There is bright sunlight in the hall where we start, the open spaces are more bluish and there are many underground places with no light. To be able to change and adjust the lighting dynamically we made a special blueprint.
There are about 10 shaders in the project. One of them is the main, and about 95% of all materials are based on it. Also, there are a few secondary shaders for special materials (glass, leather, plants, decals, etc.) I have been working on the main shader for about 4 years since my first steps into UE4 and constantly improving it, adding necessary functions during each new project. Now it can be used for making both very simple materials (just a color without a texture) and really complicated ones (with dirt masks, texture blending through vertex painting, color change by a mask, emission, etc.)
The Scope & Challenges
The whole project took slightly more than 2 years if we count from the moment we started planning it. For a long time, we had doubts and were not sure that we would ever begin the level assembling. It took us about 8 months to assemble the level, create geometry and blueprints, and add sounds.
It is really hard to say what was the most difficult part of the project. The biggest challenge was probably not to drop it unfinished. Obviously, we spent most of the time on the models and textures, because it is an art project. We had been learning many tools right along the way, for example, it took about 4 months to create the base staff since we had never made modular characters before.
Sounds and programming took a lot of time too because we don’t have any sound designers and programmers in our team.
We have done everything we were going to and we count the project as finished. However, we consider the possibility that we get back to the project in future and make the second chapter Anomalous Materials.
It is a fan project, we have never asked for money and not going to do it at all. We are fans and creating the project for other fans. Anyone who feels like it can download it here. Everything we need is to know is that people want it. That’s why we’ve made a decision: if the promo video receives enough likes we will start working on the second part. So, everything is in your hands. If you enjoy it we are ready to continue.
Find the Polycount thread here.