Half-Life Alyx's Level Design Tools: They Are So Great

On Twitter once I did a big thread where I went through Half-Life Alyx's SDK - so this is Source 2 - and had a big ol' yarn about 'em. That thread's turned into a useful resource, so here it is in Cohost Post Form.


Gonna look at Half-Life: Alyx's SDK and tweet about it a little. If you don't know already, I've historically had a big old axe to grind with modern level design tools! Still do. Neither Unity nor Unreal has level design tools worth mentioning built-in. This looks more promising.

Of course, Valve's not Unity or Epic - Valve just makes games; they're not big into licensing. These are internal tools, so there's gonna be jank. It's part of why actually devving on this engine would be a bad idea. But we sure can steal their awesome tool ideas!

An initial interesting thing is that we boot up straight into an Asset Browser, not a level editor. It doesn't assume we want to deal with maps, which is interesting, and reminds me of the days when UnrealEd had an Unrealscript code editor built right in. First thing I'm gonna open is Hammer though.

Already this is hot as hell, UI-wise. We have a lot of uncaptioned buttons that we probably mouseover the first time to find out what it is, and after that it's always one click away - we're not slowing our users down with submenus just so we can fit a caption in. Refreshing!

We've also got geo editing modes front and center, which bodes extremely well. Often level designers aren't able to edit geo in level editors at all, or if they can it's real clumsy. Isn't that wild?? Level design? Sort of important? Gotta iterate? Can't usually do it anymore? Wild. We've also got a vertical toolbar super similar to the old Hammer/Worldcraft one, which was always great. For reference, in Unity and Unreal, if you can reach this stuff at all it's behind many tabs and dropdowns. More clicks, more time, more frustration, less iteration, bad.

Yeah, this is really nice. First time opening the editor! Sure, I'm making trash, but look what I can do! I can drag stuff out and make changes to it super fast, which is great for level design, but also it's more powerful modelling-functionality-wise than something like ProBuilder.

This is the most functionality I've ever seen in a level editing tool, and so far it all operates more intuitively than the same operations in any modeling program I've used (Max, Maya, etc). And I'm barely into this yet!

Here's something I always point out to people making editors: in Hammer (1 and 2), if you select something or drag something out, the dimensions are right there. Nothing else does this. UE4 has a ruler, cool. Why does it not just draw these numbers on whatever I select?

Look at these UV tools. A whole bunch o' buttons for each of Align, Scale, Shift, Rotate, Fit, and crucially Justify. Hammer 1 had these, but this is a better UI. Nobody else bothers with this at all. If they do, there's at least twice as many clicks involved as defeats the purpose.

I'm sure that Very Many of Valve's systems and tools are janky and terrible compared to Unreal's, but these level design tools? I am literally seeing one good design choice and tripping over four others on the way to tweet about it. I am drowning in The Good Shit.

https://youtu.be/pBUddmjob20

Hotspot materials! An incredible feature! It's extremely good! We all would have had stuff like this a decade ago if AAA had even attempted to reconcile increased graphical fidelity with the needs of level design, rather than throwing LD under the Env Art Bus. This little house was made with just hammer geometry and hotspot materials. Looks fuckin' great.


These are all set up in something called the subrect editor, which is dead simple and cool. Like, you can make your own ones of these so easy.

Time to look into something called Tile Meshes which I've also been hearing about for a while. They sound pretty sick.

https://youtu.be/CzCDCPPIKF8

Oh I see, it's sorta like hotspots but for meshes + a bit jankier. You start with a quad and if it's of the dimensions of any of the meshes in the tileset it picks one, also choosing the right mesh for corners. I kind of want the meshes to scale the distance rather than leaving gaps, though.

It's incredibly pleasing that the folks at Valve have even been building their tools from this angle. For years, folks just got artists to churn out dozens and dozens of bespoke and/or modular meshes for mundane shit like this, all it did was cost money and stop LDs from working. These tools are amazing and everything, but none of it is a tech advancement. We could have had this ages ago. We didn't because of people just resolutely not giving a shit about the field of level design, including most people who make in-editor geometry tools. For programmers, modeling tools inside game engines seems to be an interesting challenge for whatever reason; making those tools useful for level design seems not to be.

ProBuilder, for instance, is barely better than nothing for level design, but it's not interested in level design. It just wants to exist for its own sake. And if your in-engine geo tools aren't useful for level design, they're good for nothing at all - artists aren't ever going to use them.

There's also the issue that it's programmers making these tools, and programmers are the people who use tools the least. So the only people able to make these things are the people least qualified to do it. Unless your coders are like, multidisciplinary or interested and empathetic. If you're making level design or geometry tools for game dev? Ape Valve, or make bad tools. Them's your choices at this point.

Here are some fullbright screenshots of Half-Life Alyx maps made largely out of Hammer geo:


And here's some with no props, only geo made in Hammer (no tilemeshes either, so of the stuff that's hidden, not much of it was actually bespoke for the scene). In any other current engine, this would be unfeasible to have a level designer do. Someone whipped up these concrete hallways, with their grates and trim and worn edges, in no time at all, without an artist being involved.




This thread has had eyeballs on it from Valve, Epic and Unity, but I'm not too optimistic about it having an impact - engineers' ability to stare directly at this problem without seeing it has held for 15 years and might easily hold for 15 more. Still, can't hurt!

Someone suggested that this might be less of a problem in Unreal if Epic were still doing linear games, and it's actually interesting that I don't think that would do it. After having had great LD tools in UE1 and 2, Epic actually sort of led the charge away from them around UE3. Their in-editor geo tools got worse from there, and continuing into UE4 as support gradually went away entirely. Things like Gears of War wanted the extra fidelity you could get from making maps out of expensive Lego pieces versus their existing LD tools, and they could afford the pieces. It's a worse workflow, but it "works" if you can afford it.

Of course, it doesn't work enough to hold a candle to the work on display in games that licensed UE1 or 2, and it doesn't work at all if you're not extremely cashed up. And bit by bit, you push your level designers away from their levels, and start designing the game itself around that absence.

Unreal has been the engine to chase for a very long time, nothing has ever seriously competed with it, so these decisions have rippled out. If you used it, which a ton of AAA did, it was make levels the Epic way or make a lot of work for yourself that you might not be equipped for, and the effects of that flow on forever to affect indie development and everything else.

So dogfooding works for a lot of things, and it's a lot of why Unreal is an amazing engine, but you'd need more than that for this. You'd almost have to build some massive project around understanding the things that have been lost. Feels like Hammer 2 was that.

In summary, let level designers make levels and we'll just call you when we want the rest of an owl