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

Reply via email to