[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