So I figured it was about time for a thread about Source mapping again - making maps for the Source engine and games like Half-Life 2 and Left 4 Dead.
This OP will be a work in progress - I'm still learning this stuff as I go.
Binary Space Jiggawhat?
The Source engine uses strange voodoo called BSP for its maps -
Binary Space Partitioning.
Binary space partitioning (BSP) is a method for recursively subdividing a space into convex sets by hyperplanes. This subdivision gives rise to a representation of the scene by means of a tree data structure known as a BSP tree.
Okay, you don't need to know what them fancy words mean. The BSP For Dummies explanation is that a BSP tree lets the game engine know what is visible from where you're standing, meaning it won't have to waste computer resources on rendering the stuff you
can't see.
Let's say we have three rooms with doors between them, like this:
XY
Z
If you're standing in room X, you can see into both Y and Z, so those need to be rendered. If you're standing in Y or Z, you can only see that room plus room X, meaning one of the rooms won't have to be rendered. (Doors that can be closed are prop entities and don't actually block line of sight as far as rendering is concerned.)
Think of a BSP map as the cold, unforgiving vacuum of space, where nobody can hear you scream. To survive, you need to build a box to fill with air to stay in. This box has to be airtight, or the air leaks out. This is called sealing the level - if the level isn't properly sealed, the engine will complain and strange stuff might happen. If you have a box that's missing a side, that side will open into a
maddening abyss of nothingness.
Now, L4D already has a pretty awesome set of level design documents that teach you some basics of Source mapping. You can just ignore the L4D specific parts for general Source mapping.
Download it here.
Links'n'StuffDictionary- Binary Space Partition - both the file format of Source maps and a technology that lets the engine know which stuff is visible from where you're standing, so it won't have to render stuff you can't see from where you're standing.
- Entity - an object in the game. This can be stuff like enemies and weapons, props like tables, barrels and other level garbage, as well as invisible stuff like spawn points.
...eh. More to come.
Posts
I've never ever tried mapping, but I've always sort-of wanted to. It would just be great to see some random idea come to fruition.
I'll keep a close eye on this one.
Also displacements are a pain in the hole.
The downside of BSP maps. :P
Personally I think computers are powerful enough to move away from pre-rendered BSP stuff nowadays. CryEngine is generated dynamically on the fly.
Tofu wrote: Here be Littleboots, destroyer of threads and master of drunkposting.
Then I forced the director to spawn an infinite panic event.
I usually get down the basic geometry and then sort of drift away when I start applying props, textures, lighting, and all of that.
I tried making a quake map soon after and just... ugh.
Never again =P
Every mapper should use CSG dammit.
What is the very first stage for you?
I'm thinking a rough sketch on actual paper, but maybe there are other methods that work better for you? For instance, do you start with a blank map in the editor, and just build from piece to piece?
Also, what do you use to make TF2 maps?
All maps start as blank unless you are editing someone elses.
Use Hammer to make any source engine (and even HL1) maps. It's part the SDK (under tools in steam"
Tofu wrote: Here be Littleboots, destroyer of threads and master of drunkposting.
Hammer, like all other Source games. Install the Source SDK in the Tools menu and fiddle around.
Thanks. I'm completely new at this, but I'll fiddle around and just try to have fun before doing anything too serious.
And yeah, I figured that all maps started as a blank slate, I was just wondering if you skipped the rough sketch stage and just went straight into a blank map and went from there.
And what would be better to use? Hammer or UnrealEd?
Just sayin...
The schools of thought are: 'design then create' or 'design and create'. The main difference is the amount of time put into premeditated designing. On a professional level this could involve an in-depth demarcation of all but the most minor features (along with artists and modellers to create necessary assets). On the other hand sometimes a mapper might not know the theme for a map before a few rooms are created.
The general consensus (like with programming) is that you should have a general layout before you create your first brush. I don't follow that, though. I tend to design as I start and then develop the design while I map and end up writing down a brief layout at some later point. Then again, I usually end up having to format my computer before I finish something and realize a few days later when the itch to map hits that "...well, I just deleted that stuff, didn't I?".
UnrealEd is much nicer than Hammer for starting out. It allows you to preview your lighting, the subtraction-based building means no leaks, and it has fancy tools that HL1-era Hammer didn't have. Hammer is easy enough - it also has one of the larger support and tutorial populations.
Just loaded up hammer, and I am blown away at the complexity. This will take much more research than I was expecting, but I'd still like to create something. We shall see how things go.
Review from back in the day
Not on a map, no no... on figuring out how to draw a line or something.
I've got a lot of reading to do here, but I'll say it is at least a start... never too late to try, I guess.
Does it help to have a knowledge of coding and things?
Take a look at the Left 4 Dead thread. This whole Derailed thing could be cool if someone actually made it.
Red = Red Base
Blue = Blue Base
Green = Neutral Bases
Purple = Underground Pathways
This is a capture point (CP) map. There are 4 CPs, one in each area. A team must hold all 4 CPs at the same time to win. The red and blue bases are obviously going to be symmetrically identical. I will change some of the props and textures to give them a different feel, but they will be identical. The left quadrant is a missile base and the right quadrant is a quarry.
Here are a couple raw screenshots from inside the Hammer Editor. Like I said in my previous post in this thread. . . I have never actually completed a map. Circle is a work in progress, but here are some screenies for anyone who cares.
This first pic is of the blue base. I cannot stress enough that this is unfinished. As a point of interest, you can see the capture point on the roof of the base.
The second is a close up of the wooden shed that you can see to the side in the first pic.
Inside the shed is a ramp/stairway down to the connecting underground passages (the purple lines on my crude map).
And finally, here's a pic of the work I've done on the quarry area so far.
Yep, know about Derailed, but "omg trains" isn't really a whole lot of inspirational material. :P
I was referring more specifically to the level synopsis Connery made me post.
http://forums.penny-arcade.com/showpost.php?p=9378573&postcount=256
Its TF2, and works kinda like the A control point on gravel pit. However there are 2 control points in the area instead of one. Blue spawns the same way as they do in gravel pit, in a raised area that only a few classes can get back in, and red would spawn the same way for the first CP, off to the side (Mabye make an identical spawn room on the oppiste side of the area). Here is a quick mock up done in paint:
The big circle is the CP. It would proably be pushed back a little as to allow room for it to be incased in a building.
As you can see there would be two ramped areas, they would be close but not identical. And there could also be an undeground tunnel of sorts leading to the CP. Easily guardable by a sentry but an uber demo could easily take it out aswell, as the enemys are only going to come from the front. THe CP would mostlikely be in a house, which the tunnel and the two ramped areas would lead to. The tunnel would be outside in front of the house but you would have to go either left or right to get inside the building. There would be various rocks and other buildings spread throughout, mabye a truck turned on its side or something like that, to allow various positons for sentrys.
Once Blue takes this CP reds spawn rooms are pushed back to the last CP. Ive been thinking about this for a while but still do not have a final idea I am happy with. What do you guys think so far? Too many or little paths to take? Mabye its too wide open? Mind you I would most likely increase its size.
Shmeerpt has no logical flow of thought. It has no walls or cohesion. Its incredibly inefficient. But it isn't meant to be a playable map. Its just a test site. Then I take the concepts I learned from Shmeerpt and apply them to my real maps.
Shmeerpt is where I learned how to make functioning door triggers, team spawn points, capture zones, lighting effects, and it also has a swimming pool from when I wanted to learn how to make water.
Mapping used to be my trade back when I was doing HL1 and HL2 modding. But now it's just so effing time consuming, and since I can model and skin as well, I really get tripped up when I have to go back and make my own props. Maybe I'll return to mapping at a later date but, right now? I really don't miss Hammer.
They said it would be easy, and this sure isn't easy, but I'm hopeful.
I dunno, Hammer really isn't that complex of a program it's just kind of antiquated. If you think it's complex just building a level wait till you get to the optimization part. Clip boxes, Area Portals and Hint Brushes; all things you have to manually place so that the map is complied into an efficient map (one that wont make everyones machine chug). There are entire sites dedicated to just map optimization. I imagine newer game engines don't need as much help from the map maker as they can do in real time (at render time) what you have to help hammer do (with the area portals and hint brushes, etc) at compile time.
Word of advice though, don't detail or optimize as you're laying out your level. Just do basic shapes and pathways then go back and start detailing and taking optimization into consideration. Try to do it all at once and you'll just get bogged down.
Also, www.interlopers.net has some good tutorials and some useful stuff in their forums.
Tofu wrote: Here be Littleboots, destroyer of threads and master of drunkposting.
sometimes the blue spawn doesn't work, sometimes the preview won't load
and then i discover the bombcart is weirded out and crashes everything if you touch it, meaning i'm going to have to look at the 6 billion fucking brushes i put on it to make it not retarded
and somebody save my sanity- how do you make textures not look shit? all i can do for cliff faces is have a sand pattern repeating endlessly or i can stretch it across the cliff face so it's even uglier
and then i look at the valve maps and they have deformed cliff faces with textures that fit to the walls, how do they do that shit
Probably built them in Maya or 3DsMax and baked the texture and other information right into the model.
Rather than be smart and use existing materials we wanted to re-create everything for the map (minus the character models) from scratch with my buddy making the 3d models in 3d studio and me working with the map editor bundled with the game (some version of the unreal editor) as well as supplying digital camera shots of any textures. We worked off and on with it for 6 months or more (never working for more than a week or so at a time, with long breaks in between) and never quite finished. I had 75% of the ground floor done, but was waiting on all the models for doors, window frames, desks, etc to be finished and tested to make sure I had the rooms at the right scale for my friends models. Since our first few tests when he initially finished the doors we found some issues with scale.
I think we ended up with that 75% of the ground floor of a two story building to scale with windows and doors in the correct place, but never got around to doing the furniture or rest of the building.
The best advice I can give to anyone starting out map making for the first time is to come up with a very simplistic idea using existing assets for their first map. After that slowly expand your ideas.
All that said. I think I'm going to look into hammer and follow my own advice there and try for a very small simple TF2 map.
Battle.net: IronSquirrel#1462
Cliff faces: Displacements for areas that players will be in. There are also rock wall models you can use, but they are best used in areas that players can't get to.
Payload maps are a bit of a pain, because as you know the "bomb cart" is actually an ungodly concoction of logic relays, entities, models and triggers. Just follow the tut on the valve wiki and you should be fine. If all else fails google vmex and use it to decompile a valve map so you can see how they did it (word of caution, this method may confuse you more than help as they have ALOT of crazy behind the scenes shit going on in their maps).
Also, as far as textures looking like shit. They will until you put proper lighting in your map. If you run a map with no lights the Source engine will use a "all bright" light, this light ignores normal maps and bump maps, thus making a lot of textures look shitty. I suggest if you're going to start testing lighting to see how your textures actually look you should become familiar with the cordon tool (it's in the wiki) as lighting increases compile time by quite a bit.
Tofu wrote: Here be Littleboots, destroyer of threads and master of drunkposting.
Yep, Hammer. And actually, this is pretty easy. Just go read the level design docs for L4D in the OP. It's a good intro to Hammer.
Yeah, I'm getting the hang of it I think. I just wish I had more time to devote to it.
And thanks for the advice Littleboots, very good stuff, I'll keep it in mind.
I had an idea for a single-player map, but I want to use resources from Counterstrike in addition to HL2. Is there a way to pull the models, props, etc from one game into another?
My idea takes place in an office, and I'd like to use the resources in the CSS map "cs_office" as well as some of the other maps, but I'm not sure if this is possible. Basically, I want a more urban, realistic setting than City 17 or Nova Prospekt for my idea, and I like a lot of the existing resources that are available in CSS.