Re: [Opensim-users] looking for full viewer-server API and communication details.

2019-01-22 Thread Ethan Gardener
On Mon, Jan 21, 2019, at 11:25 PM, Serendipity Seraph wrote:
> Yeah.  My idea concerning UDP was to substitute a websocket to the front
> end with a the backend converting to/from whatever the server expects.

I hope it works out. :)  I suspect it'll add a bit of lag to movement, but I 
hope I'm wrong.  
___
Opensim-users mailing list
Opensim-users@opensimulator.org
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-users


Re: [Opensim-users] looking for full viewer-server API and communication details.

2019-01-21 Thread Serendipity Seraph
Thanks.

Yeah.  My idea concerning UDP was to substitute a websocket to the front
end with a the backend converting to/from whatever the server expects.

On Thu, Jan 17, 2019 at 1:28 PM Dahlia Trimble 
wrote:

> There's a file that is part of the viewer distribution:
> message_template.msg which defines the UDP packet layouts. There's some
> minimal documentation on the SL wiki at
> http://wiki.secondlife.com/wiki/Protocol
>
> libopenmetaverse has a protocol analysis tool: wingridproxy.exe which can
> intercept, display, and modify various messages sent over UDP and HTTP
> between the viewer and the server. It may not be fully updated to the
> latest protocols used in SL but may still work with OpenSImulator.
>
> If you're planning on creating a web-capable viewer you wont be able to use
> much of these protocols as web browsers cannot support UDP. You'll need to
> use something else.
>
> On Thu, Jan 17, 2019 at 11:40 AM Adam Frisby 
> wrote:
>
> > Yeah - I don't know if anyone has done it since my time, but yes - there
> > was very little documentation of it.
> >
> > If my memory serves me correctly; there was a packet description file
> > served by the viewer, which we then compiled into C# classes (either
> > automated or by hand, I forget) which went into libOMV.
> >
> > Unfortunately I think a lot of the real knowledge was on IRC which has
> > been lost to time. Broadly speaking much of the protocol makes implicit
> > sense; two things are in my memory though as being challenging to
> discover.
> >
> > The first was the packet acknowledgement system, it relies on a lot of
> > arcane timing for it to work correctly, and the second was they use a
> > custom RLE scheme called ZLE which is RLE but for zero values only.
> >
> > That said, if you're really serious about redeveloping the protocol -
> > tweaking this one is not a good idea. There's a lot of good free options
> -
> > RakNet is now free and open source, for example, and is behind a *lot* of
> > games and MMOs.
> >
> > Netcode is hard. Flee in terror.
> >
> > Adam
> >
> > -Original Message-
> > From: opensim-users-boun...@opensimulator.org <
> > opensim-users-boun...@opensimulator.org> On Behalf Of Marcus Llewellyn
> > Sent: Thursday, 17 January 2019 12:00 PM
> > To: opensim-users@opensimulator.org
> > Subject: Re: [Opensim-users] looking for full viewer-server API and
> > communication details.
> >
> > To my knowledge, the protocol has never really been documented. Those
> that
> > knew it well have either moved onto other pursuits or (sadly) passed
> away.
> >
> > In this case, a good place to look is at libopenmetaverse. It is a C#
> > implementation of the protocol (and other things), and in this case the
> > code and some samples might serve as documentation of a sort. You can
> find
> > it at the following link:
> > https://github.com/openmetaversefoundation/libopenmetaverse (
> >
> https://link.getmailspring.com/link/1547686550.local-639449c7-58b0-v1.5.5-b7939...@getmailspring.com/0?redirect=https%3A%2F%2Fgithub.com%2Fopenmetaversefoundation%2Flibopenmetaverse=b3BlbnNpbS11c2Vyc0BvcGVuc2ltdWxhdG9yLm9yZw%3D%3D
> > )
> >
> > On Jan 16 2019, at 5:16 pm, Serendipity Seraph 
> > wrote:
> > > I looked briefly at code for the Singularity Viewer but it was not
> > > obvious what the API calls and information flows are in their
> > > fullness. What document defines the full API and communication details
> > > between opnensim/SL clients and servers? I have looked via Google a
> > > few times without much certainty I have found the right stuff.
> > >
> > > Thanks!
> > > ___
> > > Opensim-users mailing list
> > > Opensim-users@opensimulator.org
> > > http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-users
> > >
> >
> > ___
> > Opensim-users mailing list
> > Opensim-users@opensimulator.org
> > http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-users
> > ___
> > Opensim-users mailing list
> > Opensim-users@opensimulator.org
> > http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-users
> >
> ___
> Opensim-users mailing list
> Opensim-users@opensimulator.org
> http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-users
>
___
Opensim-users mailing list
Opensim-users@opensimulator.org
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-users


Re: [Opensim-users] looking for full viewer-server API and communication details.

2019-01-18 Thread Ethan Gardener
On Fri, Jan 18, 2019, at 1:45 AM, Leal Duarte wrote:
> (what arcane timing ?? go see a tcp stack...)

The difference being TCP has far fewer failures.  
___
Opensim-users mailing list
Opensim-users@opensimulator.org
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-users


Re: [Opensim-users] looking for full viewer-server API and communication details.

2019-01-17 Thread Leal Duarte

Hi

(what arcane timing ?? go see a tcp stack...)

viewers<->regions protocol have a LLUPD part (that is not just UDP) and 
a http part.


LLUDP is described on a file present in all viewers: message_template.msg

opensim c# code maybe easier  to read (?) than viewers c++

llupd packets encode/decode: libopenmetaverse _PACKETS_.cs (autogen, do 
not edit)


llupd packets <-> rest of region code: LLClientView.cs

lludp <-> udp:  LLUDPClient.cs and LLUDPServer.cs

http part or so called capabilities: folders Capabilities and 
Region/ClientStack/Linden/Caps


or more or less this

regards,

Ubit


On 17-Jan-19 21:24, Toni Alatalo wrote:

Yes, there is the template which describes the UDP packages pretty nicely.

As suggested, one way to start looking at the messages is from the
Opensim server side code that handles them. A place to start that is:
OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs

In viewgit:
http://opensimulator.org/viewgit/?a=viewblob=opensim=b61bdeb647dfe79c7f00bd631f84d5c9ee9644bc=b2810c4ca718663f2bbc8c86646444d698873352=OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs

We implemented a new protocol in realXtend Tundra - first wrote a
client side implementation of LLUDP, but then switched to a new
protocol. However that protocol was never added to Opensimulator
(would have been possible though), but we just started using the same
codebase that first made for the client as the server as well. Needed
extensibility more than SL compatibility.

-Toni

On Thu, Jan 17, 2019 at 11:05 PM Ethan Gardener  wrote:

On Thu, Jan 17, 2019, at 7:40 PM, Adam Frisby wrote:

The first was the packet acknowledgement system, it relies on a lot of
arcane timing for it to work correctly,

I think this explains well over half the bugs I've ever seen in Second Life, OpenSim, and 
InWorldz altogether!  I always knew there was some timing-related nonsense where there 
shouldn't be.  ... "Nonsense" is me being polite; there's so much broken 
behaviour which so obviously depends on crazy timing when there is no need for crazy 
timing that it makes me angry!


That said, if you're really serious about redeveloping the protocol -
tweaking this one is not a good idea. There's a lot of good free options
- RakNet is now free and open source, for example, and is behind a *lot*
of games and MMOs.

I'd *love* a viewer for OpenSim with a completely new protocol.  I've been sure 
it would be a good idea for... oh... 10-12 years, but my health has never been 
good enough to start.  My health has recently improved, but I'm only now at the 
point where I can start learning, so I've got nothing of value to offer yet.


Netcode is hard. Flee in terror.

All code is hard, :) but yeah, networking programming is one of the (many) 
things which requires whole new ways of thinking.

I recently learned of Spin and its language, Promela.  "Spin is a tool for analyzing 
the logical consistency of concurrent systems, specifically of data communication 
protocols."  More info here:
http://spinroot.com/spin/Man/Manual.html
Home page:
http://spinroot.com/spin/whatispin.html
I'd use it if I was working on something as big as virtual world client-server 
protocol.
___
Opensim-users mailing list
Opensim-users@opensimulator.org
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-users

___
Opensim-users mailing list
Opensim-users@opensimulator.org
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-users


___
Opensim-users mailing list
Opensim-users@opensimulator.org
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-users


Re: [Opensim-users] looking for full viewer-server API and communication details.

2019-01-17 Thread Toni Alatalo
Yes, there is the template which describes the UDP packages pretty nicely.

As suggested, one way to start looking at the messages is from the
Opensim server side code that handles them. A place to start that is:
OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs

In viewgit:
http://opensimulator.org/viewgit/?a=viewblob=opensim=b61bdeb647dfe79c7f00bd631f84d5c9ee9644bc=b2810c4ca718663f2bbc8c86646444d698873352=OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs

We implemented a new protocol in realXtend Tundra - first wrote a
client side implementation of LLUDP, but then switched to a new
protocol. However that protocol was never added to Opensimulator
(would have been possible though), but we just started using the same
codebase that first made for the client as the server as well. Needed
extensibility more than SL compatibility.

-Toni

On Thu, Jan 17, 2019 at 11:05 PM Ethan Gardener  wrote:
>
> On Thu, Jan 17, 2019, at 7:40 PM, Adam Frisby wrote:
> > The first was the packet acknowledgement system, it relies on a lot of
> > arcane timing for it to work correctly,
>
> I think this explains well over half the bugs I've ever seen in Second Life, 
> OpenSim, and InWorldz altogether!  I always knew there was some 
> timing-related nonsense where there shouldn't be.  ... "Nonsense" is me being 
> polite; there's so much broken behaviour which so obviously depends on crazy 
> timing when there is no need for crazy timing that it makes me angry!
>
> > That said, if you're really serious about redeveloping the protocol -
> > tweaking this one is not a good idea. There's a lot of good free options
> > - RakNet is now free and open source, for example, and is behind a *lot*
> > of games and MMOs.
>
> I'd *love* a viewer for OpenSim with a completely new protocol.  I've been 
> sure it would be a good idea for... oh... 10-12 years, but my health has 
> never been good enough to start.  My health has recently improved, but I'm 
> only now at the point where I can start learning, so I've got nothing of 
> value to offer yet.
>
> > Netcode is hard. Flee in terror.
>
> All code is hard, :) but yeah, networking programming is one of the (many) 
> things which requires whole new ways of thinking.
>
> I recently learned of Spin and its language, Promela.  "Spin is a tool for 
> analyzing the logical consistency of concurrent systems, specifically of data 
> communication protocols."  More info here:
> http://spinroot.com/spin/Man/Manual.html
> Home page:
> http://spinroot.com/spin/whatispin.html
> I'd use it if I was working on something as big as virtual world 
> client-server protocol.
> ___
> Opensim-users mailing list
> Opensim-users@opensimulator.org
> http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-users
___
Opensim-users mailing list
Opensim-users@opensimulator.org
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-users


Re: [Opensim-users] looking for full viewer-server API and communication details.

2019-01-17 Thread Ethan Gardener
On Thu, Jan 17, 2019, at 7:40 PM, Adam Frisby wrote:
> The first was the packet acknowledgement system, it relies on a lot of 
> arcane timing for it to work correctly, 

I think this explains well over half the bugs I've ever seen in Second Life, 
OpenSim, and InWorldz altogether!  I always knew there was some timing-related 
nonsense where there shouldn't be.  ... "Nonsense" is me being polite; there's 
so much broken behaviour which so obviously depends on crazy timing when there 
is no need for crazy timing that it makes me angry!

> That said, if you're really serious about redeveloping the protocol - 
> tweaking this one is not a good idea. There's a lot of good free options 
> - RakNet is now free and open source, for example, and is behind a *lot* 
> of games and MMOs. 

I'd *love* a viewer for OpenSim with a completely new protocol.  I've been sure 
it would be a good idea for... oh... 10-12 years, but my health has never been 
good enough to start.  My health has recently improved, but I'm only now at the 
point where I can start learning, so I've got nothing of value to offer yet.

> Netcode is hard. Flee in terror.

All code is hard, :) but yeah, networking programming is one of the (many) 
things which requires whole new ways of thinking.

I recently learned of Spin and its language, Promela.  "Spin is a tool for 
analyzing the logical consistency of concurrent systems, specifically of data 
communication protocols."  More info here:
http://spinroot.com/spin/Man/Manual.html
Home page:
http://spinroot.com/spin/whatispin.html
I'd use it if I was working on something as big as virtual world client-server 
protocol.
___
Opensim-users mailing list
Opensim-users@opensimulator.org
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-users


Re: [Opensim-users] looking for full viewer-server API and communication details.

2019-01-17 Thread Dahlia Trimble
There's a file that is part of the viewer distribution:
message_template.msg which defines the UDP packet layouts. There's some
minimal documentation on the SL wiki at
http://wiki.secondlife.com/wiki/Protocol

libopenmetaverse has a protocol analysis tool: wingridproxy.exe which can
intercept, display, and modify various messages sent over UDP and HTTP
between the viewer and the server. It may not be fully updated to the
latest protocols used in SL but may still work with OpenSImulator.

If you're planning on creating a web-capable viewer you wont be able to use
much of these protocols as web browsers cannot support UDP. You'll need to
use something else.

On Thu, Jan 17, 2019 at 11:40 AM Adam Frisby  wrote:

> Yeah - I don't know if anyone has done it since my time, but yes - there
> was very little documentation of it.
>
> If my memory serves me correctly; there was a packet description file
> served by the viewer, which we then compiled into C# classes (either
> automated or by hand, I forget) which went into libOMV.
>
> Unfortunately I think a lot of the real knowledge was on IRC which has
> been lost to time. Broadly speaking much of the protocol makes implicit
> sense; two things are in my memory though as being challenging to discover.
>
> The first was the packet acknowledgement system, it relies on a lot of
> arcane timing for it to work correctly, and the second was they use a
> custom RLE scheme called ZLE which is RLE but for zero values only.
>
> That said, if you're really serious about redeveloping the protocol -
> tweaking this one is not a good idea. There's a lot of good free options -
> RakNet is now free and open source, for example, and is behind a *lot* of
> games and MMOs.
>
> Netcode is hard. Flee in terror.
>
> Adam
>
> -Original Message-
> From: opensim-users-boun...@opensimulator.org <
> opensim-users-boun...@opensimulator.org> On Behalf Of Marcus Llewellyn
> Sent: Thursday, 17 January 2019 12:00 PM
> To: opensim-users@opensimulator.org
> Subject: Re: [Opensim-users] looking for full viewer-server API and
> communication details.
>
> To my knowledge, the protocol has never really been documented. Those that
> knew it well have either moved onto other pursuits or (sadly) passed away.
>
> In this case, a good place to look is at libopenmetaverse. It is a C#
> implementation of the protocol (and other things), and in this case the
> code and some samples might serve as documentation of a sort. You can find
> it at the following link:
> https://github.com/openmetaversefoundation/libopenmetaverse (
> https://link.getmailspring.com/link/1547686550.local-639449c7-58b0-v1.5.5-b7939...@getmailspring.com/0?redirect=https%3A%2F%2Fgithub.com%2Fopenmetaversefoundation%2Flibopenmetaverse=b3BlbnNpbS11c2Vyc0BvcGVuc2ltdWxhdG9yLm9yZw%3D%3D
> )
>
> On Jan 16 2019, at 5:16 pm, Serendipity Seraph 
> wrote:
> > I looked briefly at code for the Singularity Viewer but it was not
> > obvious what the API calls and information flows are in their
> > fullness. What document defines the full API and communication details
> > between opnensim/SL clients and servers? I have looked via Google a
> > few times without much certainty I have found the right stuff.
> >
> > Thanks!
> > ___
> > Opensim-users mailing list
> > Opensim-users@opensimulator.org
> > http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-users
> >
>
> ___
> Opensim-users mailing list
> Opensim-users@opensimulator.org
> http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-users
> ___
> Opensim-users mailing list
> Opensim-users@opensimulator.org
> http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-users
>
___
Opensim-users mailing list
Opensim-users@opensimulator.org
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-users


Re: [Opensim-users] looking for full viewer-server API and communication details.

2019-01-17 Thread Serendipity Seraph
Perhaps it will be more obvious starting from server side.

On Thu, Jan 17, 2019 at 12:31 PM Serendipity Seraph 
wrote:

> Thanks for the links, Marcus.  It is very surprising to me that there is
> not one file or directory that says in code explicitly what viewer <->
> server commands and responses are supported or required.   Surely this
> cannot be the case.   I have seen such docs for server -> grid services
> communication.   But not for viewer <-> server.   These latter would be
> critical for anyone seeking to design a new viewer (web viewer for
> instance), improve the protocols and the efficiency thereof, etc.
>
> On Wed, Jan 16, 2019 at 6:00 PM Marcus Llewellyn <
> marcus.llewel...@gmail.com> wrote:
>
>> To my knowledge, the protocol has never really been documented. Those
>> that knew it well have either moved onto other pursuits or (sadly) passed
>> away.
>>
>> In this case, a good place to look is at libopenmetaverse. It is a C#
>> implementation of the protocol (and other things), and in this case the
>> code and some samples might serve as documentation of a sort. You can find
>> it at the following link:
>> https://github.com/openmetaversefoundation/libopenmetaverse (
>> https://link.getmailspring.com/link/1547686550.local-639449c7-58b0-v1.5.5-b7939...@getmailspring.com/0?redirect=https%3A%2F%2Fgithub.com%2Fopenmetaversefoundation%2Flibopenmetaverse=b3BlbnNpbS11c2Vyc0BvcGVuc2ltdWxhdG9yLm9yZw%3D%3D
>> )
>>
>> On Jan 16 2019, at 5:16 pm, Serendipity Seraph 
>> wrote:
>> > I looked briefly at code for the Singularity Viewer but it was not
>> obvious
>> > what the API calls and information flows are in their fullness. What
>> > document defines the full API and communication details between
>> opnensim/SL
>> > clients and servers? I have looked via Google a few times without much
>> > certainty I have found the right stuff.
>> >
>> > Thanks!
>> > ___
>> > Opensim-users mailing list
>> > Opensim-users@opensimulator.org
>> > http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-users
>> >
>>
>> ___
>> Opensim-users mailing list
>> Opensim-users@opensimulator.org
>> http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-users
>>
>
___
Opensim-users mailing list
Opensim-users@opensimulator.org
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-users


Re: [Opensim-users] looking for full viewer-server API and communication details.

2019-01-17 Thread Serendipity Seraph
Thanks for the links, Marcus.  It is very surprising to me that there is
not one file or directory that says in code explicitly what viewer <->
server commands and responses are supported or required.   Surely this
cannot be the case.   I have seen such docs for server -> grid services
communication.   But not for viewer <-> server.   These latter would be
critical for anyone seeking to design a new viewer (web viewer for
instance), improve the protocols and the efficiency thereof, etc.

On Wed, Jan 16, 2019 at 6:00 PM Marcus Llewellyn 
wrote:

> To my knowledge, the protocol has never really been documented. Those that
> knew it well have either moved onto other pursuits or (sadly) passed away.
>
> In this case, a good place to look is at libopenmetaverse. It is a C#
> implementation of the protocol (and other things), and in this case the
> code and some samples might serve as documentation of a sort. You can find
> it at the following link:
> https://github.com/openmetaversefoundation/libopenmetaverse (
> https://link.getmailspring.com/link/1547686550.local-639449c7-58b0-v1.5.5-b7939...@getmailspring.com/0?redirect=https%3A%2F%2Fgithub.com%2Fopenmetaversefoundation%2Flibopenmetaverse=b3BlbnNpbS11c2Vyc0BvcGVuc2ltdWxhdG9yLm9yZw%3D%3D
> )
>
> On Jan 16 2019, at 5:16 pm, Serendipity Seraph 
> wrote:
> > I looked briefly at code for the Singularity Viewer but it was not
> obvious
> > what the API calls and information flows are in their fullness. What
> > document defines the full API and communication details between
> opnensim/SL
> > clients and servers? I have looked via Google a few times without much
> > certainty I have found the right stuff.
> >
> > Thanks!
> > ___
> > Opensim-users mailing list
> > Opensim-users@opensimulator.org
> > http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-users
> >
>
> ___
> Opensim-users mailing list
> Opensim-users@opensimulator.org
> http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-users
>
___
Opensim-users mailing list
Opensim-users@opensimulator.org
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-users


Re: [Opensim-users] looking for full viewer-server API and communication details.

2019-01-16 Thread Marcus Llewellyn
To my knowledge, the protocol has never really been documented. Those that knew 
it well have either moved onto other pursuits or (sadly) passed away.

In this case, a good place to look is at libopenmetaverse. It is a C# 
implementation of the protocol (and other things), and in this case the code 
and some samples might serve as documentation of a sort. You can find it at the 
following link:
https://github.com/openmetaversefoundation/libopenmetaverse 
(https://link.getmailspring.com/link/1547686550.local-639449c7-58b0-v1.5.5-b7939...@getmailspring.com/0?redirect=https%3A%2F%2Fgithub.com%2Fopenmetaversefoundation%2Flibopenmetaverse=b3BlbnNpbS11c2Vyc0BvcGVuc2ltdWxhdG9yLm9yZw%3D%3D)

On Jan 16 2019, at 5:16 pm, Serendipity Seraph  wrote:
> I looked briefly at code for the Singularity Viewer but it was not obvious
> what the API calls and information flows are in their fullness. What
> document defines the full API and communication details between opnensim/SL
> clients and servers? I have looked via Google a few times without much
> certainty I have found the right stuff.
>
> Thanks!
> ___
> Opensim-users mailing list
> Opensim-users@opensimulator.org
> http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-users
>

___
Opensim-users mailing list
Opensim-users@opensimulator.org
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-users