Network multiplayer issues

Found a bug in R'n'D? Report it here!

Moderators: Flumminator, Zomis

Post Reply
ncrecc
Posts: 153
Joined: Thu Jul 12, 2018 12:59 am

Network multiplayer issues

Post by ncrecc »

(For clarity, I'm referring to the actual people playing the game as Players and the characters they control as Characters. If I say "Player A" or "Player B" then it doesn't matter what slot the players are in. If I just say "A" or "B" I'm only referring to the players.)

1. Any player in a network game can switch control to Character 1 by saving then loading a tape. Recording a gif of this would be difficult, so hopefully I'm describing it well. Doing this causes whoever is Player 1 to have the playfield and timers frozen on their screen (NOT the whole program, just the playfield - but the "pause" indicator will not be lighted when this happens) until the "imposter" player has died or exited and Player 1 tries loading a tape.
2. If Player A tries loading a tape after Player B has died or exited, and the state shown on the tape has Character B in it, Player A will be able to control Character B with the regular controls for Character B.
^ Both of these can be fixed by having a player who loads a certain tape force all other players in the network game to load from that same tape immediately. Or you could just disable tapes.

3. If Player A brings up a confirmation prompt (e.g. "do you really want to quit the game?" or "network game stopped by...") and does nothing, Player B can exit to the lobby and bring Player A with them, but any levels B tries to play will be "frozen" much like described above, so B has to either wait for Player A to close the confirmation prompt or exit back to the lobby. After A closes the confirmation prompt(s), A will be taken to levels in order of when Player B joined & exited them and have to close a "network game stopped by player (B)"! prompt until A either reaches the level that B is currently in or reaches the lobby. If A reaches the same level as B while or after going through this cycle, a "network game stopped due to internal error!" message will appear for both players.
^ This can be fixed by having a player who loads a level while other player(s) are on a confirmation prompt force the other player(s)' confirmation prompt to close and load the same level as that player immediately.
filbo
Posts: 647
Joined: Fri Jun 20, 2014 10:06 am

Re: Network multiplayer issues

Post by filbo »

Good QA report! :)
filbo
Posts: 647
Joined: Fri Jun 20, 2014 10:06 am

Re: Network multiplayer issues

Post by filbo »

(a little bit confusing that you have Characters 1 & B; Players 1, A & B...)
ncrecc
Posts: 153
Joined: Thu Jul 12, 2018 12:59 am

Re: Network multiplayer issues

Post by ncrecc »

A and B are hypothetical players who can be in any position. Player A could be Player 1, or he could be Player 4, does not matter. What does matter is that the letter for a player is the same as the letter for a character - so if Player B is in slot 4, then he is Player 4, and Character B is Character 4 in that situation.
User avatar
Holger
Site Admin
Posts: 4073
Joined: Fri Jun 18, 2004 4:13 pm
Location: Germany
Contact:

Re: Network multiplayer issues

Post by Holger »

By "loading a tape", I assume you mean loading a saved game by pressing F2.

Regarding case 1 and 2:

Unfortunately, reloading a saved game snapshot over the network is currently not supported, and just leads to replaying the game in local team mode, not network team mode -- that's the reason why you can control Character B using the regular controls for this character.

Your suggestions to solve this problem sound resonable to me, and I should implement it one way or the other (which means either disabling tape snapshots in network mode entirely, or add decent support for it).

Regarding case 3:

You're right about your observation, and your suggestion how it could be fixed. However, I'm not sure if closing somebody's confirmation prompt "over the network" is a good idea or not, as it takes away control to react on this prompt (or even read its message text) for that player. But I also thought about some "interruptible" kind of message box that either says "player X has restarted the game" for a few seconds, or that says "waiting for some players..." until all other players have answered they confirmation prompts and then automatically disappears...
Post Reply