Notices

Method to the Madness - Details of Boojum's AF2 entry  Thread Tools Reply
Old 07-25-2011, 11:43 AM   #1
A Boojum Snark
Toraipoddodezain Mazahabado
 
A Boojum Snark's Avatar
 
A Boojum Snark is offline
Posts: 4,303
Thanks: 112
Thanked: 4,490

Default Method to the Madness - Details of Boojum's AF2 entry


Several people have asked about how I did some stuff, so I figured I would write this up.

First and foremost. If you have not ran through my entry, I suggest you do so now before you continue reading.

You can find it over here. Check out the others while you are at it, too.












< obligatory blank space to reduce accidental spoilage >












Starting with the simplest thing first, we have the mysterious "Top Secret" door that slides down (or is it up?) the wall as you approach... and then returns if you back away.

Related but irrelevant picture #1 This post ended up being very wordy, so...

It is accomplished with a point_proximitysensor measuring to the player, constrained to the length-wise axis of the hallway. This produces an absolute distance in units, which is fed into a math_remap that compresses the range from 0 - 496 (the distance at which it is activated) down into 0 - 1, which is the valid range of input for func_movelinear's SetPosition, used to move the doorframe across the wall.
To actually measure the player, I had to give the player's entity a name. This was done by giving the trigger_once covering the spawn point (I used it for many things, instead of a logic_auto) an output of:
OutputTargetInputParameter
OnTrigger!activatorAddOutputtargetname theplayer

The other caveat is that point_proximitysensor will commit suicide if it spawns and it's target to measure doesn't exist, which it doesn't, since the player isn't yet named when the entities are loaded. To get around this, the sensor is put into a point_template and respawned once the player reaches the area, long since having been named.
Finally, when the player reaches the sensor there is a trigger that kills the sensor and sends a final input to the movelinear to force it all the way down. This is because the sensor is absolute, no positive or negative, so the door would begin rising as the player passed the sensor.

- - - - -

The clock zone. I think the only part of this that could use explaining is the floor breaking away. Obviously it's just a bunch of func_breakable (92, if you were wondering) but setting up 92 outputs to break them in series would be incredibly boring and tedious, not to mention a nightmare to change the rapidity with which they break.
Instead it is done by using env_beam's random targeting ability to damage the breakables. All the tiles have the same name, and there is an env_beam (two, actually) beneath the floor with the Ending Target set to the name of the tiles. When the beam's lifespan is set to less than infinite, every time it fires it will choose a different entity with the name in question. So with next to no effort I have a completely random destruction of the entire surface.

Related but irrelevant picture #2

To accelerate the destruction I used a few inputs to shorten the lifespan of the beam, and turn the other one on. Laser 1 started at 0.5 lifespan, Laser 2 is always at 0.1
OutputTargetInputParameterDelay
OnTriggerclock_laser_1TurnOn 0
OnTriggerclock_laser_1AddOutputlife .23.00
OnTriggerclock_laser_1AddOutputlife .14.50
OnTriggerclock_laser_2TurnOn 5.20

- - - - -

A brief note before the big stuff, both the shattering hallway and the clock zone have situations where the player may no longer be standing on anything. To prevent (or reduce) falling, I used trigger_gravity to make the players float the instant they lose footing, and some gentle trigger_push to keep them centered in the hall or nudged toward the clock. The may fail to work if the player is moving at a rapid rate in some direction when it occurs, but I'd rather be gentle and allow the rare failure than be harsh (playerclips, loss of control, etc) to prevent it entirely.

- - - - -

The Shattering Hallway. I put the most work into this, by far, and it turned out better than I expected in more ways than one.

Every chunk of the hall is a func_physbox. Their mass scale is set to 0.02 (large concrete physboxes get extremely massive) and their Rendermode is set to Texture with an FX Amount (alpha) set to 0. They also have the following flags set:
- Start Asleep
- Motion Disabled
- Prevent motion enable on player bump
- Only break on trigger
- Don't take physics damage
This is all so that they will not move, will not break, and are invisible until I otherwise wish.

Why invisible? Physboxes have some ugly dynamic shading on their edges when crammed together, and awhile I could have turned off shadows the seams would still have been visible. Thus, there are identical looking func_brushes in their places that are removed at the instant the shatter occurs.

Related but irrelevant picture #3

The entire area is covered by a trigger_vphysics_motion that gives the chunks zero-gravity and limits their speed to a max of 200. The speed limit allowed me achieve the effect of the hall rapidly coming apart but give the eeriness of them slowly drifting off. I also added a tiny amount of angular acceleration increase, to help maintain the random spinning of the pieces.

The shattering force itself is simply seven env_physexplosion in a row along the hallway.

The fade-to-black is done with a math_colorblend, which is essentially the same as a math_remap except the output values are a trio of RGB values instead of a single integer. You can blend between any two colors, but I only need to do white-to-black (color tinting entities is subtractive, white represents normal).
However, like the remap, it only takes one input and sends one output at a time. I wanted a continuous stream of outputs to get a smooth fade.

Once again I had a use for a point_proximitysensor, except I was merely measuring the distance to a func_movelinear (though any mobile entity would work). This gives me a steady smooth flow of numbers for the colorblend's input. Since the colorblend remaps any range to the color range, the speed and distance of the movelinear is irrelevant as long as the ratio between the two is what you desire.

Virtually the same method was used for the cracks of light that appear prior to the shattering, the difference being I wanted to go from invisible to solid, instead of white to black. The solid white lines on the floor use the white_fill material, and rather than a colorblend I used a regular math_remap to feed my proximity value (increasing this time) into the alpha input of the func_illusionary.

I couldn't use alpha for the gradient shining out of the lines because I already set it to 10 to dim them to the desired brightness (the raw VTF is solid white at the one edge), rather than manually editing the VMT just for this map.However, due to the nature of the material I could use color and a colorblend to achieve invisibility, because black is invisible in additive rendering.

Lastly, the floor/ceiling flip is just a func_door_rotating, but due to the player floating in zero-g and the lights moving with it, the illusion of whether the floor is moving or the player is flipping becomes mushy and confusing (as intended).

- - - - -

I think that's everything abnormal to cover on the technical side. Though no amount of words could explain the mind that devised them. If there is anything more let me know and I'll tack on an addendum.

__________________
(>^_^)>---[] Mapper Kirby says you must get:
Ultimate Mapping Resource Pack!

 
Last edited by A Boojum Snark; 07-25-2011 at 11:50 AM.
Reply With Quote
The Following 24 Users Say Thank You to A Boojum Snark For This Useful Post:
Advertisement
 
Advertisement
Advertisement Sponsored links

Old 07-25-2011, 12:23 PM   #2
Micnax
L0: Terribly Lazy Mapper
 
Micnax's Avatar
 
Micnax is offline
Posts: 1,524
Thanks: 2,815
Thanked: 848

Default Method to the Madness - Details of Boojum's AF2 entry


Damn Boojum, you scary!

Not to mention your map scared the shit out of me.

__________________

 
Reply With Quote
The Following 2 Users Say Thank You to Micnax For This Useful Post:
Old 07-25-2011, 01:00 PM   #3
Trotim
Veteran Member
 
Trotim's Avatar
 
Trotim is offline
Posts: 1,020
Thanks: 895
Thanked: 840

Default Method to the Madness - Details of Boojum's AF2 entry


the part with the really dark floors with holes in them forced me to mat_wireframe 1, they were literally invisible for me

and then I got to the part with the clock and the floating platforms and had no idea what to do, went scout which made me respawn at the start and then I posted this

so those were lame, neat otherwise

oh ok so it ends after that, but do you seriously need to be scout for that. and I'm not even sure it counts as tunnel either
 
Last edited by Trotim; 07-25-2011 at 01:10 PM.
Reply With Quote
Old 07-25-2011, 01:19 PM   #4
Dr. Element
Procrastinating slackjawed Hippopotamus
 
Dr. Element's Avatar
 
Dr. Element is offline
Posts: 871
Thanks: 374
Thanked: 525

Default Method to the Madness - Details of Boojum's AF2 entry


Quote:
Originally Posted by Trotim View Post
the part with the really dark floors with holes in them forced me to mat_wireframe 1, they were literally invisible for me

and then I got to the part with the clock and the floating platforms and had no idea what to do, went scout which made me respawn at the start and then I posted this

so those were lame, neat otherwise

oh ok so it ends after that, but do you seriously need to be scout for that. and I'm not even sure it counts as tunnel either
You just have to be gentle
I went through it as medic with absolutely no problems, and afterwards as heavy.

Btw, i am glad you told us how you did your entry. It was insanely inspiring

__________________
mvm_sludge | koth_nippletwister
Works in progress (inactive, or haven't reached a satisfying playable state yet): ctf_hurricane, cp_glacius, koth_sprout, pl_thorndike, tc_feldspar
 
Reply With Quote
Old 07-25-2011, 01:24 PM   #5
A Boojum Snark
Toraipoddodezain Mazahabado
 
A Boojum Snark's Avatar
 
A Boojum Snark is offline
Posts: 4,303
Thanks: 112
Thanked: 4,490

Default Method to the Madness - Details of Boojum's AF2 entry


I turned up the brightness on the floor-in-nowhere a couple times, I thought I had it bright enough and I have my monitor set at 35% of max... oh well. Have you got a CRT or something?

The last floating tile floats off to the door after 0-2 seconds, but people seem to have been impatient or didn't step far enough on to hit the trigger. I guess maybe I should have put the trigger sooner, but it is touched if you are at least centered on the tile, so eh. Didn't have time to refine it further.

and Ravidge didn't want a traditional "tunnel", the kind of thing I did was more along the line of what he was trying to get people to do, according to his outbursts in the chat room

__________________
(>^_^)>---[] Mapper Kirby says you must get:
Ultimate Mapping Resource Pack!

 
Reply With Quote
Old 07-25-2011, 01:43 PM   #6
stevethepocket
(heaven forbid) ponies
 
stevethepocket's Avatar
 
stevethepocket is offline
Posts: 1,993
Thanks: 170
Thanked: 751

Default Method to the Madness - Details of Boojum's AF2 entry


This whole map reminded me of this one Half-Life 2 mod; unfortunately I've forgotten its name, but it had a lot of freaky stuff like this. Except I think this does it even better.

__________________
Current projects: Fort Frolic (BioShock-themed Arena map) | Turbine remake
 
Reply With Quote
Old 07-25-2011, 03:45 PM   #7
Micnax
L0: Terribly Lazy Mapper
 
Micnax's Avatar
 
Micnax is offline
Posts: 1,524
Thanks: 2,815
Thanked: 848

Default Method to the Madness - Details of Boojum's AF2 entry


Quote:
Originally Posted by A Boojum Snark View Post
The last floating tile floats off to the door after 0-2 seconds, but people seem to have been impatient or didn't step far enough on to hit the trigger. I guess maybe I should have put the trigger sooner, but it is touched if you are at least centered on the tile, so eh. Didn't have time to refine it further.
I actually tried doing that last tile but I jumped off being a dumbass, I respawned and the tile didn't float back, so I had to noclip over.

__________________

 
Reply With Quote
Old 07-25-2011, 03:56 PM   #8
Leminnes
Veteran Member
 
Leminnes's Avatar
 
Leminnes is offline
Posts: 1,144
Thanks: 418
Thanked: 618

Default Method to the Madness - Details of Boojum's AF2 entry


I do kind of wish that final tile went back and forth. I died once and could only get to it by rocket jumping.

__________________

^^^click here!^^^

 
Reply With Quote
Old 07-25-2011, 04:31 PM   #9
WastedMeerkat
L3: Junior Member
 
WastedMeerkat's Avatar
 
WastedMeerkat is offline
Posts: 142
Thanks: 764
Thanked: 142

Default Method to the Madness - Details of Boojum's AF2 entry


Thanks for explaining all this stuff! I think you already knew you would end up making one of these threads as soon as the ideas started popping in your head. As usual, your extensive research into the wonders of entities has rewarded you. Seriously though, your entry was amazing!
 
Reply With Quote
Sponsored links
Advertisement
 
Advertisement
Advertisement

Reply

Tags
boojum, entities, insane

Previous Thread Next Thread
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off



All times are GMT -5. The time now is 04:27 AM.