Tuesday, June 19, 2007

Progress: Wrapping up

The chat logging portion of this project is so close to being done, it hurts. Here is the data chain as it stands right now:

SL --> email --> POP3 PHP script --> OSC --> Max/MSP

Using this method, I have successfully gotten data into Max/MSP from SL in something close to real-time. The original test involved clicking a link to send the data; that worked fine. For the past few days, I have been working to incorporate the code that forwards the message through OSC into the POP3 script. So far, no luck on that. There are all sorts of possible reasons for this, the top suspect being 'REMOTE_ADDR'. I've tried multiple work-arounds for this issue, but still no luck on either the schools server or my local server. Of course, the problem may lie elsewhere, but I can't find it if so.

One other minor issue I'm having is with the ;max launchbrowser message. I was planning on hooking up a metro to the message in order to request data at regular intervals, but the message opens up a new browser tab every time the metro sends it a bang. I've searched google, the Cycling 74 forums, and all the Max documentation, but haven't found any messages that can refresh a webpage instead of opening a new one. I don't think this will be a big issue; it is simple enough to insert one line of script into the POP3 PHP file so that it will refresh once every X seconds.

Once these two small issues are fixed, this path is essentially done; I could then turn my test patch into a fully functional one and begin beta testing and small test performances. Hoping for a solution!

- M

Wednesday, June 13, 2007

Defining Second Life

A few days ago, a discussion popped up on the Second Life Educators mailing list about how to define Second Life in relation to other online virtual communities, specifically World of Warcraft. Though there are many different buzz words used to describe the various types of virtual communities, most agree that there is one specific difference between a world like WoW and one like SL: the presence of goals. Here are some quotes from the members of the list:

***
The basic distinction between SL and WoW for me is that SL is a simulation, and WoW is a game. Here are a couple of quotes from Akilli (2007):

"A simulation is defined as an interactive abstraction or simplification of some real life, or any attempt to imitate a real or imaginary environment or system (p. 4)"

"According to Prensky (2001) simulations and games differ in that, "simulations are not, in and of themselves games. In order to become games, they need additional structural elements--fun, play, rules, a goal, winning, competition, etc. (p.5)"

So while SL may contain games to play, it is not a game in and of itself. Akilli also uses the term game-like learning environments, "authentic or simulated places, where learning is fostered and supported especially by seamless integration of motivating game elements, such as challenge, curiosity, and fantasy. (p. 5)."

Finally, I'm noticing lots of folks using the term MUVE to refer to SL in literature, or immersive virtual world environment.
***

If you look at WoW and SL as virtual worlds, there is no difference.
Every MMORPG is also a virtual world. But not all virtual worlds are
MMORPGs.
***

I'd suggest that the common terms used are Social Worlds and Game Worlds/MMO/MMORPGs.
Social worlds are those where ludic elements are not coded into the system, they stem from tinyMUD, LambdaMOO etc, and go through to Second Life, There.com etc.

Game words are those where game elements such as character classes, levels etc are coded into the system, they stem from DikuMUD.

Yes people play games in social worlds and are social in game worlds, the distinction is more about the artifact and its intended purpose rather than necessarily about the emergent practices.
***

There was also a source cited by two people that I'm going to try to get hold of:

Akilli, G. (2007). Games and simulations: A new approach in education? In D. Gibson, C. Aldrich & M. Prensky (Eds), Games and simulations in online learning (pp. 1-20). Information Science Publishing: Hershey, PA.

Found it on Amazon, but hopefully I can find it in a library.

- M

Tuesday, June 12, 2007

Progress: New Path

For the past week, my advisor and I have been examining two new methods of getting data out of SL and into Max/MSP. The first still involves heavy PHP, but instead of using Silo to store the data it'll use a MySQL database. This solution seems much more elegant and stable than the first, but will involve quite a bit more PHP study.

The second method is already well under way. I have scripted an object within SL to send every chat message it hears as an e-mail. It is done and tested, so the next step is to automatically retrieve the e-mail and format the message so it can be sent through OpenSound Control. I'm currently hung up on that part, unfortunately. I've been following this tutorial on using PHP to check e-mail through POP3, but I keep getting the following error:

POP3 connect() - Error: Can't connect to Server. Error: 110 -- Connection timed out

I believe I have the mail server address correct because when I change it, I get a server not found error instead. I'm not sure if the issue is on my end, or with Gmail where the account is. I found the following post on the tutorial's website:


>>Connected to mail server POP3 login() - Error: No connection avalible
>>
>>I am getting this error?
>>
>>Any one can advise me?

>If you’re on a server without root access, you can’t use any port below 1024.


That's a different error than what I'm getting, but I can see myself having that problem on the school's servers. Gmail's configuration page says that port 995 is needed, which is obviously below 1024. The school has been having network issues over the weekend because of power outages all over town, but I've tried it on three separate days now and still no luck. I'm going to fiddle with it some more before my meeting with my advisor today, but I think this might end up being another IT issue. Crossing my fingers for no power outages today!

- M

Tuesday, June 5, 2007

Back to Square One

Unfortunately, the visit to my university's IT department was fruitless. If anything, the situation is MORE confused than it was before. No one was able to puzzle out the problem with getting Silo running on the school's server, so it looks like this entire path may be a bust. I've sent one last e-mail to the developer of Silo, but I'm reasonably sure the problem is with the apache configuration of the school's server.

My meeting with my advisor today was spent brainstorming some new possible paths for the chat logging part of the grant. It looks like there are two equally viable paths we could take: one more complicated, but somewhat quicker in transferring data, and one that is actually quite simple, but contains many possible slow down points. Before Thursday I'll be diving deeper into LSL in an attempt to get chat data formatted as a URL to be sent to a PHP email form. With any extra time, I'll also be looking into applescripting.

My video tracking patch is more bogged down than ever. It's so bad that I'm only getting one voice out of my poly~ object. I've decided that I'm going to use two separate Max patches for the video tracking portion of the project. I'll be splitting my current patch up into two parts, the Jitter part and the MSP part. One patch will run in Max itself while the other will be in Max Runtime, and the two patches can communicate through netsend and netreceive. I'm hoping that, as others have experienced, my dual-core processor will be more efficiently used by splitting it up in this way. Depending on how much time the LSL scripting takes me, though, these changes may not be implemented for a few more days.

- M

Friday, June 1, 2007

Progress: Additional Help

Some helpful e-mails have come through from various people, giving me a few more options to consider.

Correspondence with Zero Linden, creator of Silo, has proven fruitful. The first issue to overcome was debugging...Silo was not passing the tests set to it by the python program included with the download. The issue was actually in the formatting of the url, which is highly dependent on your apache server configuration. Silo has now passed all tests and has created the data folders that it needs to communicate with SL.

Zero Linden was also kind enough to provide me with a smaller, more efficient script to relay chat data to Silo from SL. Effectively, all it does is send everything it hears to Silo, with each message overwriting the last. That should be fine, since I want the data to be passed along to Max/MSP as soon as it hits Silo. Here's the new script:

default {
state_entry() { llListen(0, "", NULL_KEY, ""); }
listen(integer ch, string name, key id, string what) {
llHTTPRequest("http://some-url/chat", [ HTTP_METHOD, "PUT" ] , what);
}
}

Though, I'm still having issues getting everything working start to finish. Zero clarified for me in another e-mail that LSL scripts run on SL's side of the internet pond, not on my machine, so Silo MUST be installed on a remote server. This is where Stetson's IT department comes in.

Through several exchanges with IT, it's been determined that it'll be far easier if I just go meet with them and explain exactly what it is I'm doing. They claim that there is a problem with the Silo code and that they're getting several different errors. I have an appointment to meet with them today, so we'll see how it goes. Hopefully this will remove the last roadblock on this path!

- M