2-Way Wind Tunnel - Rich Tollerton <rtollert@tranquility.net>

The QuakeLab - http://www.planetquake.com/QuakeLab/

Textures Used: combined grey/blue metallic (nothing special)

Entities used: many many trigger_pushes

What to do: This is going to take a while to explain.

Basically, the 2-way wind tunnel is an illusion. It is in fact two
one-way wind tunnels, cleverly intertwined as to create the illusion
that it is completely two-way. However, in normal deathmatch the flaws
inherent in this design are negligible to gameplay.

First, you make a standard wind tunnel, only its cross section is big
(prolly 4-6x bigger than what you would make a normal wind tunnel. The
actual method is to use several trigger_pushes placed in the precise
positions as to force the player into one predictable spot in the wind
tunnel, then move that player from that predicted spot to the TOP of the
destination opening.

Let's walk through the demonstration BSP. From the bottom room, there is
a 'catch' trigger_push that moves the player into the wind tunnel. (The
catch is outside of the wind tunnel merely for simplicity. It is quite
possible to make it inside of the tunnel.) From there, a large lifting
trigger_push moves the player up to the top of the tunnel. (Lifting pushes
MUST be powerful. At least 1000, though 2000-4000 is safe.) At that point,
a final trigger_push (at a very slow speed - 50 is fine) moves the player
out into the destination room.

The other way is a bit complex. The catch is basically the same. There are
then two trigger_pushes - one that forces the player down, and one farther
away from the wall that will force the player back to the wall, if e gets
too far out so that e is no longer affected by the downward-forcing push.
(It has to be far enough away that in normal travel it is not activated).
At the top of the bottom opening, there is first a trigger_push that slows
the player's speed down to 100 (so that e doesn't fly past the exiting
push), and a final trigger_push that sends the player out to the
destination room (with a slightly larger speed, to get the player
completely past the slightly larger trigger_pushes).

Many times you'll have to create trigger_pushes that aren't part of any
wind tunnel proper, but get players out of places where they'd never get
out (or from places they just shouldn't be). Two pushes above qualify in
this - the bottommost large trigger_push that sends the player up, and
the trigger_push that keeps the player towards the wall on the way down.
The former will automatically get the player off the floor and out into
a (random) wind tunnel; the latter makes sure the player can't switch wind
tunnel directions (deliberately or accidentally). You'll place
trigger_pushes of this sort on floors or in open spaces.

Options/Notes:

The really crazy thing about 2-way wind tunnels is that they are mostly
EASIER to make when the tunnel is more complex. The 2-way wind tunnel I
used in Trilogy Multiplayer (great map,
ftp://www.cdrom.com/pub/idgames2/planetquake/expert/trimp.zip - sorry, had
to get that in here :) ) had a wall running through it, and was probably
less complex than the simple rectangular design in 2wind.bsp. The reason is
because since there were more walls, I had more corners in the wind tunnel,
and thus more places to move the player. In 2wind.bsp, on the other hand,
there were very few places to place trigger_pushes (relatively speaking),
so I had to be a little more careful in where I put my pushes. Make sure
that you always have enough space, though - it's no fun when 2 players
collide on opposite routes inside the tunnel.

2-way wind tunnels require lots of tweaking. And lots more tweaking.
And lots more after that. It's somewhat tough to make sure the right
trigger_pushes are firing all the time, and none of the wrong ones
fire. The player can still have some force to control himself inside the
tunnel, so it is entirely possible for a player to stop himself inside,
when no trigger is touching him. To solve this, do one of three things:

a. Make your inner trigger_pushes really really fast (4000-10000).
b. Make your inner trigger_pushes long/thick enough so that the player
   rarely (if ever) is not touched by a trigger_push.
c. If the player does stabilize (stops) in a position, make a trigger_push
   there to get him off the ground and out of the tunnel. (b and c usually
   amount to the same thing. c only differs when the player can fall down
   to a position that the other triggers can't reach.)

a and b are similar in that they essentially force the player to trigger
a wind tunnel close to every game tic.

The poor man's test for 2-way wind tunnel certification is if a grenade
can successfully pass through it. If that happens, you're probably done.
(Grenades can bounce off walls and through trigger_pushes, so make sure to
make your pushes slow enough to handle grenades, but fast enough to
maintain control.)

In the top entrance to the wind tunnel in 2wind.bsp, you can get stuck
on the edge of the floor pretty easily. It's also pretty easy to get out
of it, too. In a real level, you'd eliminate this sort of bug :)

I used a minlight-capable util (arghlite) to light up this map.
Hey, I was in a hurry.

It should be quite possible (albeit difficult) to extend this wind tunnel
method to a theoretically infinite number of ways. Well, not exactly -
it would be a cycling wind tunnel; entrance 1 would go to entrance 2,
entrance 2 would go to entrance 3, entrance 3 would go to entrance 1.
Of course, it's also possible to make two wind tunnel entrances point
to the same destination. (Excercise left to the reader.)
