OpenSim vs. Unity: A Pros and Cons Dialog With a Co-Founder of OpenSim (Who Now Works in Unity)
I recently had a chat with Adam Frisby (Adam Zaius in SL) one of the founders of OpenSim who has since moved on to developing in Unity with projects such as ResLive. Does that mean other OpenSim developers should follow his lead, and give up on the open source version of Second Life? Not necessarily:
"There's room for both," argues Adam. "It depends on the level of interactivity required; but I do think there's more room for mass market growth in Unity." We then discussed the pros and cons of Unity versus OpenSim (somewhat ironically, via Facebook chat):
Adam Zaius: The big issue with OpenSim is the dependency on the SL viewer, and the SL data formats. Namely; they suck - even though Linden Lab is getting better at supporting standard tools (e.g. meshes), SL's graphically back around ~2002 in terms of capabilities. For instance; while you can now import meshes, you can't animate them, attach shaders or effects beyond the limited texture properties. While there's some definite truth to the fact that SL users would abuse these and tragedy of the commons prevents their inclusion, there's still a great deal that could be done to compensate for that, that isn't done.
Now; on the server, SL has some good design decisions - full server-side control of the environment, is fantastic to work with. Lots of room for rich interactivity; bandwidth willing. That does come at a cost in terms of maintainence and hardware requirements. Now you can do both to a degree, circumstances and requirements willing - but you get an awful lot out of the box for free with OpenSim.
Or TL;DR; use the right tool for the job.
Hamlet Au: I frankly don't see any massive advantages to OpenSim over Unity except that it's open source (which has its own problems) and that there's probably ten thousand or so people using it who aren't willing to leave the SL codebase to learn a new platform.
AZ: It depends a bit - doing things like user-generated content with Unity is difficult. We're going through that internally at the moment, and it requires lots of extra work to support.
Likewise; Unity is missing some pretty key components out of the box; we've spent the last two years making up for some of those (e.g. streaming down the environment progressively, avatar clothing, attachments, support for scripts in assetbundles, etc) realtime multiuser editing would be another use case that might lean towards something like OpenSim too.
HA: But OpenSim's install base is so small. And the amount of developers working on it is so small, as compared to Unity.
AZ: Sure - I wont argue community size (although Unity's "community" seems to be limited mainly to its forums, which'd probably be about the same size as OpenSim's IRC/mailing list/osgrid crowd) But I dont think it's a hugely relevant metric. For example; MySQL's community size dwarfs Postgres - but there's no question which is the better database engine.
I think Unity is absolutely kickass - it's got an excellent dev chain, and there's a reason we're deploying client projects using it. But there's more to it than just which is prettier and friendlier. Often you'll want something more focused on the client; in which case, Unity kicks ass and will do wonders for you. (Games & Entertainment win here bigtime.) Othertimes, graphics don't matter and you need to be doing something involving complex multi-user synchronisation; in which case a more server centric solution is better, I.E. OpenSim.
HA: And I'd say applications with a small install base, i.e. limited use government and education projects.
AZ: Yes; applications with small budgets too. Unity is going to cost you to do anything more than the very very simplest single-user demos.