Monday, June 16, 2014

Divey wivey and smoothin the moovin: Map design principles for Double Action pt 1

Double Actions gameplay is heavily reliant on smooth, fluid and continual movement around the environment. A player is having the most fun when sailing through the air and sliding around corners, akimbos blazing at a similarly horizontal opponent. DA doesn't have any cover system and the crouch key is rarely used (except to stunt). Taking these factoids into consideration we see that it is important that DA maps have long, unobstructed avenues for the player to exercise his right to boogaloo as a verb. Have you ever taken a lateral dive around a corner, vindicator poised to deliver a lead-whoopin on the briefcase bearers behind, only to clip into a stray pole or lonely brush face? You'll realise that this is heavily not fun.

The problem with wide open, unobstructed lanes of fire is that they look bare, but as we start to add detail we also start to block the player. As a small mod dying for attention on the scene we want to have nice, detailed environments to show off to our adoring public, but we can't sacrifice anything in terms of gameplay. So in order to tackle these problems we have a few options.

Obstructive mesh placement

When placing mesh objects in your maps, try to keep them well out of the way of the player. Let's take this simple hallway for example, a common map feature:


Hallways are boring

No one wants to see a long ass empty hallway, so we spruce it up with some nice static prop action:


Goddamn that's action

The problem here is that the newly added props are now blocking almost half the hallway. If someone doc-martins that door at the end of the hall and we want to go into a boogaloo slide, we're going to knock our nuts on that largely useless setpiece.


Sometimes wish forgot about workplace etiquette

So how do we overcome this problem? We could just remove the offending items altogether, but that would leave us with a rather lackluster scene. We could try a little bit oooooooof...

Detail insetting

A lot of details can remain in the map, albeit in a slightly different form. Lets decide to keep our cabinet and hell, even add some more obstructive meshes, but lets remove them from the playing field by insetting them into the wall as such:


Boogalicious

Now as you can see we have a nice, detailed hallway and no obstruction to the player. OR DO WE?!?!?!?

Our more astute readers may have noted that if we were to begin a glorious akimbo glide on the wings of the gods of action, we're going to clip a collarbone on one of those walls and come crashing to our icarus doom. This brings us to our next smoothin the moovin element:

The fabled Player Clip brush

When we have little ledges and edges that we would prefer not to get caught on, but are serving a valid purpose, we can use the Player Clip brush texture to make an airborne player slide nicely around the environment. In this case, I think I would like to have this area available for the player to use as a little hidey-hole, so I haven't completely clipped it out, rather placed diagonal clip brushes to guide the player on a better trajectory.


Trickflip that, Dementei

Other areas we can add detail to with little risk that the player will find it a hindrance are incidental nooks and crannies that are inherent in the design of buildings. There are places in your map that the player will rarely choose to store his body at all. The corners of rooms for example, or the vertex space where wall meets ceiling meets other wall. Luckily we have many such areas even in our tiny example scene, and we have the will and materials to utilize them. Lets put something in the corner next to our door.


Wood, and something to sweep it with

Now, it's starting to look a little more detailed, but be aware that even in small corners like that, the player may feel the need to visit. In this particular instance, it's near a door, and the wallspaces next to doors are good areas for taking cover or planning an entry. So, we need to make our meshes play nice.

Small detail meshes, and how to make them play nice

If a player happened to collide with a vending machine mid-flight, they would be in their rights to see themselves at fault. I mean, who spear tackles the side of a vending machine? Feel free to put such large cover-giving features in your map if you feel they are validated and won't interrupt the gameplay. However, if the player were to be gracefully splitting fluid friction with both body and bullet and happened to inexplicably fall to the floor, only to find they had collided with a small insignificant detail prop, then their frustration would be justly directed at the mapper responsible. As it stands, our hallway needs some insignificant detail props.


Double mint gum

Just like our alcove, the more alert readers will have realised that our hero might still find himself handling some collision calls on these new props, and we are still blocking the wallspace on either side of the door too much. Time to make these puppies ephemeral. For small brushwork, like those wooden planks, we can just make them func_illusory. For our meshes, go into their properties and change the 'Collisions' property from 'use Vphysics' to 'none'.


Cut it open and tinker with the ticker

If you happen to be cheating in order to use a physics prop as a static prop, go into the 'flags' tab and tick the 'debris' box:


I am seriously running out of quips here

Now if we were to look at simply the collision data of our room here we would see that it looks quite similar to the first screenshot above. We can dive slide and shoot all we like and we won't be met with premature stops and unexpected flops (I'm sure there's a nasal spray for that).

That about does it for making mesh details in your map conform to the boogalooing of our action heroes. Other ways to add non-colliding details would be the use of decals, good lighting setups and inaccessible areas (like our alcove, but blocked with a fence or something). Stay tuned, soon we'll be leaving the tangible space of solid examples and delving into the murky depths of conceptual principles.

No comments:

Post a Comment