Many people see the Source engine as an antiquated relic. They compare it to other contemporary game engines, and they try to prove that, according to some subjective standards, it is somehow “uglier“. That’s an argument that will most likely never end (at least not until Valve reveals Source 2, or something).
I suppose the reason for this perceived outdatedness – in both graphical quality and technical features – is that, at the end of the day, it’s best to make sure that your game is able to impress as many people as possible, rather than trying to impress a scant few with unoptimized eye candy. Those scant few will eventually journey to other games in search of their next graphical fix anyway, so what’s the point?
So Valve’s approach makes a lot of sense, when you look at it from a strictly objective point of view. Besides, the Source engine has got a lot of horsepower in it yet, although much of it remains untapped. Some of this horsepower isn’t all about… well, speed. It’s also about achieving better… handling, so to speak. Just like the sort of horsepower I am about to introduce you to!
Meet Biohazard. You might recall he created the fan-made Source Shader Editor, as well as a unique dynamic day-night/weather climate system, also for Source. But what he’s recently cooked up is far more impressive than either of those – a unique deferred lighting solution for the Alien Swarm branch of the Source engine. It’s brand new, and it seems to be independent from any past attempts at realizing this kind of lighting on Source. And on top of all that, it also includes a terrific built-in in-game lighting/shadowing editor, that’s leagues beyond anything of the sort that Valve has ever created. Let’s take a look:
Easy to set up and easy to edit. On top of that, it looks to be incredibly versatile and extremely robust. Not to mention all the awesome designs and effects that can be accomplished with such an implementation. This is Bio’s description of the system itself:
This is a deferred lighting implementation that I’ve created on the Alien Swarm SDK. It’s currently offering shadow mapping for directional/point/spot lights, blinn phong and volumetric scattering via light volumes.
The in-game editor allows you to load from/save to VMF files directly, however parented or named lights (with I/O) will not be editable in-game.
Hundreds of small lights can be rendered with great performance (on a GTX 260), however as soon as they cover a lot of screenspace or are even drawn fullscreen (intersecting light geometry) they become much more expensive.
The renderer firstly draws the skybox/scene to the gbuffer (normals+lighting params and depth), performs light rendering via low poly spheres/cones and does a second pass on the skybox/scene that produces the final result. Due to this, all shadows and lights from the world are directly projectable on the skybox, however geometry in the skybox does not yet cast shadows nor can you place lights in the skybox.
There’s currently no hardware filtering support for AMD because I do not own any AMD cards, so I can hardly add that myself. Running this on AMD will either require you to recompile everything with a color based shadow mapping filter (as easy as changing one line of code) or adding fetch4 code – you’ve been warned.
Hopefully this’ll get more folks interested in Alien Swarm modding, which seems to be far more open, versatile, and… well, pleasant than modding on almost all other branches of the Source engine. Besides, it’s free!