Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
waverider

How to make a fully working force field?

Recommended Posts

Hey,

 

I'm having issues getting a force field to look right in my map. While it does look right in GL ports, I get a HOM whenever I run the map in software mode. I'd be most grateful if anyone could help me getting it right. 

 

Thanks in advance! /W

 

Share this post


Link to post
Posted (edited)

Have a gander at these three pwads:

 

E1M3.wad E1M3(Toxin Refinery Remake) by Guardsoul
phobos-g.pk3 E1M1(The Phobos Directive) by The Persecution Complex
kdizd_12.zip  Z1M9(Knee-Deep in ZDoom) by The KDiZD team

 

they have great looking forcefields.     

Share this post


Link to post

I made one that even hurts you and pushes you back: https://www.youtube.com/watch?v=UN514KxVRJE

 

Here are the script I used in the map - first one is runs when player hits the line with the force field texture(the line is set to be blocking in the map) and the second is the turn off switch:

 

script "ForceField" (void)
{
    int ForceAngleIn = GetActorAngle(0) >> 8;
    int ForceAngleOut = 0;
    if(ForceAngleIn < 128)
    {
        ForceAngleOut = ForceAngleIn + 128;
    } else {ForceAngleOut = ForceAngleIn - 128;}
    SetLineTexture(1, LINE_FRONT, TEXTURE_MIDDLE, "FORCE05");
    ThrustThing(ForceAngleOut, 8, 0, 0);
    PlaySound(0, "weapons/sigil");
    DamageThing(Random(1, 5), 0);
    Delay(15);
    SetLineTexture(1, LINE_FRONT, TEXTURE_MIDDLE, "FORCE01");
}

 

script "ForceFieldDown" (void)
{
    Line_SetBlocking(1, 0 , 4);
    SetLineTexture(1, LINE_FRONT, TEXTURE_MIDDLE, "-");
}

Share this post


Link to post

Self-referencing sector can make a wall entirely invisible. This is done by manually editing borders of a sector that outer sides of them point to sector inside. This way the sector around them never ends. You should probably avoid raising sector all the way to the ceiling, since renderer would cull it.

Boom has native means to make sector appear at a different height than it is.

Share this post


Link to post
2 hours ago, ViolentBeetle said:

Self-referencing sector can make a wall entirely invisible. This is done by manually editing borders of a sector that outer sides of them point to sector inside. This way the sector around them never ends. You should probably avoid raising sector all the way to the ceiling, since renderer would cull it.

Boom has native means to make sector appear at a different height than it is.

 

For full clarity, two-sided linedefs comprising a sector have a front side and a back side. You'll need to make a sector which has only two-sided linedefs. TNT MAP 09 (Stronghold) has an example of that which can work for a force field type invisible wall. Point the linedefs so the front side are all facing inwards. Two-sided linedefs have a Sector Number associated with them. Manually change the sector number of the back line def to match the number on the front-side linedef. That makes the sector self-referencing. That's what makes it invisible in any port.

Share this post


Link to post

Sorry I should've mentioned the force field must be made in Boom/MBF. 

 

Any suggestions on how to make one in Boom?

 

Thanks.

Share this post


Link to post
9 hours ago, waverider said:

Any suggestions on how to make one in Boom?

Linedef special 242: Create Fake Ceiling and Floor.

 

1) make a tagged sector which is closed (e.g. ceiling at the same height as floor or vice versa) where your forcefield should be.

2) make a control sector with "correct" heights of the real floor and ceiling.

3) apply 242 to a control sector's linedef, tagged with your forcefield sector. Now the game uses real heights for navigation, sight, sound etc, but uses control's heights for rendering visuals. You should see into the room, but not be able to shoot into it.

4) now you probably want a visual, so add a mid texture with appropriate offset.

5) depending on whether you thematically have a forcefield that disappears instantly, or a gate that opens, you can use either instant floor/ceiling tricks or some regular linedef actions. Basically, you can do whatever you want with real heights.

forcefield.zip

Share this post


Link to post

In Epic2 MAP15 walking through the red laser fence starts a crusher, which detonates a barrel, which pushes a voodoo doll, teleporting it onto another. This might seem overly complex compared with simply teleporting the player onto a voodoo doll (as in e.g. Vrack3), but it allows the fence to be later deactivated by raising a barrier, blocking the explosion and rendering the fence (now lowered out-of-sight below ground level) harmless.

To the best of my knowledge it works in any complevel and displays correctly in both software and OpenGL. The main drawback is the time taken for the barrel to detonate, as the delay is just long enough to think "oh, that was harmless?" before the screen turns red.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×