Summary: changing controller can cause OOS
Project: Battle for Wesnoth
Submitted by: gfgtdf
Submitted on: Fr 14 Okt 2016 19:17:05 UTC
Severity: 3 - Normal
Priority: 5 - Normal
Item Group: Multiplayer
Assigned to: None
Discussion Lock: Any
Release: 1.13, 1.12, and earlier
Operating System: all
Assume a mp scenario with 2 clients, side 1 is host, its turn of side 2. when
side 1 now uses :control command to reassign side 1 to another player client 2
might get an OOS in case that he did moved at the same time (since the server
will rekect those moves but the client has already done them and cannot undo
Thre are multilpe was to fix the problem, for example:
1) we could make :control work in 2 phases where first everyones moves are
blockes and the the sides controllers are changes, like in:
1) host -> server ':control'
2) server -> c 'lock moves'
3) current player -> server 'lock done'
4) server -> all clients 'change controller and release lock'
where step 4 only happens after the server recived 'lock done' form the
current player clients.
2) Another was to fix this problem would be to make the server smart enough to
notice that a package was rejected because of an async controller change and
then send the curent player the correct gamestate to fix the OOS.
3) Another option, not really a fix but sureley an improvement of the current
situation would be to make the server smart enough to notice that a package
was rejected because of an async controller change and then send the cilent a
clear message of what has happened istead of just a 'rejected package'
Reply to this item at:
Nachricht gesendet von/durch Gna!
Wesnoth-bugs mailing list