[MUD-Dev] Semireliable UDP-based protocol development
Jeremy Gaffney
jgaffney at ncsoft.com
Tue Nov 9 22:49:47 CET 2004
Scott Hilbert wrote:
> I'm currently working on developing a totally-free-license
> UDP-based networking system for game use; higher layers are
> planned, but the current focus is creating an efficient and
> reliable layer over UDP to provide connection management and
> optional reliable sending. (It's in C# right now, which isn't the
> most down-to-the-bare-metal language, but it's proven to be
> surprisingly fast, and it's what the rest of my current project is
> going to be written in. A C++ port wouldn't be that hard somewhere
> down the line.) This is about my third iteration at writing such a
> system (having written some working prototypes in C++ a few years
> back), and it's about 1/3 done right now, but I'd like to ask you
> guys for some input on what methodologies are good and bad, to
> complement actual efficiency testing.
A quick comment:
I strongly recommend, if looking at online-game-based semireliable
protocols, focusing on what your highest-traffic elements will be.
In every game I know from the graphical space, this is
unquestionably movement.
Movement has some very nice characteristics which lend itself to
optimization at the network layer:
Generally a large number of packets with a few fixed packet sizes.
Generally the movement of one mobile is in a vacuum from the
movement of other mobiles.
Only the last movement packet of a mobile is generally relevant to
the consumer (which gives some idea of how to implement
"semireliability".)
I'm a bit busy to dig in too far, but I'd focus on the above as
opposed to worry specifically about bitstreaming unless you are
looking at focusing on helping text-based gaming. Why?
Bitstreaming as I'd imagine it would be in direct conflict with the
benefits derived from focusing on the 3 points above.
It'd be well suited to text, however, so if you're planning a text
game, bitstreaming and similar is probably a good area to look at.
Packet coalescence as I recall is discussed pretty well in TCP/IP
Illustrated Vol 3. Might be off on the Vol number, it's been a
while.
-jg
_______________________________________________
MUD-Dev mailing list
MUD-Dev at kanga.nu
https://www.kanga.nu/lists/listinfo/mud-dev
More information about the mud-dev-archive
mailing list