Map Design Theory - 3 Part Breakdown

Discussion in 'Maps' started by Mouse724, Jan 16, 2017.

  1. Mouse724

    Mouse724 Active Forum Member

    Joined:
    Jan 1, 2017
    Messages:
    15
    Likes Received:
    3
    _____This post is about my views and methods when building a map for tf2. It's taken me about 6 years of hammer editor to learn and acknowledge these three major rules to live by. I encourage anyone to utilize the knowledge I have learned and to share all tips alike! I will be referring to brushes as blocks.______

    There are a lot of variables to keep in mind when creating a map for any kind of serious gameplay in tf2. I know it can be hard to focus or even to know what to focus on when creating a world, but I have learned a few important methodologies that can make everything easier. For instance optimization of a map can seem like a daunting task if you don't have a good technique in place for dealing with that. And there are no full tutorials or guides in any capacity available to mappers currently. Read on if you are interested in finding out how I handle some basic tasks when laying out a map and see if it can help with your workflow.

    Build Definite Paths, that connect logically
    • Players want to know where to go and how to get there, make paths relatively obvious
    • The first thing you always must do when starting a map design is to have a realistic scale to work with.
    • Start with a player model or prop like a cap point near your first blocks as a guide.
    • Starting with a landmark (capture point, cart track, team spawn) serves the double function of granting a good judge of scale and also allows for purposeful decisions for directing players by building paths.
    • Players should feel directed into inviting areas which offer them advantages in play.
    • You can deliver strong signals to the players of each team by more than just placing signs.

    Section off Areas, plan ahead and optimize as you go
    • Construct your world as one large shell around the playable space
    • Allow your geometry to funnel players to areas where they get direct information about paths and can determine strategy effectively. Instead of building the entire map as one space make it a series of "tunnels" textured to look however you desire, but containing entire paths that then link to other areas.
    • Keep adjacent map areas and their strength relative to the objective the main focus of your design.
    • There is no need for wasted space and the smaller the footprint in hammer the smaller file size
    • Keep in mind that all textured faces of blocks that you place are in fact a surface used by the engine to calculate visibility for the players. This does not apply to blocks that have been made into entities.
    • By carefully constructing your World Geometry^ you can do wonders to optimize the map early on.
    • Get used to using Area Portals and World Geometry together to compartmentalize everything.
    The idea is to make the compiler's job as easy as possible by making clean lines and being careful of Visleaf pollution. Visleafs are generated for all World Geometry blocks, so it's a good idea to keep them aligned with each other whenever possible, so that they stack instead of overlapping more than necessary. An easy example would be a building where you want thin walls but need many windows and doors. You'll want to keep the walls the same thickness and general location so that they conserve their potential to Visleaf spam.

    This technique is extremely important when designing large outdoor spaces as it helps the engine know where to make the Visleafs in such an empty space. Try to imagine your map: The open area is contained by the ground, maybe some high cliffs or other detail before your skybox at the edge, within the World Geometry border which is creating surfaces for the engine to process. There are also all sorts of prop staircases crates rocks and windows, func_detail, health, ammo, and the objectives, lights and sounds, intricate logic functionality.. which will factor into performance but have no effect on Visleaf generation.
    • A Visleaf is an invisible plane,following a face of World Geometry in all directions.
    • A face that is textured with Hint will create it's own Visleaf allowing you to inject more.
    • You must place these Hints on Skip blocks which do not render and can fill large gaps.
    • The Hint face must fully encompass the map space in order to section it completely.
    • Area portals are Visleafs for doors, and windows and other small entryways.
    • When cutting out a door or window save the block and fully texture it Area Portal.
    • These blocks must be touching World Geometry on 4 sides in order to section off the other two sides from each other, it is crucial that there are never any gaps here.
    • Each block you texure with Area Portal must be made into it's own individual func_areaportal entity by selecting it and pressing Ctr+T.
    Area Portals cannot work alone, unless it is sectioning off a dead end. Any space that is sectioned off by an Area Portal must also be contained. If you can walk through the Portal and then loop around back to the other side, or say, if both sides are the same side, then it won't work and will actually cause your map to break during compile, and then weird things will happen. So make sure if you are designating a space to be it's own, that you completely section it off with the use of World Geometry, and invisible Area Portal blocks and Hint faces.

    By keeping each area it's own section with clean geometry you can reduce Visleaf pollution. Area Portal blocks and Hint faces on Skip blocks allow you to designate to the engine where you would like Visleafs where there is no World Geometry. To use either they must fully connect with World geometry on all sides in order to create a seal. This is where careful planning or at least informed problem solving come into play. Remember World Geometry is very important and must fill out the entire border of your map to secure it from leaking, but at the same time the less of it you have the less Visleafs. It is a balance that is best struck by focus on efficiency in path design and compartmentalization.

    And Thirdly,
    Make your map FUN for as many players as possible:
    • Gameplay spaces should always be inviting and purposeful to players.
    • While important, much more than keeping track of sightlines or incorporating weapon specific strategy.
    • Excluding choke and stall points, the majority or spaces should be easy to move into and around. To ease up movement in an area make the space as large as possible while within reason. A good rule is to allow enough space for 3 players side by side in most hallways and 2 in each door, at least for direct paths.
    • One thing that will ease movement and bring general happiness to players is a healthy amount of Player Clip smoothing. Use the invisible player clipping block to make wedges against anything a player could get stuck on while moving forwards. Getting stuck on objects and details in the map can happen without warning and can be hard to avoid when engaging enemies and for the most part should not be a concern of players.
    • Spawn design weighs heavily in this category, with key factors to keep in mind: locations of spawn exits, length of sightlines into spawn exits, length of travel time to the battle, and spawncamp potential.
    • While spawncamping does happen and is a basic strategy, it should be very difficult or nigh impossible for a team to fully block all of a team's spawn exits at once. Typically 3 different locations for exits.


    Extra cool crazy tips for optimization pros:
    Buildings and Rooftops

    When making buildings roofs cause far too many necessary Visleafs. Changing the entire roof structure to a func_detail will immediately solve this problem, however players inside the building will then be able to see exposed visleafs from the rest of the map! Short of making Area Portals or World Geometry for all of your ceilings which can cause far too many faces to be generated simply plan ahead and make sure all of your buildings end at the same height, their World Geometry reaching that height and then above that each building has it's own individual detail structure which as func_detail does not generate Visleafs. On this height create a large skip brush encompassing the entire plane and make it's horizontal face at that height a hint brush. The result is to cap off every building that is at that height simultaneously, allowing you to make the above blocks into entities without effecting the visible Leafs.

    ___This Post will be fluid if edit is an option i forgot here : ] hope all this made sense to everybody!___
    -Mouse

    1/17/17 9:30am +fixed the part about optimization being not clear enough because I was rushing a bit through there.

    ___lol my first like so the website reads:
    Somebody Likes You
    Somebody out there liked one of your messages. Keep posting like that for more!
    grr.. nobody ever happy..__: ]___


     
    Last edited: Jan 17, 2017
    pach, Solar Fire and Wolfman like this.
  2. Kill_the_Bug

    Kill_the_Bug Well-Known Forum Member

    Joined:
    Dec 6, 2016
    Messages:
    149
    Likes Received:
    57
    Also for optimization - try to build map in one of the quadrants of the hammer grid - if you have to use two, use the top two, the bottom two, the left half or the right half, for some reason the program will add A LOT of un-needed stuff into the map when running vvis and vrad adding portals onto your compiling times. I think the way that it does it it compiles all the data from one quadrant then the other and makes comparisons of some sort. Well whatever it is - I have found that you can cut down portals by up to a third by doing this. Speeds up your map making time and makes less stress on the engine in game adding for a faster fps rate, although this is more of a vis thing in game.

    ie. keep everyhing on top or below the X axis of left or right of the y axis and the same for Z of that makes sense to you.
     
  3. Mouse724

    Mouse724 Active Forum Member

    Joined:
    Jan 1, 2017
    Messages:
    15
    Likes Received:
    3
    Wow. Thanks for the head's up Valve.. >< I don't think I've ever moved a map away from the starting point at 0,0. Great tip!
    Yer talking about there being 8 sections divided by the axis of the grid you build on, and how by containing your map inside just one of these areas without overlapping into any others, you can shorten your compile time by about two thirds? That's insane.
     

Share This Page