We’ve created ordinary http URLs that teleport you to places in-world in Qwaq Forums, Being programmers, we could not resist the pun of calling them QRLs. The most common uses today are:
- meet me here – telling someone where to meet, in IM, email, or calendar invite
- I was here – recording a history of where you were in a bookmark or some sort of audit trail
- go there – even if working asynchronously, you can tell people where to go to explore more from a Web page, blog, or wiki
Most programs will recognize
http://… and turn it into something clickable that starts your Web browser if it is not already started. Our QRLs produce a page that displays instructions, which is nice if you don’t yet have the Forums client installed. But if it is installed, the page can automatically launch the client and place you directly at the designated location.
Related to the URL addressing concepts discussed here, there is the question of how to denote places within a 3D world. I really like having names for these.
A typically engineering way to map out locations in a model is with coordinates. There are a couple of problems with this.
Numbers are generally pretty meaningless to users. I hate dealing in part numbers or account numbers rather than product and account names. Numbers just aren’t as mnemonic as a single name, and in 3D it takes a lot of numbers (six numbers of several decimal positions each) to describe the position and orientation you need to be in so that you can see something of interest.
Worse, a position and orientation are only interesting because of the things you can see and do there. If those things change (e.g., move, rotate, or change size), the coordinates for you to work with them are then different. We’re also interested in doing things in cooperation with other people. While it is true that unlike the physical world, several avatars can be in the same place, it is often cognitively and socially nicer to position a group of people around some item of interest rather than stacked up on top of each other.
Our client architect Brad Fowlow has led the development of several ways to address this by interactively or automatically creating a rather sophisticated set of named places from within-world.
One of the really great things about the WWW, as opposed to the Internet in general, is that the Web separates the concept of naming from everything else. A URL is bit of text that names a resource. You can type it. Except for some long URLs used by banks and in ecommerce, you can often even remember it. But most importantly, you can include the text in some other technology such as an email, an instant message, a calendar invite, a Web page, or even in a book or piece of paper. It can be sent and stored. The URL can be transmitted through this separate non-WWW media, and it still works on the other end.
When you name something, you have power over it. Like the dreidel mnemonic of the title, names help you to remember stuff. You can speak clearly about places and objects instead of just using misunderstood pronouns and long descriptions. And best of all, if you know something’s name, you can use it in casting a spell. (We call them programs.)
So a big part being able to work with virtual worlds, talk about them with other people, and use them in programs is to have a name – a URL that corresponds to each interesting thing about a virtual world.
I remember being moved by hearing Alan Kay speak fondly about a machine that was designed to crash. Now there’s a new version of the Croquet Collaborative that does this, too!
OpenLaszlo, for which I am the documentation guy, now compiles to DHTML as well as to Macromedia Flash (swf). That means that you can take the same LZX source and compile it to either swf or DHTML, and it will just work. So there is now a completely OpenSource stack for doing web apps.
OpenLaszlo is much more robust and full featured than any other Ajax toolkit. And, the architecture includes a client abstraction layer, which means that we worry about browser inconsistencies so you don’t have to. The upshot of all this is that if you want to build a real web application, you should use OpenLaszlo instead of some Ajax toolkit. Of course if you just want to spruce up a web page, Dojo or Rico or something like that might be appropriate. But I think you would have to be nuts to use them for building a real application.
We’re not yet shipping a “production” version — that’s scheduled for “sometime in 2006”– but the prototype version is getting more robust by the day, and there is a very credible demo up on the website.