Half-Life Alyx's Level Design Tools: They Are So Great (Also The Level Design Tools Thread)

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 turned into a useful resource, so I made it a Cohost post, and now Cohost is going away so here it is in forum thread form.

alyxtools1

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.

alyxtools1

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?

firefox_mKywVQHMKo

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.

alyxtools2

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.

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.

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

3 Likes

A thing that I think a lot of people tend to overlook or not understand when they first see Source 2's tools is that a lot of its greatness comes not just from its actual abilities, but just how easy it is to do, too. It's not just that you can nudge UVs, it's that it takes few clicks. It's not just that it has strong modeling abilities, it's how easy everything is.

Everything Hammer does has been set up specifically to facilitate ease of use for what you actually want to do. For example: In Blender, if you use the flip function to mirror geometry, the shape gets mirrored, but your normals are inverted, and you have to manually invert them. Technically, yeah, this is more mathematically correct. It's also 99/100 times not what you wanted.

Substance Painter's layer blend modes use a different color space and maths than Photoshop and many other image manip softwares, and this is especially noticeable with the Overlay blend mode. As artists we love neutral grey having no effect, that's such a useful function. But in Painter? It noticeably affects the layers beneath, and it SUCKS. Hammer's really good at recognizing things like this, and doing something that's maybe a little unconventional, but is more likely to be useful to you.

Like, here's a neat Hammer thing that I don't see other tools do: Grid-based scaling. Instead of set increments, your object gets scaled to fit the next grid mark.
scale01

On paper, this sounds really unintuitive, right? "What are you scaling by? Increments of 10%? 25%?," "No, whatever amount gets me to the grid." But looking at it visually, this is so useful. Look how I can immediately scale this prop to fit exactly where I need it.
scale02

No thinking about it, no precise checks, fiddling with position as I scale and iterate, just BAM. Done. Hammer's all about this across the board, and that's the magic.

1 Like

One hundred per fuckin' cent. I love those gifs; any time you need to explain this stuff it's to somebody unreceptive so those always really help.

I've been explaining this stuff on the internet for over ten years, so I might as well put a collection of that on here and make this the thread for this sort of thing:

The first one I made wayyyyyy long ago, when I was basically a baby, and I'm honestly surprised slash relieved it's still good. Concerned mainly with the actual tools and ease of use. If anything has aged weirdly about this (besides me being worse at making videos and speaking than now), it's that it's a lot about how much resistance there was at the time to any LD-tool dissent - it doesn't happen anywhere near as much now, but it was nuts how much hostility you'd get when you talked about this stuff. I think it was a lot of environment artists who thought of themselves as level designers that this was scary to.

This one goes deeper into more interpersonal/team workflow issues, and these days always puts something else on the tip of my tongue when I look back at it that I wish I'd gone into more.

This one is recent, and came out of an argument with an Epic tools guy who doesn't work there anymore (and has been more chill since he quit). I always felt like we were not getting on on twitter but would have in real life; this was trying to clarify some stuff I thought we must be talking around.

And this one is about a workflow I like in UE5: Cubegrid Plus MeshTool, sort of the best option at the moment I think, until Scythe is out.

1 Like

Has anyone here managed to export usable FBXs from nu-hammer to an engine?
I looked briefly into getting an import flow into unity going but was a lot of time for something i didn't have a specific use for beyond: being able to design levels without pulling my fingers off

I haven't much, but I gather it's a "it all works but it's cumbersome" situation. Kind of on the level of making maps with Maya, just the Maya is better. I don't know of any neat automatey thing anyone's made for it.

That about covers it, yeah. I've done it a bit for Unreal.

Hammer's got built-in Export All/Export Selected functions, and they work fine. UVs, normals/smoothing, material slots, origins, individual objects, everything about the geo comes out fine as you'd want. If you're really wanting to do all your LD (or even just simpler models) in Hammer and then export that, it's totally doable.

There's some caveats/jank though. Hammer is its own tool, specifically built to be used with Source 2 games, and is pretty heavily integrated with them. This is to Hammer's benefit, and is one of the big reasons it's so amazing for Source development, but you lose a lot of that when you're using it as a tool for another engine. When I'm working with it I have to have Hammer running along with CS2, and then also Unreal. That can get pretty heavy.

There are more general things that you'll have with other programs too, like having to manage materials in both engines. imo that's one of the biggest offenders, because there's nothing fun about having to set up materials twice, juggling completely different filepaths (S2's material editor is picky). There's probably some livelink Unity setups for automating this in standard software like Maya, but I'd bet money on that not existing for Hammer.

Similar deal with geometry. If I make changes in Hammer, export, and update in Unreal, everything reimports fine, but if I've added new objects then I have to kill it all and reimport from scratch. I feel like this is either me being an oblivious noob, or else a pretty fundamental failing of Unreal? Exporting individual objects manually works, though that also can get cumbersome. But again, best as I can tell, this is just a fact of life when dealing with external tools, Hammer or not. I can see why the modular approach gained popularity.

Personally, as one guy working on stuff alone, and who loves Hammer that much, I've been putting up with the jank. Hoping the more I put up with it, the easier it gets, and maybe some day sort out ways to make it easier. I don't necessarily feel comfortable recommending people use it as their go-to because of the jank and how niche it is. Especially teams, I imagine that'd be awful. But if all you're concerned with is "I want to make something in Hammer and put it in something else," then yeah, sure, go for it.

2 Likes

hmmm ok i guess about what i expected...ie: bad enough to be frustrating but unfortunately not bad enough to put me off it. esp if just for greyboxing

i mean i know i'm preaching to the choir here but i just can't get my head around using a modelling tool to make a 3d space no matter how often i give it a go. its like trying to whittle out the interior of a block of wood by poking stuff thru the gaps
is this how all those diehard C guys feel? upset that the world has moved on to what seems like a clearly worse tool? i don't want to be like that but also it is the children (AAA devs) who are wrong

I wrote a .vmap importer for Unity:

It probably won't work right out of the box, but it'll get you most of the way there. Once it works, .vmap files in your project directory will automatically be converted into a usable prefab.

1 Like

oh my. i'll check it out!

1 Like

Oh here's another level design video I did - just about making levels with modular meshes in Unreal for folks who are new to it. No substitute for actual good tools, but hey