glob2-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [glob2-devel] Finalized Design Idea for YOG


From: Kai Antweiler
Subject: Re: [glob2-devel] Finalized Design Idea for YOG
Date: Sat, 28 Apr 2007 11:39:41 +0200

Please read this paper that explain how to do things correctly with udp :
http://pdos.csail.mit.edu/papers/p2pnat.pdf

 you can't throw away
part of the design just because it eases programming. Those part, as complex
as they can be, are there for reasons.

Bad thing is that code has to be maintainable someway.
But the network is somewhat disconnected from the rest of glob2, so we can
work on glob2 without touching the network.
If there where no desync issues I would vote fore leaving the network
as is, or just trying to extract and purify it.
On the other hand the desyncs alone are not enough reason to
rewrite the network code.  You should either know that
you can do better than the existing code, or want to do it for fun.

Also copying net code from existing free software game engines might
be feasible.
(stratagus, glest, warzone2100)


Before we start changing anything I would like to cite nuages (almost)
last message
to our mailing list, because he was our expert on this.
Especially the part about all games using udp is something we should take into
account.


So here is what Nuage had to say:

-If you want to know if the network is faulty, having lost an UDP packet, or
missed a packet reorder, then you simply have to compare Game.log. This is a
dump of what the Game engine received from the network.
-If they differ, then the network is faulty and did miss an UDP packet loss, or
did miss an UDP packet reorder. In such a case, I have to fix the net code, and
please send me the full logs from each players (compressed).
-If they don't differ, then the game engine received exactly the same orders,
and then some part of the game engine is faulty. (leave the network system
alone, it's fine)


-The current code is meant to use the best of UDP (lowest latency) and add the
main features of TCP (packet loss and reorder).
-It does things that cannot be done in TCP, like resending packet from a
disconnected player to the players still playing.
-And I may be wrong, but I seriously believe you can't punch hole with TCP, at
least not like we do.
-From a design point of view, TCP is not designed for games. All reactive games
uses UDP.


-From a security point of view, my network code is bad. For this reason only it
has to be fully reworked. Add to this the need to be better written.


--
Kai Antweiler




reply via email to

[Prev in Thread] Current Thread [Next in Thread]