Saturday, November 03, 2007

How Croquet is Different

In recent months, more and more people have been asking me how Croquet is different from Second Life - thanks to all the media buzz around Second Life. Let me break it down this way: Croquet, as a software development environment, is more extensible than the development environments used to create collaborative worlds such as those in Second Life, and before that the unified metaverse of ViOS. These early server-based commercial approaches to establishing large-scale metaverses do not create computational environments that users/programmers can actually control - instead they must rely on constrained server-based computational environments to capture eyeballs for a variety of schemes to derive revenue for those who run the servers.

By contrast, Croquet makes it possible to develop any number of interlinked metaverses that can be deployed independently of a commercial authority or the constraints imposed by server-imposed resource limitations. The less cyberlibertarian of you may find value in the fact that Croquet can also be used by institutions to implement far more capable and flexible and controllable commercial systems than those of Second Life and before that ViOS.

Here are some additional points that distinguish Croquet from its predecessors/cohorts:
  • Croquet's users/developers may freely share, modify and view the source code of the entire system.
  • Croquet is platform and device independent.
  • Croquet's users/developers may freely share, modify and view the source code of the entire system.
  • Croquet provides a complete professional programming language, integrated development environment, and class library in every distributed, running participant’s copy.
  • Croquet-based worlds can be updated while the system is live and running.


Doug Holton said...

I'm not pro-second life or anything, but all those points seem to be true or will be true for second life as well. They open sourced the client and will be open sourcing the server. They include a programming/scripting interface, that can be extended (once open sourced) to just about any language (if they are still using mono).
But no, I don't suppose you can revise large features in the world while it is running, but of course you can do all the revisions live that you can do from scripting, adding land, objects, etc.

I still don't understand how to reproduce a second life-like experience in croquet. I asked here before but go no response. I know Croquet is an SDK, not an application, but I don't see how to connect to other people outside the local area network.

tkosan said...

For the past few months, I have been evaluating 3D platforms for the purpose of providing a 3D collaborative interface to the SAGE mathematics software package ( While Second Life has the kind of capabilities that I think would work well with SAGE, I eventually chose to go with Croquet for all of the reasons you mention.

As a side note, my background is in Java and since SAGE is written in Python, I was forced to start learning Python before I could use it. When I started learning Squeak in order to use Croquet, the first thing that came to mind was the following: since relatively few Java developers are willing to learn Python, and relatively few Python developers are willing to learn Java, what are the chances that either group would be willing to learn Squeak? As I have spent more time with Squeak, however, it has occurred to me that perhaps the fact that Croquet is written in a language that does not have a super-large developer community yet will work to its advantage.

As a Java developer, I was somewhat reluctant to learn a competing language like Python because it involved moving from a position of strength to a position of weakness in two steps. The first step involved leaving a programming environment I knew fairly well. The second step involved entering a competing programming environment which had a large number of developers who were much more skilled in it than I was. Beyond this, I had the feeling that when I devoted energy to Python, it was in some way making Python just a little bit stronger of a competitor to Java than it was before which had the effect of decreasing Java's value a little bit along with the value of my substantial investment in it.

With Squeak, however, I have not experienced these feelings because I do not view it as a "threat" to the languages I already know. Perhaps over time, Squeak's non-threatening nature will allow Croquet to accomplish its goal of becoming the infrastructure for the 3D version of the web easier than if it were written in a language that a significant number of developers viewed as threatening.

Ted Kosan

Tim Wang said...

Thanks Julian for clarify this. Using my layman's term is if SL is Wikipedia, then Croquet could potentially be an entire hosting service (Apache+PHP+Mysql).

Matty X said...

I continue this line of thought at my blog.

I love the apples and oranges picture, too.

Tim Wang said...

I took the liberty to answer Doug's last question on how to connect Croquet worlds outside of LAN
via my blog post. Hope this is somewhat helpful to others as well.

Ken said...

Hello Julian, I'm trying to find an engine for a end of term project, it's an educational tool prototype for history, I found Croquet and liked the way it allows to interact, wich I think is cool and have great potential, what I'm going to do is a simulation for at least 3 people in an online 3d environment where each one of them can interact with a set of avatars moving within a specific timeline (the start and the outcome are known), the users can move in and out of the avatars timeline, they can move forward or backward in the simulation and whatever change they do affects the avatars outcome and the changes can be seen by the rest of the users, can this level of control be implemented in Croquet?