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

Some suggestions for source ports

Recommended Posts

I got some few suggestions that could improve source ports like ZDoom. If you also have some to give please post it here.
· WAD could have lumps PALLETEn, where n is the pallete number, and within PA_START and PA_END. TEXTURES could select the PALLETEn to use in a texture (e.g. removing problems when you want to use textures from an IWAD in a map designed for another IWAD).
· An WAIT command for those ports that haven't implemented it yet. It could be useful e.g. for looping comands, as it wait enough tics to keep the engine cool while slowly recursing.
· Overlaying floormap markers Fn_START and Fn_END (where n is the number of the floor) for a map rendering that approaches actual 3D even more. The Fn markers should inside contain the map data that will make floor n. During rendering, each floor's map data is merged. Sectors that are in the same horizontal coordinates as sectors of other floors will simply be rendered as separate sectors. (this could e.g. make for a room with a catwalk. Simply make the room as two sectors in floor 1, where the catwalk area would have the ceiling height of the catwalk bottom. Floor 2 would have a sector in the same area as the catwalk sector in floor 1, however the floor height is the catwalk top and the ceiling height here is the same as the one for the main (non-catwalk) sector in Floor 1.
· Every source port should have a individual Doomseeker-compatibility plug-in.
· A Developer Plugin that have more CCMDs e.g. a "linetarget" that will track the nearest actor in player's FOV instead of a tracer from aim that returns the first colliding actor, as many don't have a collision cylinder.

Share this post


Link to post

PALETTEn is not really needed because ports like ZDoom already allow to use PNG for graphics. But if such a feature was added, I'd see no point in limiting it to a number; you could just as well have "palette = HEXENPAL" in the texture definition.

Wait command: What?

Your idea with floor markers confuses me and I don't see how you'd make a difference between areas where 3D floors are needed and areas where they aren't. There already are 3D floor features in ports such as ZDoom.

Doomseeker plugins only make sense if the port has a client-server netcode.

Developer plugins: What?

Share this post


Link to post

Supporting multiple palettes and/or PNGs is pointless IMO without support for extended color depth (>8 bit), and even ports with HiColor or TrueColor support in software mode usually implement it in a way that resources still have to be 8-bit. However it's perfectly possible for each sprite and texture to have its own palette with relatively minor hacks to the renderer, leaving the lighting system intact too, as long as it doesn't use more than 256 colors itself.

The "overlaying floor markers" sounds like yet another trick to do RoR (Room-over-Room) or SoS (Sector-over-Sector) rendering. Several ports have such a functionality, with pretty similar mapping workarounds to obtain them (e.g. tagging a sector as "multilayered", and then having several dummy sectors with the same tag, definining the "sandwiched" floors and ceilings).

Share this post


Link to post

Oh I finally understood Gustav's floor marker idea. Basically you have several different maps that the engine must merge together. There are many problems with that approach, however.
- How are they created? In the absence of a map editor supporting this feature, I imagine the solution would be to create a map for one floor, then use a lump editor to move it between Fn markers, then create a separate map for the next floor, etc. So each part of the map must be created separately from the others.
- On the engine side, merging separate maps together is going to be a lot more complicated to implement than the existing approaches based on tagged sectors.
- Don't get me started on the nodebuilder side of things.

Share this post


Link to post

WAIT n is a command that waits a certain number of tics before executing the next command in alias or bind. Example: Loop that gives a Strife environmental suit until loopoff is run.

>alias SysExec_loop "loopingcommand; wait 30; test = looping 1 sysexec_loop"
>alias loopon "set looping 1; sysexec_loop"
>alias loopoff "set looping 0"
>alias loopingcommand "give environmentalsuit"
Currently only Zandronum has wait.
Also SLADE3 makes it easy to make multiflooring. Just move map lump between floor markers.

Share this post


Link to post
VGA said:

He's talking about console scripts, not ACS. I'm not sure why he believes the wait command doesn't exist outside of Zandronum -- the reason it's in Zandronum is that it has been in ZDoom forever.

Regardless I can't help but wonder what other ports he's talking about. Two of his suggestions are specific to console commands (and I'd even say ZDoom console commands specifically)...

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
×