Network multiplayer issues
Posted: Wed Oct 31, 2018 9:51 pm
(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.
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.