Friday, October 16, 2009

OpenSim in the Classroom: Diva Distribution Makes It So Much Easier

I have a sim running on XPSP3 on a desktop with a static IP. I set up a network switch so I can run network cables to a class of students' laptops with the Second Life Viewer with a command in the shortcut that makes it connect to the IP of our sim rather than Second Life online. A little more on the details of my setup is here. And here is the step-by-step for getting it up and running:
  1. Desktop running Windows XP SP3, assigned a static IP by the DNS server, no monitor, I just log in remotely. (Ask your system administrator to assign the IP if you, like me, can't.)
  2. Download the zip file for the latest Diva Distribution here. Unzip it to a folder in your Program Files folder called OpenSim or whatever you like. Diva is one of the core developers of OpenSim and has come out with this great binary distribution with good documentation and an update utility, which is an otherwise difficult task. Additionally, Diva has included several major improvements in the program, including 'megaregions,' or a seamlessly connected grid of regions. The default here is 2 X 2, or a total sim of 512 m X 512 m.
  3. Now look in your downloaded folder for the documentation. Read 'install.txt' first just to get an overview. Then read 'MySQL.txt.'
  4. Then install MySQL 5.1. There are good instructions here, though a little old. Stop following it when he gets to configuring the opensim.ini file because it's for an older version of OpenSim. The Toad--MySQL GUI--part is for an earlier version of Toad, but the idea is to create a root account and create a new database called 'opensim'. Then create another account named 'opensim' and any password you like that has full privileges to the opensim database. If you prefer you can use the mysqladmin commands (tutorials are here and here). That's also the method explained in MySQL.txt but you might need a little more to go on than just what commands to type. No need to create any tables. OpenSim will do that on first run.
  5. Download and install the .NET framework 3.5.
  6. Now follow the steps in 'install.txt.' After running OpenSim.exe in the steps you'll see lots of colorful commands fly by and hopefully no errors.
  7. Next you'll need a viewer. I tried Hippo and it's great except that if students are connecting on Windows machines with network accounts Hippo has no way I could figure out of saving the sim IP as the default for all users on the machine. Instead, I downloaded the Second Life viewer, installed it on the student laptops, right clicked on the desktop icon (which will need to be moved to the All Users desktop and given full permissions to 'everyone') and added the following flag in the 'target' field: -loginuri http://fixed.ip.ad.dress:9000/ That reroutes the viewer to your sim rather than actual Second Life on the web. If you don't want the occasionally racy SL screenshots showing up either you can add -loginpagehttp://fixed.ip.ad.dress:9000/?method=login.
  8. Now with your sim running, open the SL viewer from the icon and login with the master avatar account you created during the config. I hope it works! Enjoy it for a bit before tackling the next steps.
  9. For voice chat you need a voice conference service called FreeSWITCH. At the time of this writing there is a new option for voice called Vivox that sounds better and is fully spatial while FreeSWITCH isn't. But Vivox requires a "customer admin account" from Vivox and I don't know how to get that. (I've since found out it's a commercial application that costs thousands of dollars.) You can download a precompiled binary of FreeSWITCH here, and, yes, you have to install the Microsoft Visual C++ 2008 Redistributable Package like it says before you run the Freeswitch program.
  10. To configure Freeswitch to work with OpenSim, you have to change some config settings in a few xml files, explained here. This video also demos the steps. One confusing part of this video is that he's using v1.22 but he says anything after 1.22 is compatible with FreeSWITCH voice. It turns out the option to enable voice only exists in v1.22, but you switch to 1.23 to use it. More on that later.
  11. Now you're ready to configure settings for OpenSim in the OpenSim.ini file. Find the section labeled Freeswitch and configure those settings as shown at the bottom of the Freeswitch config instructions.
  12. Now you can start up Freeswitch. Double click freeswitch.exe. Ignore the red error messages (really!). Start up OpenSim exe.
  13. Open your viewer (v1.22) and log in to your sim.
  14. You have to enable voice chat for the estate. Click Edit > Preferences and under Voice Chat make sure it's enabled. Then click World > Region/Estate, click the estate tab and make sure "Allow Voice Chat" is checked. Finally, right click on the terrain, click About Land, click the Media tab, and click "use estate spatial channel."
  15. Then log out and log back in with v1.23. To use voice, make sure your headset is plugged in before you start the viewer and to talk click the talk button or the lock next to it.
  16. Once these things are set, you need someone else to log on or you could talk to yourself over two computers. To talk, look for the talk button on the lower right. Click the lock next to it to toggle talking on or just click and hold the talk button while you're talking.

Tuesday, October 13, 2009

Diva OpenSim Distribution looks promising

I've been thinking I will need to upgrade my OpenSim installation from 0.6.5 to 0.6.6 for hopefully some increased stability and reliability. This may be the ticket. I'll have to wait until we go through one round of the drama project, though. Don't want to break the sim at a crucial time.

Friday, October 02, 2009

OpenSim in the Classroom: Just Avoid Wireless

An app like this just needs more solid throughput than a wireless connection with at least a dozen clients over a single AP can provide. It just works so much better with wired computers. Today voice was crisp and clear--loud, even--without wireless and 13 clients. And I didn't let them edit appearance during the voice testing so voice stayed strong. I did confirm that FreeSWITCH is not spatial, unfortunately. Everyone is audible to everyone else at the same level no matter their relative grid position. We (the drama teacher and I) though we might be able to get small groups rehearsing simultaneously in different parts of the region, but that won't work.

The only problems were two accounts getting repeated failed logins, alternating between a "session crashed" message and a message that were already logged in when trying to log in. Turns out this resulted from their data not saving properly during an earlier session using wireless. This drove me nuts until I figured out a fix. Log in to the MySQL opensim database (using Toad or whatever MySQL GUI you were able to get, or MySQL admin if you can), go to the users table and find the user in question's UUID. Then go to the agents table and you'll find that that UUID has a few field values that the rest don't. AgentOnline will be 1 (true) instead of 0 (false), so change it to 0. LogoutTime will say 0 so you can just insert another user's value there. Then the currentPos will have some null value codes so just insert another user's values there, too. The user should be able to log in again, no problem. Since it's clear the crappy session data resulted from a poor connection, this type of thing is one more headache that can be avoided if you stick with wires.

Thursday, October 01, 2009

OpenSim in the Classroom: LAN Party

Today I tried plugging 14 clients into the school network so they could log in to our sim and we could take the FreeSWITCH voice chat for a test drive. The network cables are bundled so they won't get horribly tangled so I couldn't quite reach cables to all of the computers, leaving 3 of them wireless, which may have had an effect. Anyway, with students really wanting to continue editing their appearance (It IS a girls' school after all.) I tried having students toggle the talk button one at a time while they were still editing. A couple (loud and clear!) utterances into it and the voice service dropped out. No one could toggle their talk switch anymore. Watching the console I could see avatar inventory flying into the server so I'm guessing my only option left to get this thing working is to avoid combining any significant editing with voice data. I'll try that tomorrow, in a room where I think everyone can be wired. One preparation I plan to make before starting the drama production with 12 eighth graders in a couple weeks is to configure and edit all of the avatars for the students so they don't have to spend our precious training and rehearsal time doing it. Maybe they can configure their avatars during study hall. That will go over well...