Tommi Laukkanen proposes in his open letter a collaboration effort between realxtend, sirikata and MXP (which may mean also Opensim).
I have talked with people from both realXtend and Sirikata it
would seem that we would all gain from shared protocol. What is
discussed here is a low level transport layer which when executed
correctly is immediately beneficial to all parties. Granted, it
does not bring interoperability but it would be low cost step to
the right direction. After this it is possible to discuss about
unified message layer which may be that of realXtend, Sirikata or
MXP or a brilliant fusion of all these. (MXP has just recently
decided to go completely for google protocol buffers message
serialization instead of encoding only extensions with GBF. This is
partly due to Sirikata network discussions where GBF is considered
as well if I understood the wiki page correctly.)
We have worked hard recently in MXP group designing MXP version
0.6. Kripken and our new member Maróy Ákos has
pointed out couple of key improvements to the UDP layer. As such
the UDP layer feature set is becoming almost one to one to that of
ENET except for existence of specification and couple of virtual
world specific features like 4 billion signal and guaranteed
message channels per connection.
We have also decided to completely separate the UDP transport
layer from the MXP message layer as Akos suggested. This enables
much simplified specification and implementation for the UDP
transport layer. The initial version of the new specification is at
the bubblecloud web site.
The specification should not have anything specific to the MXP
model and should be directly applicable to the other virtual world
implementations. It would be great if we could bring together
different projects by investing jointly on this specification. MXP
project is going to implement the specification with 4 major
languages: C#, Java, C++ and python. The implementations will be
created portable and testable from day one.
We can rename this UDP transport layer specification and
implementations after this list or come up with entirely different
name. We would love to host this work as part of our other protocol
work at bubblecloud.com but if required independent project site
can be created as well.
To sum up this is the minimum I see different project could
contribute:
1) realXtend: requirements, virtual world expertise to
specification/ review
2) Sirikata: requirements, protocol expertise and virtual world
expertise to specification/review
3) MXP: requirements, specification, implementation to C#, Java,
C++ and python
What we all would gain is a robust and specialized transport
layer just for our application area. We would also have a solid
specification and implementations on 4 widely used languages which
would encourage wide adoption and hopefully become groundwork for
standard. This would be a real breakthrough in the virtual world
interoperability and enable further work on message and model
layers. The exact cost would depend on capabilities of each
projects but even 2-3 man days from both Sirikata and realXtend
would enable this plan to proceed.
Everyone interested are welcome to all aspects of the work.
Already identified open issues where Stanford research
contribution would be invaluable are congestion avoidance algorithm
and statistical properties of the proposed transport protocol. We
are implementing something that is more complex than TCP but has
similar challenges: to create well behaving protocol it is not
enough to find local optimum for single connection.
Best regards,
Tommi Laukkanen (@tlaukkan)