User:Draco18s/Hedgerow

From Valve Developer Community
< User:Draco18s
Revision as of 22:42, 17 May 2009 by Draco18s (talk | contribs) (Hedgerow Campaign)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This project mostly exists to push the boundaries on what can be done within a level to make it fresh every time it's played. The director is little more than a random number generator, but how far can I push that?

Project Status

Name: Hedgerow Type: Campaign (Versus not anticipated, possible Survivor maps) Chapters: 2+ Status: 0%

Tool creation: 10% (Tools are things I'm developing to aid in map unique-ification)
Chapter 1 planing: 0% construction: 0%

Hedgerow chapters themselves will be mazes, the first of which is a hedge maze, initiating the pun. Corn maze will also be present. A house of mirrors also piques my interest (do we have reflective surfaces?). Fairgrounds setting?

Tools

I don't think I can implement all of these, this exists as a collection of novel ideas.

Level Randomization

Example of level randomization possibilities

A neat trick, that I think Valve worked in minorly, not to the degree which I wish to push it. On No Mercy 2 after the white car to the right of the open van is a garage, sometimes it's open (pipes and Molotovs only) sometimes it's closed.

I've managed to build a series of logic nodes and walls that can be activated or deactivated at random. Right now all I've got is a basic layout. Conceptually each cell (area between the walls) could be a whole room of an apartment building with 4 exits: broken walls, doors, etc. Or even more drastically, each one could be a whole house, containing its own internal pathways between the four "edges" and the walls are merely blockages of one form or another (semi truck, fence, barricade, crashed car, hole in the wall) that can be summoned up or banished at the will of the RNG.

A necessary step in properly building these modular sections is a way to alert the human players which way to go, for this I have created orange spray paint arrow objects to spawn pointing in the right direction (or one of); logic_case objects were used to determine which arrow to make visible. Unfortunately the bots are stupid and it's impossible to modify the navigation mesh at runtime (though zombies will climb over obstacles--if the nav mesh connects through them).

Implementation

For those looking to implement this, the steps are simple: 1) create a wall, bind it to a func_wall_toggle entity, name it, and either set it flag to "starts invisible" or not, as you choose. I suggest picking one and sticking with it. 2)create logic_case entity and create 1 case per wall. If your walls start invisible this case will make it visible. Good for blocking off 1 route of many. The reverse means that it opens up one of many routes. I personally have only 2 walls to each logic_case entity, with exceptions where pure randomness creates non-navigable mazes. 3) logic_multicompare entities can help alleviate non-navigable mazes by opening up routes when all the other routes were closed at random. Merely add case outputs for each "closed route" wall to the compare object sending 1 as the parameter. Set an output on the logic_multicompare to OnEqual to trigger a wall (this wall should start visible).

Moving Crescendos

An idea thought up on the official forums, namely a panic event that is continuous until the survivors reach some area.

Crumbling Ground

Possible motive for moving forward fast: the ground below (or some moving object, such as an oncoming train) forces the survivors forwards, or perish. Need not be combined with a typical panic event.

Split the Party

Some dual-triggered event spawns a wall between two halves of the 4 survivors (2 and 2 or 1 and 3). Each group acts independently until they regroup a short while later.

Implementation

Simply set up 2 triggers that input to a logic_compare entity that fires off a wall spawn (see Level Randomization above) between the two trigger areas and unlock/open the passageways forward.

Block off the Past

The reverse of a Door to Before. No Mercy 4 has an example of this, the elevator. If you aren't in in, you're left behind. For good. This tool merely exists as a collection of possible alternatives to the elevator.

Fighting on the Move

Namely, a crescendo or finale that takes place on a moving object, such as a train. This one is likely impossible to achieve properly, and even less likely to work gracefully in versus.