[ENet-discuss] Specification

Lee Salzman lsalzman1 at cox.net
Sun Oct 24 14:27:24 PDT 2010


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 <lsalzman1 at cox.net 
> <mailto:lsalzman1 at cox.net>> 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<lsalzman1 at cox.net>  <mailto:lsalzman1 at cox.net>  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
>>>>
>>>>            
>>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cubik.org/pipermail/enet-discuss/attachments/20101024/f849e9e9/attachment.html>


More information about the ENet-discuss mailing list