Bugs item #2934399, was opened at 2010-01-18 18:58
Message generated for change (Comment added) made by cleka
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=101939&aid=2934399&group_id=1939
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: General
Group: None
>Status: Closed
Resolution: Fixed
Priority: 5
Private: No
Submitted By: Donald J. Bailey (djbailey)
Assigned to: Clemens Katzer (cleka)
Summary: Turn incomplete in multi-player
Initial Comment:
In a recent 6 player network game, player A attacks player B Titan on Titan. Player A loses but player A's turn is not marked complete. This freezes the game for the other players. The game had to be abandoned. One solution is to recognize this and automatically end the players turn.
Related to this is the issue/feature that a losing player is automatically disconnected. One must log back in to make comments.In a multi-player network game, One would like to stay and watch rather than be disconnected.
----------------------------------------------------------------------
>Comment By: Clemens Katzer (cleka)
Date: 2010-02-06 20:21
Message:
Correction now visible in Release 0.10.2
=> Closing this.
if the "player gets disconnected when eliminated" reoccurs, please open a
new bug report separately for that.
----------------------------------------------------------------------
Comment By: Clemens Katzer (cleka)
Date: 2010-01-21 21:57
Message:
The main problem that turn is not completed is now resolved:
>From revision 4668 on server side in this case automatically advances
phase to next player.
That the eliminated player is disconnected is, as said earlier, not known
to me that this happens (the automated disconnect happens in 2 player
games, since then the game is over and Game Over stated games ARE
terminated by server to ALL players.
Leaving this open until it is visible in next release, as usual.
----------------------------------------------------------------------
Comment By: Clemens Katzer (cleka)
Date: 2010-01-19 22:59
Message:
I investigated this a little.
There are strange things in the log (attached, and relevant part at end of
this post), but none of them explains wht it seemed that eliminated plater
Brohymn was disconnected from server side.
18.01.2010 01:20:40 net.sf.colossus.server.ClientHandler withdrawIfNeeded
FEIN: Client disconnected without explicit withdraw - doing automatic
withdraw for player Ploppe2
18.01.2010 01:20:40 net.sf.colossus.server.GameServerSide
handlePlayerWithdrawal
FEIN: Nothing to do for withdrawal of player Ploppe2 - is already dead.
18.01.2010 01:21:16 net.sf.colossus.server.GameServerSide engage
WARNUNG: illegal call to Game.engage(): no opponent legion in hex Marsh
hex 41; hex contains: []
18.01.2010 01:21:31 net.sf.colossus.server.ClientHandler withdrawIfNeeded
FEIN: Client disconnected without explicit withdraw - doing automatic
withdraw for player Brohymn
18.01.2010 01:21:31 net.sf.colossus.server.GameServerSide
handlePlayerWithdrawal
FEIN: Nothing to do for withdrawal of player Brohymn - is already dead.
18.01.2010 01:25:02 net.sf.colossus.server.Server checkServerConnection
INFO: Server received checkServerConnection request from client nimzodon -
sending confirmation.
The strange things in short excerpt above are:
1) It appears also that (already dead) player Ploppe disconnected from his
side just about after battle was completed? Coincidence?
2) There is a strange warning about an attempt to engage on a hex 41 where
is no legion at all
3) and then also Brohymn is reported by server as "client closed his
network connection without explicit withdrawal" - NW connection lost, or
player closed his game, or the illegal engage somehow caused the client to
get an exception (or whatever) which kicked him out of the
"read-from-server" loop (just speculating)...
Strange strange. And basically impossible to reproduce :-(
~~~~~~~~~~~~
INFO: Critter Titan in Plains hex C4: 3 + 3 => 6; 0 excess
18.01.2010 01:20:26 net.sf.colossus.server.PlayerServerSide addPoints
INFO: KevinWorth earns 150.0 points (272.0 + 150.0 => 422.0)
18.01.2010 01:20:26 net.sf.colossus.server.PlayerServerSide die
INFO: Player 'Brohymn' is dying, killed by KevinWorth
18.01.2010 01:20:26 net.sf.colossus.server.PlayerServerSide addPoints
INFO: KevinWorth earns 54.0 half-points (422.0 + 54.0 => 476.0)
18.01.2010 01:20:26 net.sf.colossus.server.LegionServerSide
prepareToRemove
INFO: Legion Sk09[Guardian, Minotaur, Minotaur, Troll, Ogre, Unicorn] is
eliminated
18.01.2010 01:20:26 net.sf.colossus.server.LegionServerSide
prepareToRemove
INFO: Legion Sk07[] is eliminated
18.01.2010 01:20:26 net.sf.colossus.server.PlayerServerSide addPoints
INFO: KevinWorth earns 36.0 half-points (476.0 + 36.0 => 512.0)
18.01.2010 01:20:26 net.sf.colossus.server.LegionServerSide
prepareToRemove
INFO: Legion Sk08[Cyclops, Gargoyle, Gargoyle, Centaur, Cyclops] is
eliminated
18.01.2010 01:20:26 net.sf.colossus.server.PlayerServerSide addPoints
INFO: KevinWorth earns 26.0 half-points (512.0 + 26.0 => 538.0)
18.01.2010 01:20:26 net.sf.colossus.server.LegionServerSide
prepareToRemove
INFO: Legion Sk12[Ogre, Ogre, Ogre, Troll] is eliminated
18.01.2010 01:20:26 net.sf.colossus.server.PlayerServerSide die
INFO: Brohymn is dead, telling everyone about it
18.01.2010 01:20:30 net.sf.colossus.server.LegionServerSide addAngel
INFO: Legion Gd11 (Sun) is going to call addCreature() to add one acquired
Angel
18.01.2010 01:20:30 net.sf.colossus.server.LegionServerSide addCreature
INFO: Added Angel - now there are 16 left.
18.01.2010 01:20:30 net.sf.colossus.server.LegionServerSide addAngel
INFO: Legion Gd11 (Sun) acquired one Angel
18.01.2010 01:20:32 net.sf.colossus.server.LegionServerSide addAngel
INFO: Legion Gd11 (Sun) is going to call addCreature() to add one acquired
Angel
18.01.2010 01:20:32 net.sf.colossus.server.LegionServerSide addCreature
INFO: Added Angel - now there are 15 left.
18.01.2010 01:20:32 net.sf.colossus.server.LegionServerSide addAngel
INFO: Legion Gd11 (Sun) acquired one Angel
18.01.2010 01:20:32 net.sf.colossus.server.GameServerSide
checkEngagementDone
INFO: Battle completed, result: winner is Gd11 (player KevinWorth)
18.01.2010 01:20:40 net.sf.colossus.server.ClientHandler withdrawIfNeeded
FEIN: Client disconnected without explicit withdraw - doing automatic
withdraw for player Ploppe2
18.01.2010 01:20:40 net.sf.colossus.server.GameServerSide
handlePlayerWithdrawal
FEIN: Nothing to do for withdrawal of player Ploppe2 - is already dead.
18.01.2010 01:21:16 net.sf.colossus.server.GameServerSide engage
WARNUNG: illegal call to Game.engage(): no opponent legion in hex Marsh
hex 41; hex contains: []
18.01.2010 01:21:31 net.sf.colossus.server.ClientHandler withdrawIfNeeded
FEIN: Client disconnected without explicit withdraw - doing automatic
withdraw for player Brohymn
18.01.2010 01:21:31 net.sf.colossus.server.GameServerSide
handlePlayerWithdrawal
FEIN: Nothing to do for withdrawal of player Brohymn - is already dead.
18.01.2010 01:25:02 net.sf.colossus.server.Server checkServerConnection
INFO: Server received checkServerConnection request from client nimzodon -
sending confirmation.
18.01.2010 01:25:02 net.sf.colossus.server.ClientHandler
serverConfirmsConnection
INFO: Sending server connection confirmation to client nimzodon
18.01.2010 01:25:58 net.sf.colossus.server.ClientHandler withdrawIfNeeded
FEIN: Client disconnected without explicit withdraw - doing automatic
withdraw for player Rick
18.01.2010 01:25:58 net.sf.colossus.server.GameServerSide
handlePlayerWithdrawal
FEIN: Player Rick withdraws from the game.
18.01.2010 01:25:58 net.sf.colossus.server.PlayerServerSide die
INFO: Player 'Rick' is dying, killed by nobody
----------------------------------------------------------------------
Comment By: Clemens Katzer (cleka)
Date: 2010-01-18 22:55
Message:
Regarding the difference Bruno mentioned:
True; but it just happens to be that the the AI does then automatically
the DONE (it's the attacking players job to finish the phase). So this
explains why it happens THEN.
You can achieve the same for human players by enabling the "Auto Done"
option.
I think one idea behind that was, that one perhaps wants to take a look at
the legions before proceeding the game.
I agree, that argument is quite lame because it applies only to "if human
was attacker".
And now that there is Suspend/Resume it's even less relevant...
About the general case: Nope, there is no such Auto-logout. At least it
does not happen to me.
I played with 3 webclients / 3 players, one attacking the other Titan vs.
Titan legion. Attacking player died. Defending player got chance to muster.
Attacking player needed to press Done to finish the engagements phase, that
is true. (In 2nd try. In my first try I had Auto-Done enabled so I did not
even need to do that Done then.)
But no "player was kicked out" effect.
So I suspect there was *some* network issue involved.
Has this "eliminated player get message that server closed connection from
his side" effect been experienced by others as well ?
But I agree it would make sense to drop the "eliminated attacking player
has to press Done to finish engagements phase" behavior totally.
Also, normally there shouldn't be any issue with "eliminated player" (or
player withdrawal) causes "game cannot continue": in that moment when
connection to a player is lost, the server side recognizes that the network
connection is done, and does a withdrawal of that player (finishing a
phase, i.e. like pressing Done", if necessary, i.e. if that happened while
that player was the active player) automatically.
OK, it can still happen that a player kind of e.g. "thinks he is dead" and
goes away from his computer, leaving the game standing open without
pressing Done, then the game would wait for him forever.
So a possibility to kick out a non-responsive player might be a useful
thing in any case... but not trivial to implement either. I have to think
about it... inconciously. Perhaps my brain comes up with a good idea while
I sleep or sit in a boring meeting at work :)
----------------------------------------------------------------------
Comment By: Nobody/Anonymous (nobody)
Date: 2010-01-18 20:24
Message:
Sort of related to this, I have noticed a difference when playing against
just AIs when you get eliminated on your turn or on an AI's turn. If it's
on your turn, you need to end your turn before the game continues. If it's
on an AI turn, the AIs start playing out the game immediately.
I don't see a good reason to need to end your turn when you have been
eliminated. It was never a big enough deal to report as an enhancement
request.
-- Bruno
----------------------------------------------------------------------
Comment By: Clemens Katzer (cleka)
Date: 2010-01-18 19:44
Message:
Strange. Normally a network game should NOT disconnect the eliminated
player.
There is no such code to do that intentionally, and at least last time I
tested multiplayer games this kind of things did not happen.
Eliminated player should just be able to continue watching.
I have to take a look onto that.
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=101939&aid=2934399&group_id=1939
|