Editing Linked portal
From Eternity Wiki
Jump to navigationJump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
'''Linked portals''' are a powerful feature which make it possible to connect two separate areas of a map via the floor/ceiling or linedefs, allowing the player to see, shoot, and even move seamlessly from one area into another. They are used similarly to two-way portals, apart from the fact that you can pass through them. They can be used to create 3D architecture and room-over-room effects, with very few limitations | '''Linked portals''' are a powerful feature which make it possible to connect two separate areas of a map via the floor/ceiling or one-sided linedefs, allowing the player to see, shoot, and even move seamlessly from one area into another. They are used similarly to two-way portals, apart from the fact that you can pass through them. They can be used to create 3D architecture and room-over-room effects, with very few limitations. | ||
{{backto|Portal linedef types}} | {{backto|Portal linedef types}} | ||
==Line triggers== | ==Line triggers== | ||
# Class Trig Description | # Class Trig Description | ||
Line 35: | Line 18: | ||
385 Ext -- Apply portal to front sector | 385 Ext -- Apply portal to front sector | ||
==Terminology== | ==Terminology== | ||
Linked portals have their own specific sub-set of terminology used to describe certain aspects and behaviors. | Linked portals have their own specific sub-set of terminology used to describe certain aspects and behaviors. | ||
=== | ===Portal Plane=== | ||
Unlike the basic portal types, which were rendered and could cover height variances (much like the doom sky), linked portals form an actual map structure. The '''Portal Plane''' refers to an X/Y plane that bisects the sector(s) that contain the portal. The z-position of the portal is fixed, and should be the same height on both sides of the linked portal. | Unlike the basic portal types, which were rendered and could cover height variances (much like the doom sky), linked portals form an actual map structure. The '''Portal Plane''' refers to an X/Y plane that bisects the sector(s) that contain the portal. The z-position of the portal is fixed, and should be the same height on both sides of the linked portal. | ||
===Beyond the Plane=== | ===Beyond the Plane=== | ||
Line 63: | Line 41: | ||
There are two kinds of linked portals: plane portals and line portals. Plane portals are sector floor or ceiling surfaces that vertically connect different sector groups (layers) of the map. Line portals are linedefs that connect areas horizontally. | There are two kinds of linked portals: plane portals and line portals. Plane portals are sector floor or ceiling surfaces that vertically connect different sector groups (layers) of the map. Line portals are linedefs that connect areas horizontally. | ||
===Setting up | ===Setting up plane portals=== | ||
There must be (at least) two sectors in the map, not linked together by any path (similar to how disjoint areas exist in classic Doom maps and are gameplay-connected only by teleporters). | There must be (at least) two sectors in the map, not linked together by any path (similar to how disjoint areas exist in classic Doom maps and are gameplay-connected only by teleporters). | ||
Line 102: | Line 80: | ||
===Setting up wall portals=== | ===Setting up wall portals=== | ||
Wall portals are slightly simpler to implement. The two separate sectors must have the same floor and ceiling heights and the portal linedefs need to be of the same length and angle. | Wall portals are slightly simpler to implement. The two separate sectors must have the same floor and ceiling heights and the portal linedefs need to be of the same length and angle. They must also be two-sided, passable and have a buffer sector behind them, with enough depth so the portal is walkable by the intended actors (so they don't bump into the back wall of the buffer sector). | ||
The two linedefs will have the 376 and 377 specials (respectively, order not being important) and a common tag (which doesn't have to belong to any sector). | |||
Note that to render correctly, the buffer sectors behind them will need to have different light levels from the one in front of them. If the portal works correctly, they will never be visible during the game, and won't be accessible unless the user activates no-clipping mode. | |||
Here is a diagram on how to set up: | |||
----------x <----main area sectors---------> x--------- | |||
| Visible x---------x | |||
| | | | |||
| | |<linedef B | |||
x-------x | | type 377 | |||
linedef A>| |<-buffer sectors-> | | tag n | |||
type 376 | | x---------x | |||
tag n | | Never visible in-game | | |||
| | but wide enough to fit | | |||
----------x-------x walking objects x--------- | |||
Set their light levels to different values from neighbouring main area sectors | |||
===Lifts between plane portals=== | |||
You can make the floor or ceiling of a sector move from a sector group (layer) to another by using the [[Attached surface linedef types]]. | |||
You can | |||
==Caveats and limitations== | ==Caveats and limitations== | ||
* Linked areas must have | * Linked areas must have corresponding floor or ceiling heights. It's not possible to look and move into an area with different Z coordinates. | ||
* It is possible to make "impossible" structures, both with plane and line portals, | * It is possible to make "impossible" structures, both with plane and line portals, but note that Eternity will attempt to render any scene relative to viewer's coordinates when looking at the portal, including any unrelated sectors placed at the same XY coordinates as the "virtual" tunnel. This undesired effect can be reduced by setting up the layout of the map properly. | ||
* An "infinite" tunnel can be created, but it must consist of at least three sector groups in a cycle, as well as avoiding any visibility glitches mentioned in the previous point. The | * An "infinite" tunnel can be created, but it must consist of at least three sector groups in a cycle, as well as avoiding any visibility glitches mentioned in the previous point. | ||
The following four points are valid because linked portals as a reliable feature are not fully implemented, but have been made available to the user, or for experimentation: | |||
* Currently the hitscan traversal through portals is not implemented, which means that bullet attacks will be stopped, monsters will not be able to see you etc. The monsters will be able to hear and follow you through the portal however, and projectiles will pass through. | |||
* Currently, an actor standing between two layers separated by a plane portal will jump repeatedly between the two areas and have difficulty walking. | |||
* Currently sprites aren't seamlessly rendered through portals, appearing cut off by the portal plane. | |||
* Currently, moving through portals can result in objects getting stuck, telefragged etc. Previously it was a hazard to the player too, as anything could telefrag, but it has been changed to be less hazardous. | |||
Regardless, it is still possible to make convincing levels with linked portals even at their current state, as long as you make sure that major combat scenes will not take place between portals. Flying monsters can still follow the player through portals, so they have an advantage. | |||
==Tutorial== | ==Tutorial== | ||
Refer to Zarkyb's [[linked portals tutorial]] for more examples on usage. | Refer to Zarkyb's [[linked portals tutorial]] for more examples on usage. | ||
==Examples== | ==Examples== | ||
[https://s3-eu-west-1.amazonaws.com/eternity/linked_port.wad demo file] - a demonstration of both plane and wall portals. | |||
a demonstration of both plane and wall portals. | Played on '''Doom2, Map01'''. | ||
Played on '''Doom2 | |||
Things to note: | Things to note: | ||
* In compatibility menu the option '''actors have infinite height''' needs to be set to '''false''' in order for any actor to fall through a portal. | * In compatibility menu the option '''actors have infinite height''' needs to be set to '''false''' in order for any actor to fall through a portal. | ||
* The "upper part" is textured differently from the | * The "upper part" is textured differently from the lower part. While in game observe when textures change and where exactly the clipping occurs. | ||
* When viewing automap notice how position is updated. Player doesn't seem to "teleport" from one place of the map to another, yet his X/Y coordinates change when passing a portal boundary. | * When viewing automap notice how position is updated. Player doesn't seem to "teleport" from one place of the map to another, yet his X/Y coordinates change when passing a portal boundary. | ||
* Use console commands like '''spawn doomimp''' to test how monsters see, hear and aim through portals. | * Use console commands like '''spawn doomimp''' to test how monsters see, hear and aim through portals. | ||
[[File:Linked_portals.png]] | [[File:Linked_portals.png]] | ||
[[Category:Editing]] | [[Category:Editing]] | ||
[[Category:Editing reference]] | [[Category:Editing reference]] | ||