[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