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]

Networking progress!


In the past couple days I've fixed two major bugs and worked around
two more in networking code, with the result that today I was able
to run a full game - AI vs AI in the standard game, with a winner
after 149 turns - with both programs staying in perfect sync the
whole time.

The first workaround was pretty obvious once I narrowed things
down.  There is a variable need_ai_task_reaction that is set by
the kernel, intended to inform AI code that it needs to do a
little extra work, and so it's reset by the AI when it's done.
*But* the variable is also tested at one point in the kernel,
and since some of the programs might have an AI running and
others not, the variable gets different values, which causes
the kernels to go down different pathways and end up out of sync.
The workaround is to stub out the test.

The second workaround was to notify about timeouts rather than
popping up a warning dialog.  I don't know why this happens yet,
but it's possible to get into a situation where two programs
are each waiting for the other, either a packet or an ack.
But if we let the timeout happen quietly and go around again,
(I think) the master sends another packet and that unwedges
everything, with no apparent ill effects on play.  This one
will have to be figured out though, there must be something
about the protocol I don't understand...

Stan

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