printz Posted July 19, 2016 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. 0 Share this post Link to post
Fonze Posted July 19, 2016 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. 0 Share this post Link to post
Altazimuth Posted July 20, 2016 Great work as per usual. If you're a Windows user and want to get a go at using it before the DRDTeam build is uploaded (as it wasn't uploaded overnight), then you can get it here. 0 Share this post Link to post