Is the wire protocol really that challenging? A little ENet history: I
was probably all of 19 or so at the time, and my friend had made a cute
little FPS game called Cube. He had used TCP for it, and I was sort of
shocked at this because it made the game laggy as hell. So having looked
around, I could find no simple alternate protocol library that jived
with the license he used (Zlib) that I could recommend to him, and even
amongst GPL-land there were only pitiful socket wrappers. Having just
read UNIX Network Programming - Volume 1, I thought I could do a better
job myself pretty quickly, and noticing that no library like what I
needed existed, just one weekend later, ENet was born. In all fairness,
it took several weeks after that to tune the packet throttle constants
to work well on a modem, but really, the actual bulk of ENet's code was
practically written in a couple of days.
Despite tweaking over the years, it has remained largely stable. That
does not mean it is good as a wider-use protocol, but that it fulfilled
its purpose, FPS game networking, well enough for my tastes that I
couldn't be bothered to fix other gaping problems with it like its
dysfunctional reliable packet throttling. If I had to start over from
scratch knowing what I know now, there are probably things that I would
have done differently but have no real need to at this point in time.
However, those issues would come back to bite me in the ass if ENet were
to be pushed as one networking solution to end all others for virtual
worlds on a large scale, and that is a Pandora's box I do not wish to
open, especially at what is only an expense to me with no gain.
It just strikes me as odd that a library written by what at the time was
a 19 year old programmer who had read UNP-V1 is something that "requires
special competence and most stake holders do not believe that it is
feasible to try and engineer such technology from scratch". The only
thing it really required was: knowledge of the underlying socket
functions, an idea for an easy round-trip-time monitoring system that
was on one single paragraph of UNP-V1, and winging the rest of the bits
based on common sense. Now maybe people don't want to kill a month
reading a book and programming their own solution, but let us not go so
far as to attribute special competence beyond literacy and free time. If
anything, the lack of any existing thing like ENet at the time of
writing was a genuine surprise to me, because the knowledge to make it
was widely available.
Lee
On 10/24/2010 01:21 PM, Tommi Laukkanen wrote:
I understand your view point. I would still want to present my case in
more detail:
As I see it ENET has a well working and widely adopted open source
implementation for problem area which is particularly challenging for
virtual worlds. Standard would be a valuable for vws as it would allow
for interoperation. The challenge in forming such a standard is to get
all parties to agree on the details. In the past discussions ENET has
been often referred to as working implementation which could be
acceptable for many players. The only thing needed for proposing ENET
as a solution is documentation of the in wire protocol which would
allow writing down the details on the standard.
Virtual world standardization requires many other areas to be
covered in addition to transport layer but transport layer is the
missing link and a key success factor in my opinion. It is also
something that requires special competence and most stake holders do
not believe that it is feasible to try and engineer such technology
from scratch.
If such standard would come to be it would not need to restrict ENET
if you would not want ENET to stay conformant. At starting point we
would still have a well working transport layer implementation where
rest of the virtual world specific functionality could lean on.
Best regards,
Tommi Laukkanen
On Sun, Oct 24, 2010 at 10:24 PM, Lee Salzman <[email protected]
<mailto:[email protected]>> wrote:
I think the particular strength of ENet is that it is a small
library of code that is free to change as one pleases for various
goals. I think a standard or otherwise rigid specification is
antagonistic to this goal. ENet is not a perfect or
all-encompassing library, so the main effect would be to just
enshrine its faults irrevocably on paper, and also that it would
create more hassle for the one developer (singular) of ENet than
it is actually worth. :)
Lee
On 10/24/2010 07:29 AM, Tommi S.e. Laukkanen wrote:
This particular case I have in mind is protocol for virtual worlds in IEEE.
Best regards,
Tommi Laukkanen
On 24.10.2010, at 14.58, Lee Salzman<[email protected]>
<mailto:[email protected]> wrote:
... Why?
On 10/24/2010 02:44 AM, Tommi S.e. Laukkanen wrote:
Hi
Would it be possible that one of the ENET developers would write
description document of the enet in wire protocol and algorithms involved so
ENET could be proposed as a protocol and implementation library to standards?
Best regards,
Tommi Laukkanen
_______________________________________________
ENet-discuss mailing list
[email protected]
http://lists.cubik.org/mailman/listinfo/enet-discuss