Page 1 of 1

How does ZDoom handle DIALOGUE in multiplayer?

PostPosted: Tue Sep 27, 2016 8:28 am
by juizzysquirt
Using search I only found one very old topic about this subject, around 2004 when Strife conversations used to cause immediate desyncing in multiplayer, and Graf was quite annoyed about even thinking of fixing it. :)

So where are we now? My current project is relying heavily on them, and I'd like to know should I even consider adding coop-support?

Re: How does ZDoom handle DIALOGUE in multiplayer?

PostPosted: Tue Sep 27, 2016 11:19 am
by Rachael
Well Graf isn't much into the multiplayer part of ZDoom, though our main "network man" is kind of on hiatus right now due to real life stuff.

I'd say go for it, and report any bugs you find. Let Graf get annoyed. There will likely be someone who can fix them. Don't forget the "-host 2" and "-join 127.0.0.1" trick for local testing. :)

Re: How does ZDoom handle DIALOGUE in multiplayer?

PostPosted: Tue Sep 27, 2016 11:48 am
by arookas
Eruanna wrote:Don't forget the "-host 2" and "-join 127.0.0.1" trick for local testing. :)

Not to derail, but, speaking of this, do you know of any way to get g/zdoom to keep rendering while the other "player's" window is not focused? It makes local testing quite difficult when nothing updates on the non-focused window. I've tried -noidle, but it doesn't seem to have any effect.

Re: How does ZDoom handle DIALOGUE in multiplayer?

PostPosted: Tue Sep 27, 2016 11:54 am
by Rachael
ZDoom will update just fine - but GZDoom, I do not know. It's probably a simple line of code that does that. I'd like to see consistent behavior for both, possibly controlled by a command-line option. (There's very good reasons to stop updating the window when it's no longer in focus, but that choice should not be forced upon the player)

Re: How does ZDoom handle DIALOGUE in multiplayer?

PostPosted: Tue Sep 27, 2016 12:32 pm
by Nash
Re local testing with GZDoom - I notice that both windows will only update if I don't tab out of the initial window I was given control to upon running all the instances. Once I start switching to other windows - any previous windows will stop updating its graphics output.

To help me with this, I made 2 .bat files which also position the 2 windows side-by-side so that I can avoid tabbing between windows and be able to see both as soon as the game is launched.

coop host 2.bat
Code: Select allExpand view

LADgame 
-file src +name Player1 +sv_cheats 1 -noidle -host 2 +map "nash test 01" +fullscreen 0 +vid_defwidth 800 +vid_defheight 450 +win_x 41 +win_y 523

exit


coop join - player 2.bat
Code: Select allExpand view

LADgame 
-file src +name Player2 -noidle -join localhost +fullscreen 0 +vid_defwidth 800 +vid_defheight 450 +win_x 864 +win_y 523

exit
 


As Eruanna said; this doesn't happen with ZDoom. Only GZDoom (OpenGL renderer).

Re: How does ZDoom handle DIALOGUE in multiplayer?

PostPosted: Tue Sep 27, 2016 12:37 pm
by Rachael
When I get some time I'll see about adding a PR for command-line options to control this behavior. No guarantee it'll get accepted, though. :(

Re: How does ZDoom handle DIALOGUE in multiplayer?

PostPosted: Tue Sep 27, 2016 2:12 pm
by juizzysquirt
I could use my laptop to test DIALOGUE-scripts in mp, though only with ZDoom since it has one of those integrated GPU's that don't play well with GZD.

Re: How does ZDoom handle DIALOGUE in multiplayer?

PostPosted: Tue Sep 27, 2016 4:22 pm
by Tapwave
Not sure if this is relevant, but something I've found while playing Stronghold with Undead is that only one person can talk to a DIALOGUE-bound NPC. If I decide to chat up Randy, and then Undead comes and uses him, even after I closed the dialogue box, nothing happens. I can reinitiate dialogue with Randy (or any NPC I talked to first), whereas he can not, and vice-versa.

Re: How does ZDoom handle DIALOGUE in multiplayer?

PostPosted: Tue Sep 27, 2016 4:35 pm
by Nash
Tapwave: that sounds like a bug.

Re: How does ZDoom handle DIALOGUE in multiplayer?

PostPosted: Tue Sep 27, 2016 4:36 pm
by Rachael
That is a bug, and should definitely be reported.