sv_altnoclip

Moderator: GZDoom Developers

Post Reply
Hypersonic
Posts: 134
Joined: Mon Aug 14, 2017 3:04 pm

sv_altnoclip

Post by Hypersonic »

noclip2 is very fun and useful. However, one thing you can't do is move forward horizontally while looking down. It's like Quake's fly cheat. In QuakeSpasm there's a variable called sv_altnoclip.

sv_altnoclip 0 = forward is always horizontal forward, regardless of your pitch (Darkplaces source port is like this be default) allowing you to move forward while looking down.
sv_altnoclip 1 = forward depends on your pitch angle, just as noclip2 acts now.

It would be grand to be able to switch between the 2 modes in GZDoom, as one can in QuakeSpasm.
User avatar
Arctangent
Posts: 1235
Joined: Thu Nov 06, 2014 1:53 pm
Contact:

Re: sv_altnoclip

Post by Arctangent »

Sounds more like a setting to apply to flying and swimming in general, honestly.
User avatar
Rachael
Posts: 13530
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her
Contact:

Re: sv_altnoclip

Post by Rachael »

If I do this, it's *definitely* not going to be a sv_* variable. I would make it a user-settable cl_* variable.
Hypersonic
Posts: 134
Joined: Mon Aug 14, 2017 3:04 pm

Re: sv_altnoclip

Post by Hypersonic »

Well noclip2 is flying, but with the ability to fly through walls (but not floors and ceilings like in Quake.) Ya applied to flying and swimming would be nice. Regular noclip is walking with the ability to walk through walls.

I suppose QuakeSpasm made it a sv_ variable because of the other sv_ movement variables, such as sv_friction, sv_acceleration. I believe because the server calculates this stuff, the client basically supplies inputs and waiting for results (pre-Quakeworld.) Quakeworld added client side prediction where the client predicts the result of the input, although the server still calculates it as well.

This would be useful while moving with noclip2 in map mode as well. If you're pitched way up or down the movement horizontally is slowed.
User avatar
Rachael
Posts: 13530
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her
Contact:

Re: sv_altnoclip

Post by Rachael »

Well - come to think of it cl_* definitely wouldn't fit either - just a regular unprefixed variable, instead, similar to other preferences like "name", "autoaim", "maxviewpitch", etc.

Those preferences probably should've undergone a u_* prefix.

Either way - GZDoom is not server controlled, anyway, and sv_* variables simply reflect a netgame arbiter's settings to the game, nothing more. Something like this should not be set by net arbiters, but by each individual member of the game, themself, to themselves.
Hypersonic
Posts: 134
Joined: Mon Aug 14, 2017 3:04 pm

Re: sv_altnoclip

Post by Hypersonic »

That makes sense. With either mode the net result is the same; some x thrust, y thrust, and z thrust is outputted to the physics engine. Currently the only mode available makes forward input become vectored into both y and z thrusts, so when looking straight up or down you no longer have y thrust capability. Since dual chording exists in Doom physics using x and y, I'd assume tri chording would be possible as well with fly/noclip2 (no vector normalization.)
User avatar
Rachael
Posts: 13530
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her
Contact:

Re: sv_altnoclip

Post by Rachael »

Basically, it would involve setting the pitch to zero when processing the +FORWARD and +BACKWARD command. The trouble is ensuring that it remains netgame compatible - the user preference will have to be serialized with each player's identification string, since each client runs a full copy of the game themselves it is important to ensure that movement data is properly processed for each individual user's preference in order to prevent desync's.

This can be done fairly easily, but the task gets a little more involved with setting up the serialization and ensuring the proper variable copies are set for each player. It's doable, but time consuming.
Hypersonic
Posts: 134
Joined: Mon Aug 14, 2017 3:04 pm

Re: sv_altnoclip

Post by Hypersonic »

Another possibility is to just have noclip, and no noclip2. noclip determining if walls clip your movement or not, while fly determining if you fly or not. If someone wants to enable/disable both noclip and fly together, an alias can easily accommodate. Maybe call it wallclip, as floor/ceilings still clip movement, and reserve noclip for when/if you can noclip all surfaces in the future.

Perhaps instead of altnoclip, it could be called flightadvanced. With current fly/noclip2 you can get around without using up/down controls, but you can't look down/up while moving forward/back at the same time.

I'm not familiar with Zdoom's networking system. So clients share input values, not thrust values? Then they each determine how to apply thrust from the input?
User avatar
Rachael
Posts: 13530
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her
Contact:

Re: sv_altnoclip

Post by Rachael »

Hypersonic wrote:Another possibility is to just have noclip, and no noclip2. noclip determining if walls clip your movement or not, while fly determining if you fly or not. If someone wants to enable/disable both noclip and fly together, an alias can easily accommodate. Maybe call it wallclip, as floor/ceilings still clip movement, and reserve noclip for when/if you can noclip all surfaces in the future.
Noclip came from original Doom, and it is needed to have in order to retain compatibility with the "idclip" cheat from the original Doom executable. It's not going away anytime soon.

Noclip2 came from a feature suggestion that originally requested to be able to move through floors, completely, which regular noclip+fly cannot do. Unfortunately, GZDoom has a tendency to crash when the player is in an invalid Z position, so the ability to noclip2 through 3D floors did get implemented but going through floors and ceilings was never allowed.

There are no plans to combine these two together.
Hypersonic wrote:Perhaps instead of altnoclip, it could be called flightadvanced. With current fly/noclip2 you can get around without using up/down controls, but you can't look down/up while moving forward/back at the same time.
Or just "altflying". Heretic had similar behavior - I am not sure why it was changed to be the way it was, but I think it should be a preference, instead.
Hypersonic wrote:I'm not familiar with Zdoom's networking system. So clients share input values, not thrust values? Then they each determine how to apply thrust from the input?
Correct. In net mode, each player is simultaneously "playing" a copy of their own character on their own machine, plus actually playing a copy of their own character on each player's machine.

So if you hold down shift, each player's copy of you in fact holds down shift. It replicates the entirety of your input to a tee. You just don't see other players doing it because you are only going to view it through your own viewpoint (unless you press F12).

That's why it's important all your preferences get broadcasted, because if for example player 1 has autoaim off and player2 has it on, the only thing that gets sent is you pressing the fire button and what direction you faced - not what you were aiming at. It would be pointless for player 1's game to act differently than player 2's just because of different auto aiming preferences, and plus it would break the synchronization because player 2 will probably register the monster as being dead due to that shot, while player 1 will have registered a miss. Obviously you can't have a net game operate this way, so you must ensure that each player's preferences are loaded in with their inputs so that each copy of the game registers the proper behavior.
User avatar
Rachael
Posts: 13530
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her
Contact:

Re: sv_altnoclip

Post by Rachael »

Added as 'classicflight' CVar.

Don't ask me to figure out how to put that into the player setup menu... that looks more complicated than I want to mess with. For now you'll just have to live with it being a CVar.
Hypersonic
Posts: 134
Joined: Mon Aug 14, 2017 3:04 pm

Re: sv_altnoclip

Post by Hypersonic »

That's awesome, thanks! Actually I prefer cvars, I have lots of cvars in autoexec.cfg files for Doom and Heretic. Can't wait to try it out!
Hypersonic
Posts: 134
Joined: Mon Aug 14, 2017 3:04 pm

Re: sv_altnoclip

Post by Hypersonic »

Just tried classicflight 1 on the latest version of GZDoom, works great, thanks! Can fly just like in Google Earth now. Now when moving in map mode pitch doesn't matter, while before if you had high pitch you'd move slow, and you might hit slime/lava if pitched down.

Regarding what is now classicflight 0: Having forward move toward the player's pitch direction isn't a bad option either, however at the same time they should have made up/down move toward the player's vertical axis and not the map's vertical axis. So when you look straight down, pressing up moves you forward relative to the map instead of moving you up relative to the map.
Post Reply

Return to “Closed Feature Suggestions [GZDoom]”