[Opensim-dev] Direction of Opensim and its relationship with viewers
Taoki
Mircea_the_Kitsune at hotmail.com
Sat Nov 9 20:38:36 UTC 2013
Although I've used Second Life and Opensim for more than 6 years, I'm
still uncertain where the "open virtual worlds" system based on them is
going, and the direction Opensim might take in relation to SL.
Especially since during the last years Linden made a lot of major
changes, but Opensim doesn't seem to have gotten more popular or
attractive to main grid users. This uncertainty kept me from spending as
much time in SL and the free grids, and spending more time seeking
answers and looking for alternatives. Although such matters were
probably discussed a lot in the past, I'd like to get into the things
I'm looking to clarify, and also mention what I believe in case it might
be helpful for future development plans.
SL and Opensim are two different projects developed by different teams,
each going in its own direction more or less. The Second Life viewer is
a client for Linden's virtual worlds system (capable of connecting to
other grids if modified) while Opensim is a virtual worlds server not
officially intended for a specific client. Yet for the purpose to be
achieved, they both need each other. SL doesn't have another open-source
server, Opensim doesn't have another reliable client. Realistically
speaking, neither of the two matters will likely change: Linden might
never open-source their SL server, and Opensim won't have an own client
written from scratch that has all of SL's features and quality.
Linden proved they don't care about Opensim, so things will likely not
change on the viewer's end. What jumps to my attention is that
apparently, Opensim is still waiting for something that will likely
never come. Although custom SL viewers are the only usable clients,
Opensim still goes for a "general purpose virtual worlds server" and
avoids being labeled as "a server for Second Life", while hesitating to
get its own official viewer based on SL. While at some point I believed
an independent structure could work, I now think there are too many
technical implications for such to be possible.
Unlike simpler systems (like http, where Apache doesn't care if it's
being accessed by Firefox or Chrome) something of this complexity needs
a precise client - server design. If the server lacks features in the
client, the client will have dead parts. If the server has more features
than the client, it will eventually get slow bloated and confusing. Both
the server and all viewers accessing it need to revolve around a fixed
design and set of features, otherwise you'd have things only some
avatars can see or use in your sim. A different virtual world for
example might not even use our concept of primitives, could have voxel
terrain instead of heightmaps, and its own scripting language (like Lua)
over LSL. Opensim wouldn't be able to take it under its wing while
staying compatible with SL, since the technologies couldn't intersect or
be compatible across viewers. It's like intending a dedicated server for
first person shooters to run Unreal Tournament, Quake, DayZ and others
at once.
More technically, this is why I believe a non-SL viewer will never
exist: First of all, everything would have to look almost the same,
since we wouldn't want those using the SL viewer to see something
different than us. Terrain, primitive shapes, texture effects
(transparency, shiny, bump, glow), avatar meshes (customized body,
clothing, skins, attachments), the sky (day / night cycle and windlight
settings), LSL functions with client-side effects (llSetText,
llTargetOmega, etc) would all need to match. Once the world looks fine,
you'd need to implement tons of other unique and complex features...
such as media and web pages on prims, main map and minimap, the text and
voice chat systems, and so much more. The details and eye candy would
need attention too, such as a GUI and shaders (for HDR, shadows, depth
of field) that can rival SL's. Even if someone had the time and energy
to do all this as a FOSS application, they'd end up with a
reverse-engineered version of the SL viewer that has little
differences... meaning they wasted months doing something that's already
there. In the end, any client for Opensim could only be Second Life,
even if rewritten from zero and under a different name.
Considering this, I'm curious why it's better for Opensim to aim at
being a general platform, rather than simply a server for the SL
technology. And why the dev team doesn't create an official Opensim
Viewer based on the latest version of SL, while of course allowing
custom viewers like Firestorm to work too. Is OS still intended to work
with other designs, and why / how? Does it risk distancing from SL
viewers at some point, in hopes of a viewer written from scratch? Or
does it intend to support a collection of different virtual world
programs somehow? Also, what would happen if third party viewer
developers ever got bored of supporting Opensim?
This is not to say what must or mustn't be done, since I'm far from
having the knowledge and position to decide such things. But sticking to
just SL and being closer the development of its viewers is something I
thought would be a good initiative. I still feel that a change is
needed, and that Opensim isn't reaching its full potential for some
reason... which made me wonder if among other problems, some might have
similar concerns about Opensim's colder relationship with viewers, and
the lack of something specific officially intended to work with it.
More information about the Opensim-dev
mailing list