[Opensim-dev] client API bindings?

Toni Alatalo antont at kyperjokki.fi
Fri Sep 4 10:12:36 UTC 2009


Maróy Ákos kirjoitti:

Now I finally understand what you are after, after reading about x-plane 
on the net and your original message again..

X-plane is a standalone non-networked app, a single player simulation. 
You want to make it networked, and consider using the OpenSim server for 
that?

The wording 'x-plane client' in your original post lead me to think that 
it already is a client-server architecture, and you have an existing 
protocol and some server implementation already etc.

> basically the point is that one has to have a client library in 
> languages that compile to native code, most preferably C and C++.
>   

Ok.

Well for the existing protocols to OpenSim there are several 
implementations. Most common one to write clients is LibOMV, which is a 
cleanroom SL(tm) compatible SLUDP implementation in c#. So it doesn't 
compile to native code.

In Realxtend Naali we have another from scratch implementation of that 
same protocol, written in C++. That might work for you. It's Apache 
(bsd-like) licensed. The web svn view to it is 
http://dev.realxtend.org/gf/project/viewer/scmsvn/?action=browse&path=/trunk/OpenSimProtocol/ 
<http://dev.realxtend.org/gf/project/viewer/scmsvn/?action=browse&path=/trunk/OpenSimProtocol/>

A relevant part in the documentation is Interfacing with the OpenSim 
world using OSUDP message at 
http://www.realxtend.org/doxygen/viewer/osudp.html

You can test how our new implementation works with the Naali 0.0.1 
developer preview we packaged in June, a main reason exactly to get 
feedback on how well the data transfer performs etc. Seems to work well.

Another native code implementation is funmv from 3di ('fun' for 
functional) which is iirc in c, i don't know if/where that's available 
nor much about it's usage (other than that it passes the packed data 
around unparsed, and the whoever needs some data can read that section 
from there, that being the func style).

Of course there is also the implementation in the Linden viewer if you 
are fine with the GPL license they use, I don't know anything about that 
except a guess based on rumours that it may not be very modular and 
easily usable for other apps, I don't know any app besides the slviewer 
and it's forks that uses that implementation.

The MXP reference implementation is also C#, there is no C++ 
implementation of it (yet).

> send about is like: 'there's an object at this-and-that coordinate, 
> heading this-and-that way', with some metadata like type, etc. isn't 
> this what a virtual world environment would provide?
>   

Yes. Like said I just thought you already had a protocol and existing 
clients for it that you wanted to support.

SLUDP is not an optimal generic VW protocol, not made for extensibility 
like google protocol buffers, but it works and there is a packet called 
GenericMessage which can be used to pass arbitrary information. That is 
what has been used in Realxtend so far to pass data which doesn't exist 
in the plain original protocol, and which may work for your usage too 
(for whatever metadata you need, and the trajectories etc).

> Akos
>   

~Toni



More information about the Opensim-dev mailing list