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

Polyobject linked portals now available

Recommended Posts

The main builds of Eternity -- available on http://devbuilds.drdteam.org/eternity/ -- will from now on support linedef linked portals on polyobjects. This means that each polyobject will be linkable to a sector which in-game appears inside it, letting you have moving platforms/cabs/trams/rafts in Doom.

Since it's kind of a new feature, and it's accepted that development builds are beta or in progress, here are all the conditions needed to make them work:

1. Draw an external control sector and draw a polyobject made of 1-sided lines, as usual. Place the polyobject in the playable area, as normal.

2. Draw a small new sector, neighboring the control sector. Join it with a sector from the main gameplay area. This is very important: the control sector and the main area must be connected, similar to how sound zones work. Do NOT join directly the control sector with a sector from the main area. This is because of a limitation in the portal physics code which I haven't fixed yet.

3. Draw the interior part of the polyobject in another outer area of the map. It doesn't need to reference the polyobject, it just has to have the same over-all shape.

4. Now place linedef linked portals on the polyobject. Unlike all other linedef linked portals, these will have to be 1-sided, because the polyobject itself must usually be made of 1-sided lines. Don't worry! The lines will be passable. Also -- unlike usual 1-sided lines, these ones accept lower and upper textures!

5. Place the equivalent linedef linked portal anchors in the inner sector. These ones will have to be as usual: two-sided lines, with area behind them large enough for anyone to fit.

Now you're pretty much done. Don't forget of Polyobj_StartLine, which must be placed on the polyobject!

Known limitations:
- Polyobj_StartLine means that you won't be able to place a portal on that line, so the resulting cabin will always have a non-portal post or obstacle. I'm thinking on how to fix that, so you can have fully open cabins. I've considered adding a new parameter to Polyobj_StartLine which enables a line portal on that line, but I'm still thinking if there are better, more future-proof ways to implement it. Currently it's not officially available.
- currently rotation won't work. It will just create a visual mess.
- do NOT move polyportals that butt walls. Imprecision in Doom's direction will result in HOM. Moving objects shouldn't rub off walls in real life, anyway.
- do not let things partially on the polyobject, but with the center inside it, collide with very nearby walls. Detection for that isn't implemented yet. To be safe, make distance from polyobject to walls at least the player's radius (16).
- for most cases, the platform will have both a moving floor and ceiling. The exception is outdoors, when you can set the inner sector ceiling to F_SKY1, just like the outer sector, so it will look like only the floor is moving.
- do not combine with sector portals, yet. Someone from below a portal below the polyobject cabin will just see texture bleeding.
- if you link the inner sector with other areas, the delta offsets will be inconsistent. I'm considering fixing that.

The boat you see in this picture is such a construct. The two posts you see there exist because one of them has to use Polyobj_StartLine.

Share this post


Link to post

That's really awesome printz! I look forward to your progress on this; it's cool to see Doom get such advanced features.

Good luck as you continue to hash out the details! Can't wait to play the map as well.

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
×