Thanks Ben! Good write up. Sounds like it was a blast. :D

- Timeless Prototype

On 22/08/06, Ben Byer <[EMAIL PROTECTED]> wrote:
Now that SLCC has concluded, I'd like to share the things I learned
with those who couldn't make it.  I'm probably leaving tons of things
out -- there was so much to take in, especially for me -- so please,
those who were there, please feel free to fill in the gaps.

I got to meet John and Baba for the first time in front of Linden Lab
shortly before 11 AM on Friday.  We went inside to see preparations
for SLCC being made -- somebody wheeled in a pallet of 20,000 (ish)
copies of the Metaverse Messenger to be handed out at the
convention.  A few minutes later, we were ushered into the (main?)
glass "fishbowl" conference room.

I hadn't really expected a formal meeting, but they had even put a
sign on it -- "11:00 libsecondlife".  We were joined by about a dozen
Lindens -- I wish I could remember everyone's name, I should have
taken notes -- but all of the familiar names were there.

I think that one of the Lindens asked us at one point "how far" we
were towards emulating the whole thing.  We spent a little bit of
time talking about the latest libSL work that's gone on -- how we've
gotten many of the basic packets down, how we've covered much of the
non-graphical content of SecondLife, but we still are missing a few
basic things like avatar movement.  We talked about a few of the
different sample apps our devs have built, as well as SLProxy which
lets you tweak the official client.  (I think someone made a
comparison to Greasemonkey.)

John and I had worked on a program that demonstrated the "insecurity"
of the unencrypted UDP protocol -- that anyone one a local wired/
wireless network with you, who can sniff your packets, can read your
SessionID and AvatarID and then forge packets from you to the server
or from the server to you.  This isn't really a gaping hole -- other
than, say, large conferences, you don't have many situations with a
number of SL users on one subnet -- and the amount of packet
injection you can do is limited (more on that later).  The program we
demonstrated sniffed the local wireless network for outgoing
CompleteAgentMovement packets, grabbed the IDs, and forged a
GrantGodMode reply from the server.  It got a chuckle from a couple
of the Lindens, when they signed on with their alts and ended up in
God mode anyway.

I'd hoped to have a program to allow us to create new GUI elements in
XML and hook them into user-written code, but didn't have a chance to
finish it before the conference.

The meeting with the Lindens was overwhelmingly positive.  I'm going
to try to list my takeaway points from the meeting -- my apologies
for any inaccuracies:
* LL is glad to have us working on libsecondlife.  They pointed out
(and Cory later reiterated in http://www.secondlifeinsider.com/
2006/08/19/slcc-keynote-speech-part-2-cory-ondreika/) that we have
more people subscribed to the libsecondlife-dev mailing list than
Linden Lab has paid developers.  They see more value in working with
us and encouraging us to explore areas they don't have to than trying
to impede our progress and get in an arms-war with encryption, etc --
this is of course constrained by their general business with the sims
and official client, as well as a (hopefully dwindling) number of
sensitive area WRT exploits, etc
* "Everything will change" within the next few months -- LL wishes we
had maybe started 3 months later and feels we may be wasting our time
(but isn't telling us to stop)
* Many things in the protocol are the way they are because they were
originally implemented one way, and once it started working they just
pressed forward and moved on -- and thus, the hacks stayed in place.
* Cory publicly stated in his keynote speech at SLCC to the general
crowd that Linden expects to spend the next couple of months working
on "refactoring and cleaning" of code -- meaning there won't be many
user-visible changes or new features. However, I'm under the
impression that that refactoring does include making protocol
improvements.
* Everything, to the extent possible, will be moved to "better" /
more standard interfaces -- examples: textures will be sent over
HTTP, map data / profiles / etc will be sent over HTTP, most commands
will be possible with a REST interface (as discussed before).
Eventually, it will be possible to do many of the things we have
implemented in libSL using just an HTTP library and never actually
touching the UDP protocol -- which will still be there, and used, but
only for parts of the protocol where quick updates with low latency
are important, such as object/avatar movement updates etc
* One of the Lindens gave an example of how they see us as helping
them -- the scenario of building a stripped-down SL client for use on
a phone was thrown out.  Linden would be happy to see us get one of
those working, because we would then be able to explore issues of
usability -- how do you make a client usable with a small screen?  If
they later chose to write such a client themselves, they would
benefit from the research we do
* Along those lines -- do we need any protocol modifications to
accomplish such a thing?  For example, a phone client would probably
want to reduce bandwidth as much as possible, for cost concerns, plus
it's silly to receive data we can't display -- we could ask the
server to only let us know about things happening within a short
range of our avatar, and / or download reduced size/quality textures,
etc.  Upon further discussion amongst the Lindens, they said that
much of that may actually already be possible with the existing
protocol, but we'd never know it by eavesdropping on the packet
stream because the offical SL client wouldn't need to use those
features.  In any case, we just have to ask.
* In fact, there's a lot they thought we should just ask them for.
They said we should waste our time trying to decode things that are
cryptic but not sensitive -- for example, the whole LayerData thing
(near and dear to my heart -- I lost a night of sleep over that --
http://www.libsecondlife.org/protocol/index.php/LayerData).
LayerData is a standard IDCT, similar to JPEG, but tweaked -- using
different coefficients so that they get better compression of land
data than they would if they tried to apply something meant
specifically for image compression.   (Cory actually repeated this
full explanation during his keynote at SLCC and probably confused 95%
of those in attendance -- bless his heart!) If we just ask them for
those details, they will try to provide them.
* Along with LayerData, we talked about the ObjectUpdate /
ImprovedObjectUpdate system, as well as the packets needed for normal
avatar movement.
* Linden is hiring -- anyone out there please feel free to send them
your resume, and if you are a coder and don't get a programming test
back from them, ping them again because they probably just missed it

I reorganized the wiki a little bit and decided that http://
www.libsecondlife.org/protocol/index.php/Help_Wanted would probably
be a good place for us to put any info requests we have for the
Lindens -- if they don't see it and respond themselves (hint, hint)
then when stuff starts piling up there I can email it to them and
post the results there.

Although the wireless connection was a big spotty at the conference,
Baba, John and I tried to keep the godmode-packet sniffer up and
running.  While we were there, I made a few improvements to it -- I
made it look up AvatarIDs in w-hat's name2key DB as it caught them,
and we also added a feature that sent out an instant message telling
people that they got godmode courtesy of libsecondlife.  However ...
upon looking around the room, it became clear that it often wasn't
working -- I'd see someone's name come up on my screen, and go over
and see that they didn't have a green menu bar.

However, we DID see a couple of the "libsecondlife has given you a
gift!" messages flash up on the big projection screen.  The code's
ugly, but it's up at http://www.libsecondlife.org/protocol/index.php/
SessionID_hack for posterity.

More if I think of it - I'm still reeling, it was a lot to take in.
Oh, and don't let me forget that qDot gave a live demo of
teledildonics hardware, and explain that it was all possible due to
libsecondlife!

Ben

_______________________________________________
libsecondlife-dev mailing list
libsecondlife-dev@gna.org
https://mail.gna.org/listinfo/libsecondlife-dev


_______________________________________________
libsecondlife-dev mailing list
libsecondlife-dev@gna.org
https://mail.gna.org/listinfo/libsecondlife-dev

Reply via email to