CS 6360 Virtual Reality- Assignment 1
Zach Gildersleeve
January 31, 2007
Networked Interactive Virtual Environments - Second Life
The game Second Life allows its users to exist in a virtual environment where everything is possible via scripts, loadable textures, and physics. Based on my experiences in Second Life (SL), "everything possible" frequently is "not much." Unless the user has a clear purpose in mind - and to the extend that SL can provide that purpose better than the real world - much of the Second Life experience is mindless wandering. Other users seem few and far between and minding their own business, but occasionally there was some interaction between myself and others. To wit:
- an avatar requested that I run into him, which promptly snapped off his legs, bleeding, he fell to the ground
- a turkey tried to sell me his furniture, because he had some bills to pay
- a gremlin wanted to buy my horns, or at least trade his codpiece for my tail
- an angel discussed the morality of the explosion I was building
I spent most of my time in Sandbox Goguen creating objects. My success seemed to depend on the latency of SL at the time. Early in the morning there were relatively fewer users, but as the number of logged users increased, my ability to accurately troubleshoot the objects and scripts that I was working on decreased. My initial plans were to make a solar system, with a sun, planets, and moons all in various orbits. Orbiting one object around another was straightforward by rotating one object and linking to that object, as is the case of the sun and and a planet. Multiple nested rotations are not possible via linking the objects together, and involve rezing objects from a single source. The rezObject function has a limited range, as does the connection between linked objects, so my solar system was not buildable to the scale desired. At larger radii of rotations, the planets would translate too quickly to edit consistently, or they would erase themselves by leaving the confines of the sandbox.
Below is a Saturn type planet, which a particle based ring that constantly generates.
I also attempted to create a vehicle to drive around in, but suffered some of the same problems. Overall, much of the difficulties that I experienced were due to the rendering settings on my computer, and the server latency. One potential tool for quick object creation would be a completely offline version of SL, for quick design and troubleshooting. Below is my sand storm car, which takes control of the avatars keyboard controls, and moves up, down, left or right.
The objects that I had the most straightforward time working with were particles, which once the parameters were understood, responded more intuitively than some of the other scripts implemented. Perhaps this is because particle systems in SL are entirely generated on the client-side, which made for more interactive design and playback. The object "bomb!" creates a small shiny shape, that when touched counts down from 5 to 0, and explodes. According to the SL wiki, only one particle system can be active per primitive (prim), which given the parameters and the desire for smoothness, roughly translates to a different possible particle system every 3 seconds or so. Attempting to call two particle systems in a shorter time simply overwrites the initial system. To generate multi-colored particles at the same time, the best option would be to assign an animated texture to the particles. As it costs money to upload textures, the "bomb!" object calls a second, invisible object "sub" into existence, which can produce particles the same time as "bomb!". The result is a multicolored explosion that floats upward, and the deletion of the bomb object as it is exploded. Below, a sequence of the bomb exploding.
I also had good success with the physics engine, which I felt also provided an intuitive interface. I added horns, spikes, and a tail that, with the correct parameters, behave appropriately and had fairly lifelike qualities.
In conclusion, Second Life offers some interesting opportunities for play and creation in a physics based world, but it is hardly a substitute for the real world for human interaction, or an offline graphics or physics system for simulation. I also found that it was too distracting to engage in actual work over longer periods of time without taking the opportunity to simply fly around. If users continue to build the SL world, the result will be very interesting from a systems theory, social psychology, or similar avenue of research, but full interactivity will most likely be limited by latency as the user base grows, and will not replace the dominance of other online social networks, or traditional communication techniques.