[Opensim-dev] client API bindings?

Maróy Ákos akos at maroy.hu
Fri Sep 4 09:24:57 UTC 2009


Toni,

> Hm, trying to get what you are saying exactly .. are you saying this is 
> something that applies to both the server and clients?

no, only the clients

> Where do you create the shared python objects? On either end, and then 
> those are sent across and deserialized? I know how pickles work and how 
> those can be used for sharing state, but am actually very surprised to 
> hear that x-plane would use them in the protocol. I don't know 
> basically anything about x-plane before.

maybe we have a misunderstanding of the term 'shared object'. I see you 
mean a serialized object which is marshalled through the network. I 
simply meant a dynamically linked library, called shared object in the 
UNIX world (extension usually .so or .dynlib on Mac, .dll on Windows)

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

> Well I thought that if you write an x-plane protocol implementation as 
> an OpenSim plugin, a XplaneClientView or something, it would support 
> any client that talks that protocol. Like the SL, MXP and IRC 
> ClientViews do support any compatible clients.

yes, but I don't see why I'd have to write a new protocol. why can't I 
just use existing ones? after all, the only information that would be 
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?

> For that it may not actually be much of a problem. As you can see in 
> the viewers now, the horizon can span far. In ones that talk sl 
> protocol the viewers can know about several regions at a time, so they 
> can draw the neighbouring ones too, and they draw sky and sea etc. 
> however they want of course.

sounds good..

> And there needs to be LOD (level of detail) systems for all usages, in 
> many ways (for movement update detail amount, for 3d data resolution 
> etc.).

yes..

> Again, I thought that this was about a server implementation, as 
> OpenSim is a server platform / SDK, and that you'd use existing Xplane 
> clients. Or do you mean that the server also communicates expected 
> trajectories, so the client can draw based on the 'future' info too? 
> Should be doable, if it's done elsewhere too..

yes, that's the idea

> Client side movement interpolation is implemented in the current 
> viewers, even in our Realxtend Naal which in very early stages still 
> (0.0.1 dev preview was published in June after 4 months of dev work, 
> 0.0.2 is targeted in october or so and something like 0.1 perhaps by 
> the end of the year). So I don't know how much of that you need on the 
> server with xplane, but certainly sounds like something that flight 
> servers could do .. and again very cool if they do.

yes, would be cool indeed..

> May be, could be tested .. I think they are floats, at least in our 
> viewer, and floats are IIRC accurate near 1.0 .. hmhm well we can see, 
> or someone wiser can tell, am too tired to do any math right now here.

:) my experience is that when talking real world coordinates, one needs 
double precision for sufficiently accurate positioning.

> Yes, both server and client need to be smart about that. Server to know 
> what to send I guess, and client for what to draw (or what to request 
> from server, when server can be dummier? Dunno, but there probably are 
> solutions to this in places).

thanks, I'll look around..


Akos




More information about the Opensim-dev mailing list