MantisBT - Zandronum
View Issue Details
0001097Zandronum[All Projects] Bugpublic2012-10-02 03:252014-06-12 20:29
unknownna 
 
lowtrivialalways
feedbackreopened 
1.0 
 
0001097: View bobs if bumping into server-side thing
The view will bob up and down if you run into a SOLID server-side thing that is not there on the client-end.
1. zandronum.exe -file thing_desync_02.wad -playdemo 2012.10.01_08.31.53_thing_desync_02.cld
thing_desync_02.wad
2012.10.01_08.31.53_thing_desync_02.cld
No tags attached.
related to 0000817assigned Torr Samaho Thing x/y/z position desync between client/server 
Issue History
2012-10-02 03:25unknownnaNew Issue
2012-10-02 03:25unknownnaStatusnew => confirmed
2012-10-02 04:01ZzZomboNote Added: 0004908
2012-10-02 17:51Torr SamahoNote Added: 0004916
2012-10-02 17:51Torr SamahoNote Edited: 0004916bug_revision_view_page.php?bugnote_id=4916#r2673
2012-10-02 17:51Torr SamahoNote Revision Dropped: 4916: 0002672
2012-10-02 17:52Torr SamahoStatusconfirmed => closed
2012-10-02 17:52Torr SamahoResolutionopen => no change required
2012-10-03 05:00unknownnaNote Added: 0004923
2012-10-03 05:00unknownnaStatusclosed => feedback
2012-10-03 05:00unknownnaResolutionno change required => reopened
2012-10-03 05:05unknownnaStatusfeedback => closed
2012-10-03 05:05unknownnaResolutionreopened => no change required
2012-10-03 18:11Torr SamahoNote Added: 0004935
2012-10-03 18:18Torr SamahoStatusclosed => feedback
2012-10-03 18:18Torr SamahoResolutionno change required => reopened
2012-10-04 02:41unknownnaNote Added: 0004943
2012-10-04 02:41unknownnaStatusfeedback => new
2012-10-04 03:53ZzZomboNote Added: 0004944
2012-10-04 04:46unknownnaRelationship addedrelated to 0000817
2012-10-04 19:58Torr SamahoNote Added: 0004954
2012-10-05 04:25unknownnaNote Added: 0004959
2012-10-05 04:25unknownnaNote Edited: 0004959bug_revision_view_page.php?bugnote_id=4959#r2699
2012-10-05 05:18unknownnaNote Edited: 0004959bug_revision_view_page.php?bugnote_id=4959#r2700
2014-06-12 20:29WatermelonNote Added: 0009166
2014-06-12 20:29WatermelonStatusnew => feedback

Notes
(0004908)
ZzZombo   
2012-10-02 04:01   
It's a bug in the mod if it spawns solid or visible server-side actor. It's even stated in ZDoom Wiki.
(0004916)
Torr Samaho   
2012-10-02 17:51   
Yes, it's not allowed to use SERVERSIDEONLY like this:
Quote from "Skulltag Version History.txt"
Added new DECORATE actor flag SERVERSIDEONLY. The clients don't spawn such actors, only the server does. Therefore, spawning or manipulating these actors does not need network bandwidth. Only use it on actors that are always invisible and don't block the movement of players. [Torr Samaho]


(0004923)
unknownna   
2012-10-03 05:00   
Quote from Torr Samaho
Yes, it's not allowed to use SERVERSIDEONLY like this.

FYI, none of the actors in the example WAD use SERVERSIDEONLY.
(0004935)
Torr Samaho   
2012-10-03 18:11   
SERVERSIDEONLY aside, actors that exist on the server but not on the clients shouldn't exist (and will inevitably cause problems if they are solid). How did you manage to create an actor that's only on the server without SERVERSIDEONLY?
(0004943)
unknownna   
2012-10-04 02:41   
The actor is spawned on the client-end, but once you desync the client-side and server-side positions, the view bob issue will occur if you bump into the server-side actor. Here's the DECORATE code:

Actor DummyPlayer 32767
{
    Health 2147483647
    Radius 16
    Height 56
    Mass 100
    +SOLID
    +SHOOTABLE
    +DROPOFF
    +SLIDESONWALLS
    +CANPASS
    +FLOORCLIP
    +WINDTHRUST
    +TELESTOMP
    +NOBLOCKMONST
    States
    {
    Spawn:
        TNT1 A 0
        TNT1 A 0 A_SpawnItemEx ("ServerSideActor", 0, 0, 0, 0, 0, 0, 0, 0, 0)
        TNT1 A 0 A_SpawnItemEx ("ClientSideActor", 0, 0, 0, 0, 0, 0, 0, SXF_CLIENTSIDE, 0)
        TNT1 A 1
        Loop
    }
}

Actor ServerSideActor
{
    +NOBLOCKMAP
    +NOGRAVITY
    States
    {
    Spawn:
        PLAY A 2 Bright
        Stop
    }
}

Actor ClientSideActor
{
    Translation 2
    +NOBLOCKMAP
    +NOGRAVITY
    States
    {
    Spawn:
        PLAY A 2 Bright
        Stop
    }
}
(0004944)
ZzZombo   
2012-10-04 03:53   
Alright, I pretty sure it's an old Skulltag bug (at least of v98d). Zombie Horde's pushable items tends to desync after a while between clients and server and your viewport bobs if you're bumping into real ones. To workaround that you can call A_Recoil(0) in Idle or Spawn state of the actor definition.
(0004954)
Torr Samaho   
2012-10-04 19:58   
Quote from unknownna
The actor is spawned on the client-end, but once you desync the client-side and server-side positions, the view bob issue will occur if you bump into the server-side actor.
Ah, so when you say "server-side" you mean an actor that is spawned by the server on the server and on the clients (which actually just is a normal actor to me, as all actors without CLIENTSIDEONLY or SERVERSIDEONLY should be there on clients and server). So the bug here is not the view bobbing, this is just a symptom of the actual bug, i.e. the desync of the actor position on clients and server.

BTW: Since ClientSideActor is client side, all restrictions for CLIENTSIDEONLY actors apply. For instance, it may not be solid.
(0004959)
unknownna   
2012-10-05 04:25   
(edited on: 2012-10-05 05:18)
Quote from Torr Samaho
Ah, so when you say "server-side" you mean an actor that is spawned by the server on the server and on the clients (which actually just is a normal actor to me, as all actors without CLIENTSIDEONLY or SERVERSIDEONLY should be there on clients and server).

Yes.

Quote from Torr Samaho
So the bug here is not the view bobbing, this is just a symptom of the actual bug, i.e. the desync of the actor position on clients and server.

It is a symptom of the actual bug, but it feels buggy when the client bobs its view up and down when you're not pressing a movement key, e.g., +forward.

Quote from Torr Samaho
Since ClientSideActor is client side, all restrictions for CLIENTSIDEONLY actors apply. For instance, it may not be solid.

I know, but the ClientSideActor/ServerSideActor is not solid. Only the DummyPlayer is solid. But your client will think that the ClientSideActor is solid once the DummyPlayer x/y/z positions desync between the client and server.

(0009166)
Watermelon   
2014-06-12 20:29   
Still in 2.0?