Distributed Systems Part 2: Off-Island Data

The Core Croquet model describes a complete independent simulation, in which changing behavior is automatically synchronized between all participants. The model is best thought of as describing replicated objects with behavior over time, rather than as older models of program and data (or state). The collection of objects in a given replicated simulation is called an “island.”

However, one of the nice things about the Croquet model is that it can co-exist with other models. It is perfectly reasonable to use a “data” model for immutable objects (which do not change their behavior over time).

Continue reading

Spontaneous Usage

bloggingfrominworld

One success metric that I’ve been shooting for is that I want a user to do something in Croquet that was not specifically intended by the authors of the space or software. It’s very cool to create something that is ideally suited for a particular usage, but it’s really something to create a meta-tool whose usage exceeds the sum of its designed parts.

This fellow Laurence apparently created his blog entry from within the Collaborative.

I had expected and hoped the first such spontaneous use to be something based on collaboration, or on usability or scalability. This was not. It was done because it was fun to do. That’s pretty cool, actually. Shows what I know…

How do distributed systems work?

How do you coordinate activity across a network? People are doing this all the time, with varying degrees of success. But how is it supposed to work? What is the model to be followed? When I graduated mid-eighties, “Distributed Systems” was still a graduate specialty subject, not a pervasive guiding principle. Today, people like myself don’t seem to have a common ontology of approaches. Well, it’s about time.

Continue reading

“Turn me on dead man” (The Beatles)

The Collaborative for Croquet should be good to go, again. Get the new download.

We’ve lengthened the fuse on self-destructing deleted stuff and improved the error logging, and have not seen further “no such object” errors. (Except for one person who was using an older version. This beta release doesn’t check your version, but I could tell from the error report that it was something we fixed two versions ago.)

Also, the Macintosh VM that was included in the last download had gotten miscopied somewhere along the chain. Testing the new .zip confirms that it works on Mac and Windows. (Linux folks will have to test on their own.)

Anyway, this beta version still doesn’t have anything to reset itself if someone does manage to crash things, so if it takes longer than a minute or two to connect, let us know.

“Well, no one told me about her… She's not there…” (The Zombies)

Getting nothing but a red screen at CroquetCollaborative.org? Here’s why.

Croquet keeps track of everything ever created, so that anyone can tell each object to do stuff. Most of the demo applications in the current SDK keep track as long as they are running. That creates a problem for our KidsFirst Application Toolkit demo,
and its public space at the Collaborative for Croquet. The public space is meant to be a long-lived environment, in which you can come and create (or destroy) stuff and rearrange it, and come back later to see things as you left them (perhaps evolved by someone else).

So we resort to a very old programming technique. And if you’re a developer, we need your help!

Continue reading

The Collaborative For Croquet

We’ve got a bunch of Croquet stuff going on. We have the KidsFirst project in early education. There are a few folks who would like to work with the KidsFirst project as educators, academics, etc., but who need an entity to work with. We also have a fairly traditional open-source development project for the software used by KidsFirst, called the KAT: KidsFirst Application Toolkit.

And we REALY, REALLY, REALLY want a place that people can just connect to and try Croquet. To interact with others through Croquet. To come back another day and have some hope of finding the same 3d world, evolved though it may be, but still maybe having some of the same things that had been put there in the previous visit. A little open-source 3D-direction-manipulation real-time collaborative place on the Internet.

And so we have formed “The Collaborative For Croquet”.

Check it out at: CroquetCollaborative.org.

The KAT

Our KidsFirst project includes a great deal of what we’ve learned about Croquet. We’re making all the code available through the CroquetSource code repository, as part of the Contributions collection of code that will be distributed in the forthcoming Croquet release. (This repository is available to developers ahead of release, as part of what David Reed calls “Invention in public.” For info on updating, see this movie and this discussion thread. There will also be a new image distribution shortly.)

We call this code the KAT – KidsFirst Application Toolkit. It fits over all the other Croquet SDK code without changing it. All the KAT-specific classes begin with K – partly for the KidsFirst project that informs its development, and partly as homage to Alan. As the code matures, you may or may not see some of the KAT code migrate down to the base classes from which it inherits. (For historical reasons, the name of the Monticello package is “Wisconsin.” This may change.)

Continue reading