.comment-link {margin-left:.6em;}
Moriash Moreau: My Second Life
Tuesday, October 31, 2006
Yet Another Walking Update
After walking in-world a four or five times a week for a while now, I'm starting to see a little progress. Due to the walking, in addition to a half-hearted attempt at dieting, I've lost about 25 pounds in the last 12 weeks or so. Not great progress, I know, and I have a long way to go. But it's relatively painless, and easily sustainable for as long as it takes. And it gave me a good excuse to tinker and play around in SL every morning, too. Not a bad deal. As I'm sure I've mentioned before, I still find it symmetrically pleasing and just that Second Life, the cause of a fair bit of my swivel-chair spread, is helping me lose it.

(Don't worry, this won't turn into Mori's weight loss blog. I expect I'd find that as boring to write as you would find it to read. Just thought I'd mention it in passing.)

But, alas, I fear I'm neglecting the upper body workout. (Well, not really. I couldn't care less about that. Just go with it.) Perhaps I need to look into something like this. The overhead weight assembly would be quite easy to adapt for the keyboard interface. I don't see any reason at all why simple contact switches couldn't be used in place of the fancier IR sensors. I'd be somewhat hesitant to integrate this into a real weightlifting apparatus, though. I know just enough about weightlifting to know that you can seriously mess yourself up by doing it wrong. And I expect that trying to flap your arms like some kind of demented bird would qualify as "wrong."

I did consider a somewhat related scheme after reading Aimee's comment when the project was mentioned in SL Insider. I got as far as whipping up a crude prototype for an arm-flapping control: a simple accelerometer (a metal weight sliding loose inside a plastic pipe, and a pair of contacts that closed when the weight is flung upward) designed to be held in my hand, to sense when my arm was quickly moved up and down. I'd planned on making a basic flight attachment and a set of animations to allow me to fly around in-world by flapping my arms (using two such devices, one for each hand). Unfortunately, my shoulders started making quite alarming popping and crackling noises after only a few wing strokes, so I shelved the project. Evidently, if men (or at least this man) were meant to fly, they would have been given not only wings, but more robust shoulder sockets. Too bad. No physical manifestation of the "I just flew in from Gibson, and boy are my arms tired!" joke.

That's really kind of a pity. I'm a sucker for physical comedy.
Sunday, October 29, 2006
Time Capsule
So, I was wandering aimlessly in SL Friday evening, when I received an IM from Jade Lily. Jade invited me to drop in and see the in-world version of the Yahoo Time Capsule. I was a bit flattered, actually, as I would not normally expect myself to be on the personal invitation list for such an event. Makes me feel like I'm at least in an eccentric orbit around the FIC. And I guess I was at perihelion (periFICtion?) Friday night. In any case, I appreciated the personal invite. Thanks Jade!

For those of you who haven't heard of the project before, Yahoo is compiling a digital archive of images and text to be opened 14 years hence, in 2020. The Electric Sheep Company created an in-world interface for the project, and encouraged SL users to come in and drop their images into the custom-made interface (the purple box at the base of the image display sphere).

You can see me in my "Papa Bear" avatar from Plywood on the right. (The "Jaws" pun in that second strip still cracks me up. I'm probably the only one. Oh well.) Yeah, it's just me, attention-whoring again. But, dangit, I like Papa Bear. He's fun. And, for what it's worth, Destroy Television seemed to like him, too. (Previous two links taken from Destroy TV's flickr stream.) I really need to come up with a "Papa Bear Body Slam" animation, just to make the point. Papa Bear only made a brief appearance before I tired of making a spectacle of myself and switched back to my normal, unassuming avatar.

I ended up sticking the inaugural comic in the time capsule. That's probably my sole notable contribution to SL, so far. I figure I can milk Plywood a little longer, at least until the Metaverse Messenger run is complete. Then I'll let it gracefully fade into obscurity. It'll be a nice little reminder when/if I see the comic come up again in 2020.

Besides, the image has the URL on the bottom. Maybe someone will do a Wayback Machine search in 2020 (assuming I'm not vain enough to keep paying for hosting for the next 14 years), and go "Oh, yeah. I vaguely remember that. Huh." before he adjusts his brain jack and dives back into the metaversal datastream. Probably the best monument I can hope for, considering that it's all built on the shifting sands of the internet.

Wow. I'm kind of in a mood today, aren't I?

The hologram display effect is kind of nifty. The display pulls random images from the contributed textures, and sends them to a slowly rotating spherical array of particle emitters. The emitters simply drop the image as a particle at the source, with the FOLLOW_SOURCE tag enabled. The net result is that the images orbit in their perfect spherical array and, due to the sprite-like behavior of particles, always face directly toward the viewer's camera. Very slick effect.

While I was there, we were all treated to an impromptu live concert by Mel Cheeky. She just parked herself on top of the time capsule and cut loose. I'm not much of a music critic, or even a music fan, but she was damned good. Go see her live. So sayeth Mori.

Following Ms. Cheeky's set, Cylindrian Rutabaga took the box and busted out a few numbers. Again, I was quite impressed. No, I'm damning by faint praise there. She kicked ass. Go see her in-world first chance you get. Mori doth command you.

So, I managed to peak around my script windows and go do something vaguely social, for a change. Not a bad way to spend a Friday night... At least until I find another project to occupy my time. I gotta be me.
Wednesday, October 18, 2006
1,000,000 Residents
Well, we hit the one million residents mark sometime this morning. My guess is that's about 300k actual players (200k of which play once a month or left SL months ago), 200k alts, and 500k throwaway one-time logins. Yay. Wheee. (Statistics pulled out of whatever orifice was handy.) Does this make us mainstream now? What is the necessary user count for mainstream acceptance? When does SL start becoming the laugh-track heralded punchline on bad Friday night sitcoms? Oh well, at least we have a few hundred more "SL is all about sex and money" mainstream news articles to look forward to. That, and a few score virtually identical "a million users... well, not really..." articles from the gaming press. Just in time for the boys on Capitol Hill to start figuring out how to tax Linden dollars.

That's all I have to say about that.

Addendum, 10/27/06
Wow. I was really having a bad day last Wednesday, huh? I'm still a bit dubious about the true statistical significance of the 1,000,000 number, but I can't argue the positive effect. The big, round numbers sure bring in the traffic. SL is bursting at the seams, but I have no doubt LL will get it all sorted out. We're one step closer to becoming the new and improved web. And, deep in my little early adopter heart, I couldn't be prouder.

Oh, and apparently the whole taxing online transactions thing was just a false alarm. Turns out that congress is advising the IRS against taxing online transactions... For now. The concern was that an ill conceived tax code would be implemented without fully understanding the issue. And a huge concern it is, too! I don't really see the average congresscritter getting the goings on in an online environment. Which means they'd invariably fall back on bad analogies (for example, that it's kinda like a real world, brick-and-mortar business located in the USA), and invariably make bad, unwieldy, unworkable laws because of it. Here's hoping that SL at least hits mainstream, web-level acceptance before the IRS aims its gaze at its communal coffers again.
Friday, October 13, 2006
If you're not listening to SecondCast, well, why the heck not?! I command you, my army of loyal readers, to go forth and subscribe immediately. So sayeth Mori.

Or at least take a listen to Episode 37. It's freakin' brilliant.
Beach Ball of DOOM!
During my morning constitutional, I ran across an abandoned beach ball in an empty woodland sim. You know the objects I'm talking about. They were the toys we all played with in order to learn the use of the (dubiously useful) click-and-drag ability in the newbie center. Normally, this would be an inconsequential, everyday event. A beach ball. So what? But the grid attacks earlier this week changed that.

From what Will Webb (volunteer grey goo cleanup and damage control officer) tells me, some schmuck used the freebie beach ball as a shell for his scripted self-replicator payload. To make matters worse, this attack employed non-scripted decoys to hinder cleanup attempts. So there I was, confronted with a brightly colored, innocuous beach ball. Or, potentially, an unexploded bomb capable of bringing down the Grid. Stop and think about the absurdity of that situation. I'm looking at a beach ball. (Or, more precisely, orbiting around it. Didn't want to interrupt my walk by stopping.) And every movie bomb defusing cliché ever to come out of Hollywood is running through my head. "Blue wire, red wire! Red wire, blue wire!" The timer is ticking down to zero as the frantic music swells, and a single bead of sweat runs down the hero's brow... Over a beach ball!

To make a short story longer, I ended up using the edit tool and hover tips to determine that said ball was only a non-scripted, physical object. (If it was still live, I would have braced myself for the potential Chicken Little embarrassment, and put in a call to Live Help to clean it up properly.) And, because it ticked me off, I triggered my trademark glasses to blast the offending object off the edge of the world. Thus, I either did my good deed for the day, by cleaning up an undiscovered bit of gray goo effluvium, or I blasted some innocent player's toy into oblivion. If you lost a beach ball on the southeast coast of the main continent, well... Sorry about that.

And, on a semi-related topic, it's time that everyone was reminded of the GIFT. For all too many people, it is the cornerstone of online behavior. Keep it in mind next time you run into complete assjacks on the Grid. They're not a product of a bad environment. They're not "roleplaying." (If the role you are acting out requires you to be a reprehensible, amoral, and/or deliberately obnoxious asshole, then my roleplaying requires me to ban you, add you to my ignore list, and generally treat you as your character (in both senses of the word) deserves. Damn, I'm a good roleplayer, huh?) They're not making a socio-political statement. They're not too stupid to know better. (That cuts no ice at all in SL. Nobody in SL for more than a day or two is stupid. They're at least smart enough to use a computer, and to get the point of an online game with no monsters to kill or levels to gain. That alone places them in the middle of the bell curve, if not on the right-hand slope. I've said this before, so I'll let it go at that.) Most of the time, there are no extenuating or mitigating circumstances whatsoever. They're just under the influence of the GIFT, plain and simple. Remember that.
Tuesday, October 10, 2006
GoD Progress
Made a couple of minor additions to the Garage of DOOM over the weekend.

First is a minor attempt to deal with potentially excessive sim load caused by the GoD. I've been watching things closely, to see exactly how much the game contributes to simwide lag. Unfortunately, without a full knowledge of what else is running in the sim, I can't draw any solid conclusions. Louise seems to drag intermittently whether a game is in progress or not, so I can't isolate the GoD's contribution. I swear, one of these days, I'm going to rent an event sim for the weekend and settle it once and for all. So far, I'm not quite frustrated enough to drop $40 US just to solve the problem. But I'm nearing that point. Maybe I'll just wait for the next new mainland sim to go live, and setup a temporary pirate facility until the autoreturns kick in.

But I digress. Frequently. Until I've located the source of the lag (either in the sim or in my own code), I've added a simple failsafe. Now, the monster rezzing routines check the sim's time dilation each time a new monster call is made (every few seconds). From the LSL Wiki: Time dilation occurs when the sim can't keep up with the processing of its tasks even after reducing the time allocated to scripts and physics. Avatars will experience this as slowed-down (slow-motion, "bullet-time") movement. This seems to be a reasonable indication of the sim's overall health. If the time dilation drops below 0.8, no new monster is rezzed. This does nothing to stop the existing monsters already in play, but at least it won't exacerbate the problem.

My next step would be to expand the monster server's dilation check to disable/freeze the monsters when time dilation drops too low. This would require using llSetScriptState to turn the major scripts (movement, damage detection, etc.) on and off as required. I'm hesitant to go that far, however. It'd be very messy to change the system to allow monsters to suddenly become unresponsive without warning.

The second change involves flight. At the suggestion of a couple of my informal beta testers (Thanks for the comments, folks, keep 'em coming!), I've taken steps to neutralize flight altogether. As you may remember from previous posts, I was of two minds about allowing flight in the game. But, ultimately, I think that it was allowing too much of an advantage to the slow, plodding zombies. Any monster fast enough to catch a flying player would be far too difficult to evade for running players.

I kicked around making flight-responsive monsters that would increase their speed to match their foes, as well as special "flight only" monsters that'd rez to deal with fliers. But, ultimately, I settled for a simpler approach. The HUD checks for flight status once a second, and freezes the player in place (using llMoveToTarget at his current position) if he is found to be flying while he's in the game. Nothing too fancy, but it works.

But, naturally, this had unintended consequences. In this case, I realized that it could cause problems if a player teleports away mid-game with an active HUD. He'd be locked in place next time he attempted to fly. So, I was forced to add a failsafe feature that probably should have been in place all along. Now, if the HUD doesn't hear a roll call request from the server for 15 seconds, it automatically ends the game, and incidentally disables the flight lock. So, worst case, the player is frozen for less than 15 seconds. That doesn't seem too unreasonable.

So, I guess that's kind of like progress.
Monday, October 02, 2006
General Update
No, I'm not still malingering over my very minor injuries. I was perfectly fine within 48 hours. In fact, I've completed the wooden rocker platform, and firmly clamped the exer-cycle to it. The physical portion of the interface seems to work fine. It's a nervous business to mount the thing, as it rocks and tilts (rolls and pitches) under me as I climb aboard, but it's pretty stable once I'm in position. I'm surprised at how easy it is to balance on a platform that's a mere 9" wide by 16" long and resting on a padded carpet. I feel quite secure, even whilst pedaling at a reasonably good clip. It takes a deliberate act to overbalance the resting platform and lean on the outriggers. No more unintended backflips, anyway. I'm actually considering shortening the platform a bit, once I get used to everything. This will all make more sense when I get around to posting pictures.

Next step is to fit it out with tilt switches. I've purchased a few mercury switches for the purpose, but I'm not sure how they'll perform with sudden movements. Also not certain the platform will tilt sufficiently, especially in the roll direction. I opted for safety there, so it only tilts something like 10 degrees forward and back. I may have to trade the mercury switches for some kind of simple pushbutton switches that will close on contact with the floor.

I also have to track down a maddening short in the switch and wiring for the right turn control. I'm hoping it's just a wiring fault, and not an indication of degradation of my USB interface.

Then there's designing the in-world vehicle. I'm more than a bit dissatisfied with SL's vehicle code and general performance. And I'm sick to death of running to invisible no-entry lines at sim borders (when, oh when will they fix that?!), and having my vehicle continue on while my avatar drops to the ground and sits in mid air. I know of at least one or two houses that now have a half dozen test vehicles embedded in their rafters. Frankly, if you have your home flagged No Entry with no auto-return, you deserve to have your property littered with other people's crap. Most people (myself included) will at least attempt to clean up their messes... Provided they can enter your property to get to them. But I'll be derned if I'm going to spend half an hour playing camera tag to find lost vehicles and such from 30 meters away, just because you decide your prefab newbie box absolutely must be secure from any and all passersby who might have the temerity to walk on your lawn.

Sorry. After the 57th time this kind of thing happens, I'm a little irked. It's my weblog, and I'll gripe if I want to... Vent if I want to... Bitch if I want to... You would gripe too, if it happened to you! (With apologies to Lesley Gore.) Ahem. Anyway.

As far as the Garage of DOOM is concerned (haven't talked about that in a while), performance is a bit of an issue. When things are going well, the framerate is very nice. (I'm still a huge advocate of high altitude builds for this reason alone.) But it's pretty much unplayable during peak times, especially with multiple players. The lag hits the players harder than the monsters, making a difficult game impossible. It's just too easy to lag-freeze one second and die the next. I'm a little disappointed in this, and hope that it's a transient effect. Seems like every time I try to test it, some schmuck is launching a self-replication attack. I may have to put in a time dilation monitor to limit monster production during peak loads.

I think my hubris about minimal sim impact was probably unjustified, in any case. My one-man runs just weren't testing the system sufficiently. I'll have to do some further optimization (and have already done some), but this is never going to be a no-impact game. Unfortunate. I find it hard to feel too bad about this, though, especially given the transgressions of some of my neighbors (still haven't found what is dropping time dilation to 0.2 every 20 minutes or so, but it's unrelated to the GoD). I suppose I'm going to have to make some hard decisions for the general health of the sim. I'd hate to have to limit the game to single player, but I may have to at least cap it at two-man teams.

I have received quite a few comments from the beta test message recorder. Most have been quite positive. Some folks have asked for things like 3-D models and support for third-party guns. Quite a few people seem to be using their own guns, anyway. I fear I'm going to have to enable no-push on my property, once the no-push vs. objects is enabled (this coming update, if I remember correctly), just to keep people from blasting zombies into adjacent sims. I have failsafes to zot them after 60 seconds if they leave the arena, but I still get three or four monsters returned to me a day. I don't see the appeal of using third-party guns, given that they won't register damage against the monsters. Blasting them across the sim doesn't seem to be a lot of fun, but whatever keeps people entertained, I suppose.

As for 3-D monster models, well, not going to happen. They're physical movers. Even if I somehow had the prim count for decent prim statues, and the talent to make them, I doubt I could keep them under 31 prims (the limit for physical objects). I am kicking around making a boss monster, someday, and I expect it'll be a prim model instead of a cutout. Perhaps some kind of tentacled horror emerging from the manhole? We'll see.

A few people have suggested enabling the No-Fly flag, to keep folks from flying around the arena. Flying generally results in bouncing around the floors (unless you have a flight assist, you can't ascend at these altitudes) and slam into corners in the confined space, but it does give you a burst of speed. I don't think I'm going to do the No-Fly, mostly because it's obnoxious to passersby, but I am kicking around some kind of in-game punishment for flight. Perhaps some kind of special monster that rezzes only if you're flying, or maybe something built into the HUD to lock the player in place and/or damage him if he attempts to fly. I can't decide if I want to completely remove flight as a valid game strategy, or just make it costly in some way. I'll have to think about it some more.

And I notice someone beat my high score... Gonna have to do something about that.