What occurred to me is that there are lots of jobs in real life where you have two people collaboratively operating one machine or even one set of data on paper, but I can’t think of a single pc-based application, outside of games, where two people are working on two computers on a real-time collaborative task. SubEthaEdit, I suppose, but that’s a relatively simple case. I’m not talking about having a conversation; I’m thinking about some kind of serious data manipulation. More like a pilot/co-pilot relationship. Gunner and loader, that kind of thing. I’m not saying it is a problem, but it is kinda weird if you think about it.
I wanted to share something I worked on a few clicks back, but sadly, his blog lacks comments (?) so maybe someone who knows him can send this.
During my sabbatical in 2000, I spent two months at Northern Arizona University (in summer, Flagstaff is a heavenly escape from the Phoenix desert) working on some experimental multi-user web applications, using an early version of the Shockwave multi-user server (MUS). Maybe Tom would categorize these as “games”, but it was nostalgic to think about them, and rewarding to see that code from 2000 still runs (despite that macromedia no longer even mentions MUS).
Basically, the MUS is a desktop application running on a computer plugged into the net, and is set up to “broker” small messages sent back and forth from remote users using a graphic interface authored in Macromedia Director. This functionality is pretty much totally eclipsed by the server communication layers available to Flash developers, but this was done in the pre-Flash era.
But to get to the good stuff, I created two prototype web applications designed for teaching basic chemistry, and they are environments where more than one person, from different places on the net, can share the same virtual environment.
In the Ideal Gas Law application, the goal is to adjust the temperature, number of gas molecules, and the volume of a chamber to try and achieve a specified pressure (hey, we all remember PV=nRT?). The idea is that in the multiuser environment, if I decide to decrease the volume by moving in the right wall of the chamber, the changes I make are seen in near real time by Tom on his computer. And if he changes the temperature, I see the effect– because we are two people sharing the same interface:
(full size image)
Ideal Gas Law Multi-user interface
Wow, I am impressed with the slick interface! There was even the ability to send chat messages between people in your group. That is what else the MUS could do for you– I made only one instance of the game, but the MUS could set up its messages so if Joan logged in but joined a different group, she would not see or be in my interface. So while I created three different groups, there could have been lots of them going on simultaneously.
I did get wild and coded a second version where two different groups “competed” in the same environment; group one would have a target pressure of say 45 atmospheres while group 2 had a different goal, say 60 atmospheres, and while each group could adjust T and n, they could only manipulate one side of the chamber wall.
There was another multi-user application related to balancing chemical equations where groups were able to share the same chemical equation and could manipulate the coefficients that go in front of each element. There was an instructors tool that would allow monitoring of the progress of different groups, and the creation of new formulas to balance.
They were really proof of concepts, but during my sabbatical in 2000 I did a live demo with colleagues in Arizona while I was over in New Zealand.
And the “big giant”server that handles the messaging still runs! Actually is a pokey Apple PowerMac 8500 that sites in my office, and the server log still registers numerous accesses every day. I have no idea who is using it or for what, but it is still going, and going, and going…
Do not ask me about doing anything else with this beyond what you see; even if I had a copy of Director 7 or 8, I know I would never remember the logic. Yes, there are comments, but the scripting ‘Lingo’ underneath the hood was hairy if I remember and the MUS functions were even more arcane to understand.
So while Tom’s blog post got me thinking about it, this turned out just to be a nostalgic trip down programming lane. heck, this might even be a learning object!