This is the mail archive of the xconq7@sources.redhat.com mailing list for the Xconq project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Networked xconq


I did some fairly extensive testing of the network code during the weekend
in an attempt to figure out what the problems really are. All tests were
run between different apps on the same G3 computer in three different ways:

1. Two or more Linux apps talking to each other over the loopback address.
2. Two or more Mac apps talking to each other over the loopback address.
3. Linux and Mac apps talking to each other over the Linux ethertap device
(I was running MacOS in an X11 window using Mac-on-Linux in that case).
Both Linux and Mac apps were used to host these mixed games.

The games tested included sequential (Third Age) non-sequential
(Introduction and Flattops) and a game with advances (Advances). Both
manual and AI-controlled play was tested. Here are my findings:

1. The synch error is now extremely rare. In fact, I saw it only once
during the whole weekend, and I'm not sure about the significance of this
since I was testing an older build of the Mac app at the time. This is very
different from the situation last year when games would fall out of synch
almost immediately, even if played on the same machine. If people are
seeing a lot of synch errors in games over the Internet (which I did not
test) it suggests to me that network lag somehow is responsible.

2. There is  one exception that will trigger a synch error 100% of the
time, and that is to turn the AI on or off. The explanation for this is
simple: it forces and unconditional end of turn that breaks the network
game. This should not be too difficult to fix.

3. The synch error is not, as I once thought, triggered by refrences to
dead units. The latter are quite common, also in non-network games, but
harmless. If you dismiss the warning dialogs the game always continues as
normal without problems. It should be noted, though, that there is a bug in
the tcltk interface that forces a save and quit unless you tell it that you
want to see more warning messages (which you would rather not).

4. Nor do games with advances trigger synch errors. They did at one point,
but this is no longer a problem.

5. There is another serious bug that affects the host app in network games.
Thus, the host spends most of the time waiting for an ack from the client
that never comes, and then times out. The error message is "Timed out while
waiting for ack." This happens again and again and slows down the network
game to a crawl. One consequence of this is also that the host interface is
frozen most of time, rendering it virtually useless. This is true for both
Mac and Linux hosts. The severity of the bug does, however, vary between
different instances of the same game, which suggests that some random
factor is involved. The bug is (for obvious reasons) less severe in
sequential games.

6. There is yet another bug that is specific to the tcltk app but not the
Mac app. Thus, the former is unable to handle non-display AI-controlled
sides during network play. This is evident if you run a game such as Third
Age, with four sides. With network play between two tcltk apps, the two
display sides run normally, whether under human or mplayer control.
However, the two sides that always should be run by the mplayer (and which
run fine in single app mode) just sit there and do nothing. Surprisingly,
things work fine when two Mac apps play against each other. The problem
must therefore be either in the tcltk game startup code or in its main even
loop, both of which differ somewhat from their counterparts on the Mac.

7. Related to this is the only other sure way to cause a synch error: to
run a mixed game with non-display AI-controlled sides. Since the Mac app
plays these sides correctly and the tcltk app fails to do so, the game
falls out of synch immediately.

I think it would be very helpful if those of you who have experienced synch
problems could post a few details. Specific things that I wonder about:

1. When did you test the network code? This spring or last year? Was your
xconq version up to date?

2. What game did you play? Sequential or non-sequential?

3. How many participants? What kind of connection?

4. How many sides were under AI control? Did you switch the AI on or off?

5. If you did see a synch error, please provide details about when it
occurred and what (if anything) you think may have triggered it.

6. Did you experience any of the other problems described above?

I am assuming that no one else has compiled and tested the Mac network App
yet, but if you did use it, please let me know.

Hans





















Hans Ronne

hronne@pp.sbbs.se



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]