.comment-link {margin-left:.6em;}
Moriash Moreau: My Second Life
Thursday, June 30, 2005
Fractal Gum
After spending a ridiculous amount of time and Linden dollars collecting all of the different flavors of Moopf Murray's Lucky Dip gum, I decided to try my hand at making my own version. (As I mentioned before, the gum itself is the easy part. Moopf's bubblegum attachments are clever, but the gumball machines/item servers are the really ingenious part.) I don't plan on competing with Moopf by distributing my alternate gumball design(s). In fact, I've just installed a Lucky Dip machine in the Garden of Mo. This was just an interesting way to kill an evening.

My gumball randomly maps one of three six fractal art images (created by Cory Ench, not that the tiny spherical projections do them justice) onto the bubble each time it's blown. There are three different animated bubble sequences, also selected at random:

Tuesday, June 28, 2005
Look! Screenshots #3!
A few days ago, I decided to upgrade my glasses. Now, just for the heck of it, they fire red and green laser beams. Wheee!

Otherwise, my time was occupied with normal tinkering. I worked out a flying couch attachment for Laura (using a nifty canned animation override and a script to check flying state). I don't know why she wanted a flying couch, mind you. I'm just the script monkey.

I also spent about $200L on bubblegum from Moopf Murray's Lucky Dip gumball machines. Moopf has created a nifty little moneymaker there. Pay the machine, and get an animated bubblegum attachment. These attachments can be set to either blow bubbles on demand, or blow bubbles at random intervals. There are three different bubble blowing sequences built into the standard flavors, including one that pops with a loud snap and a subtle little particle effect. Nothing wildly exotic in the bubble attachment, but the dispensers themselves are a clever bit of coding. They actually signal a central bubblegum server, which in terms selects and sends the objects to the buyer. This allows Moopf to periodically update his bubblegum inventory, without having to update his vendors (which he sells either for a $100L flat fee, or for $1L and a 50% share of the sales income).

After buying a couple hundred pieces (at $1L apiece) in one long, slot-jockey-esque session, I managed to get all four of the current rare pieces. These include Popgum (which periodically explodes with a loud bang that sends the chewer sprawling), Inflatabubble (which sometimes lifts the chewer a few inches off the ground, complete with cute arm-waving animations), Double Bubble (which blows two bubbles at once), and Kaleidoscope (which can be set to 12 different flavors/colors). And, in the process, I also received several dozen copies of each of the regular flavors (if regular can be said to include checkerboard, swirled, and spotted varieties). Moopf has managed to tap into a hitherto unknown market: collectible bubblegum! Collect the whole set! Gotta chew 'em all!

Chres is surprised by the effects of Inflatabubble gum.

Here's a couple more 3-D images (cross-eyed view stereo pairs) culled from my screen captures folder, just because.

A chrome spider in the Linden lands.


Yesterday afternoon, I went to a parade in Athena. The parade itself was a bit of a disappointment. Apparently, a simulator crash prevented the construction of all but one or two of the floats. I did get molested by a Dark Elf, though, so the outing wasn't a total loss.

Rhiannon Chatnoir in Dark Elf garb.

The Tinies made an appearance at the after-party.

Recently, I've been taking the time to go on cross country bicycle rides. I'd encourage everyone to see the sights from ground level, every once in a while. In spite of the aerial abilities of the typical SL avatar, most builders still design their builds for surface-level viewing. As such, you miss quite a bit by flying overhead.

I've been using Tripper Tapioca's mountain bike for my outings. The built in animations allow me to move at running speed (CTRL-R to toggle running on and off) without the normal spazzy movements of SL's default run. I've found that running speed is a good compromise for sight seeing: fast enough to avoid boredom, slow enough to allow the scenery to rez. I've found that it's handy to add a gravity reducing llSetForce attachment to my riding gear, however. This smooths out some of the jerkiness when running/riding up steps, and increases jumping distances.

Totem poles in Borrowdale

In the sewers below Novum, Inc. in Selby

And on the factory floor at Novum.
That is a big door!

Tuesday, June 21, 2005
Out and About
After reading this NWN article, I decided to drop a few Lindens and buy one of Tripper Tapioca's SL skateboards. While I was there, I also bought a bicycle and a unicycle. Those were nifty, to be sure, but the real fun is with the board. I spent an hour or so learning the basics (and not really even getting close) in the Parking Lot. I still can't control the board well enough to handle even the most basic maneuvers, but I got a real kick out of it nonetheless. Later on, I whipped together a quick and dirty anti-grav armband to extend my jumps (basically, used llSetForce to apply a constant upward force, thus reducing my effective weight). This is, of course, cheating. But it looks cool! Chrestomanci Bard snapped this picture of me in action.

Later, I saw a depressing post on the forums. Spittoonie Island was closing their doors on June 18, 2005. I realized that, in six months of play, I had never actually visited Spittoonie. So, Laura Ingersoll, Chrestomanci Bard, and I decided to make a trip to see it at least once before they closed their doors forever.

Laura and I wait in line while Chres prepares to puke up her guts.

Much to our disappointment, we find out that
our kiddie avs are too short to ride the Ferris wheel.

Fortunately, we had our teenager avs handy.

But, even after aging 10 virtual years, Laura still harbored some resentment for the clown bouncer.

Laura Ingersoll kicks the clown squarely in the balls again.
Chrestomanci Bard: Ten years later, and she's still having nightmares.
Chrestomanci Bard: Yar.
You: Clowns don't have balls. They reproduce asexually.
Chrestomanci Bard raises an eyebrow.
Laura Ingersoll: With their damned balloon genitalia.
Chrestomanci Bard: And you know this because...?
You: I mean, they'd have to, right? Who'd have sex with a clown? And yet... More clowns!
You: Infallible logic.
Chrestomanci Bard: Your clown logic kung fu is strong.

Bowling at Spittoonie.

We wandered around for an hour or two, riding the rides and seeing the sites. Then, we ended the evening with a few frames at the bowling alley, and a couple holes at the mini golf course. It was fun, in spite of the considerable lag. I'm kind of sad to see the old place go.
Monday, June 20, 2005
The People Have Spoken
Hamlet Linden, 6/20/2005 1:38pm PDT:
Hiya! Well, your prototype rocked, but in the end, after fierce competition, it went to Falk Bergman. Thanks for entering your prototype, and here's hoping that you do something with your prototype, too.

Bah! I didn't want to format, upload, and process 320 pages anyway!

In the end, 115 people voted. I don't know if this is significant or not. Did we find 115 people who would be interested in reading a good book in SL? Or 115 people who read NWN and were especially bored last week? Or a little of each? I guess we'll see how many copies Falk gives away.

I suppose I'll have to do my own import of Someone Comes to Town, Someone Leaves Town, eventually. I'd had big plans of mass-importing as many CCL and public domain books as I could find (and afford to upload), but this has kind of let the wind out of my sails. Given that over 70% of the sampled population preferred prim-readers with texture format pages (as opposed to the particle pages I used), I sure don't feel any need to hurry. Maybe I'll wait and see how the much anticipated HTML prim works out. I'm still not convinced that it's the final solution for large online text files. (Linking to web documents is inherently unstable in the long run, and in-game text files are a royal pain to read line-by-line via the dataserver functions.) But, it might be more usable and easier to manage than image files. It'd certainly be cheaper to upload!

Addendum, 6/21/05, 12:20pm:
Hamlet Linden, on the use of scantily clad models (aka "booth babes") to promote our book readers at the Expo.


You know, most of my votes did come in while Chres was sitting at my booth, plowing her way through Down and Out.... Rats! I was only one avatar quick change away from victory! Oh well. I would have never lived down getting into virtual drag and playing Vanna White with the HoloReader, anyway.
Wednesday, June 15, 2005
Useless Script
As I mentioned previously, I spent a bit of time over the weekend coming up with a script to let avatars jump on the bed at my new summer cottage. It's simple, "Hello World!" level coding, and I'm sure someone has done somewhat similar things before. Who cares? Mine makes sproingy-sproingy noises!

In any case, if anyone is interested, here's a copy of the script.

Addendum 6/15/05, 9:06am:
So, late last night, Chres and I installed this script on her bed in her chateau in snowy Afton. This script is silly and completely pointless, but dang if it's not fun! In a fit of technical fervor, I ended up adding a dialog box menu to set the jump height. (I'm going to add a timer to it today to reset the height back to the lowest setting after a few minutes.) The chateau has nice, high vaulted ceilings in the bedroom, so we were able to set the vertical height a fair bit higher. So, now you can touch the bed, and it asks you "How high do you want to jump?" The options are Mild, Kinky, Crazy, and Skullcracker. (The first three are Chres's idea. The last is mine.)

I suppose I should add a couple of cautionary remarks for this script. First, if the top surface on your bed is curved (this is common, to better simulate a real quilt), it won't work properly. Specifically, your avatar will hit the surface and bounce slightly off to one side (in the direction of the curve) before the upward impulse is applied. This is normal physics behavior (envision dropping a ball on a sloped or curved surface), but it means that you will be thrown off the bed after a few bounces. The easiest fix would be to add an invisible (100% alpha) rectangle that sits just slightly above the curved blanket. This will present a nice, flat, horizontal landing surface. You can also unlink the blanket and make it phantom, then install the script in the (hopefully flat) mattress itself. This works fine, but it means your bed is now two unlinked parts. It's also a little harder to find an appropriate surface to right click on to enter the bed, since most of the surface is covered with an unrelated blanket.

Second, be sure and make the root prim of your bed at rotation <0,0,0>. This is just like installing sit positions in furniture. If your root prim is rotated at some odd angle, you'll have to do some extra figuring to get the initial positions right when entering the bed. It can be done, but it's so much easier just to plan ahead and adjust your root prim properly.

Third, the bed will go "Sproing!" when you bump into the sides. As far as the script is concerned, a collision is a collision. This includes headboard and footboard, if your bed has one. This isn't really a big deal, I don't think, but if it bothers you, make the mattress a separate entity.
Tuesday, June 14, 2005
Thanks to Falk's tireless work, the pages for the SL edition of Eastern Standard Tribe have hit the world early. (I can take a little bit of credit, anyway, for bankrolling this upload. Those without talent contribute money, I guess.) I had not planned on converting EST into HoloReader format this soon, but I found myself inexplicably motivated this evening.

I even got rid of the ridiculous preload hole in the cover (as mentioned at the end of this entry). I realized that, with the repeats-per-face cranked high enough, the preloaded page texture printed on any of the paper edges of the book is pretty much indistinguishable from the normal paper texture I already had in place. (I took a vinyl siding texture and repeated it a few dozen times, so it looked like a stack of narrow lines suggesting the edges of a book.) This won't have any impact on the operation of the book, but it looks better close up, anyway. I've placed revised versions of Down and Out... in the book booth, if anyone is interested in the fixed version.

I did run into a couple of snags importing EST into my existing reader format, however. The main one involved the chapter skip function. See, dialog menu boxes can only support twelve buttons. Fortuitously, Down and Out... had 12 chapters (or eleven and a prologue). EST has considerably more. I ended up compromising on a page skip scheme, for now. The menu now allows you to skip through the book in 15 page intervals. Not pretty, but it serves the same basic purpose: allowing the user to skip ahead easily in the book.

The other snag involved copyright issues. As Cory Doctorow points out on the download page, the CCL for the book does not include distribution of the cover art for EST. (That belongs to the publisher.) So, in a fit of artistic zeal, I decided to whip up my own cover. The coffee mug is an old Caterpillar Tractor promotional mug. The backdrop is my ratty old terry cloth bathrobe, chosen because the color roughly matched the red chapter headings Falk used for his page import. I took the picture with my trusty old digital camera. The text was Photoshopped onto the mug, using two distortion tools I'd never used before. (So the day wasn't a total loss: I learned something!) All told, I'm kind of proud of how it came out, especially considering how weak my Photoshop kung fu is. I'm sure someone could come up with something better, but if you'd like to use it for your own reader, shoot me an IM in game and I'll drop you a copy.

Note the symbolic pencil in the coffee cup. Trust me, it'll make sense when you read the book.
Look! Screenshots #2!
Ran across a couple more nifty screenshots whilst cleaning out my SL directory.

Last Sunday, I finally got around to decorating my new summer cottage. Mostly, I just sifted through my inventory and rifled the freebie collections I've acquired over the last few months. So far, it's just a couple couches, a coffee table, a nifty particle-based tree, a couple of artsy lamps, a quicky sculpture ("Nightmare in Concertina Wire," by yours truly), and a bed. I plan on adding a photo gallery to the second floor, and perhaps some other random decorative touches elsewhere... Someday.

Once I got tired of playing Susie Homemaker for the day, I settled into some completely unnecessary scripting. First, I added some splashing water to the pond beside my house. This isn't anything particularly new or high tech, but I like the effect. And from the number of people I saw take a running start and cannonball into it, other folks liked it, too.

From there, I added a few refinements to the bed. The bed was originally built by Chrestomanci and myself for SkyPod 3. The halo on the bedpost was my idea. The mysterious red high heeled shoe half hidden under it was hers.

And before you ask, no there aren't any risque pose balls built into the bed. I built a couple of (slightly awkward and decidedly Platonic) sleep poses into the pillows, just for verisimilitude (although I never could figure out how to get a blanket to cover the occupants, so it still looks a little odd), but that's it. Then, I got a little silly.

I finally get Chres into bed.

Yes, that's right, you can now come jump on my bed. Just right click the mattress and select "jump." Like most SL physics-related activities, this proved to be more complex and persnickety than it would appear. At it's base, it's just a simple springboard: touch the bed, and it tosses your avatar straight upward. I added checks for the mass of the user, so that it adjusts the force as required to toss the avatar the same distance upward. This is useful, since smaller avatars tended to smack their heads against the ceiling otherwise.

From there, I had to figure out why the avatars kept stopping suspended in mid air. I don't know what causes this, but physics enabled objects have the tendency to occasionally hang when operating under force of gravity alone. To break it out, you have to somehow apply a tiny nudge to the object. (I ran into this with the pendulums a while ago. I ultimately had to add a timer to give it a tiny, unnoticable impulse every five seconds.) I discovered that, if you apply an angular impulse alongside the linear impulse, the avatars won't hang in mid jump (at least for short jumps). Oddly, angular impulses (torques) don't seem to do anything to avatars. Sometimes they'll twitch a bit, but you can't force an avatar to turn around. However, something must be happening that requires a length of time to resolve. And this is enough to keep the avatar from hanging until it again lands on the bed, and receives another bump upwards. The tradeoff is other physical objects tend to quickly spin out of control and bounce away when dropped on the bed. So, for your own safety, no dropping bowling balls on the bed!

As the day progressed, the script got more and more complicated. Soon, I added a toggle to the bed entry routine (a simple, short distance sit-hack teleport), so that the entry position switches from one side of the bed to the other each time it's used. This lets two people jump in tandem without colliding with one another (unless they want to, of course). Then, I just had to have bouncy noises. Now it selects from three different sproingy sounds each time an avatar lands on the bed (but not when he or she just sleeps on it with the sleep poses in the pillows). Had Chres not shown up to pull me away, I expect the bed would be dancing the soft shoe and doing my taxes by now. I don't know if I should thank her for this or not.

Here's a better picture of my booth at the book expo. If you click on the image, you can see the booth in 3D! (Cross-eyed stereo view.) It's almost like being there!

After I finished the booth, a few random folks showed up, and we ended up sitting around and killing time. Counterclockwise Clockwise from the robot at the top, we have Bino Arbuckle, Max Case, Falk Bergman, Chrestomanci Bard, Laura Ingersoll, and Moriash Moreau. I don't know who the avatar ghosted in the background is. I don't know what it is, but there is something about Plum and the surrounding sims that ghosts avatars. There are always at least one or two ghosted avs hanging on the horizon.
Monday, June 13, 2005
As I mentioned before, I've made an entry for Hamlet Linden's book expo. Starting Monday 6/13/05, at 1:00pm game time, players will be invited to come and check out the proposed readers and vote on the one with which they'd most like to read an in game book. (Which begs the question of why anyone would want to read a book in SL to begin with, but that's a query for another time.) The creator of the winning reader winner will be designated as the "official" in game publisher for Cory Doctorow's next book, due to be released on July 1.

There are a total of five entries in the expo. They're all on display at the NWN Book Expo at Plum (99,163) (SL location link). Honestly, I'm a little disappointed by the turnout (I'd expected more of the big name semi-FICs for a high profile project like this), but them's the breaks. I'm sure part of the problem was the awkward timing of the project. The upcoming v1.7 release will include the first part of the long awaiting text-prim (allowing HTML formatted text to be placed directly on a prim face). This will have a tremendous impact on the nature of in-game book readers, as well as just about every other project containing text data. This is unfortunate, but the timing of the release of Cory's next book required that the readers be completed before July 1.

Addendum 6/14/05, 11:51am:
The more I think about it, the less convinced I am that the text prim will be the be-all,end-all solution for book readers. The main problem I see is with the existing dataserver system. In order to read a notecard full of text, the script must call for each individual line of text, then wait for the dataserver to return with the answer (in the form of a dataserver event). Dataserver calls are generally slow (you're sifting through an enormous database each time you access it), and a bit unpredictable when called in bulk. When two dataserver calls are made in rapid succession, there is no guarantee that the first call will be answered before the second. It could easily be the reverse. This requires some clever programming to assure that the answers are properly arranged in the end. I just grabbed the first book I could lay my hands on
(My Tiny Life by Julian Dibbell) and counted the lines on a typical page: 37. This means that, in order to reproduce a page of this book in game, the script would have to make 37 ponderous dataserver calls. Per page. Each time a page is turned.

As part of the NWN Book Expo project, Falk Bergman made an experimental reader using floating text. It worked pretty well, overall. But the required data server calls and formatting was unavoidably time consuming, and expensive in terms of sim resources. While I expect the use of HTML will remove some of the server load consumed in formatting the text, I've heard nothing stating whether there will be any accompanying changes in the way notecards full of text will be handled. I guess we'll find out soon enough.

Over the weekend, each of the entrants were contacted and told to create a booth highlighting their reader devices and their various features.

Djinn Fizz's reader appeared at the last minute. I wasn't able to see it in action, but apparently Djinn plans on reading the book out loud and recording it as a seven part audio program. (More information in the NWN article.) This program will be synchronized with the text in a slow-scrolling Quicktime movie. While this doesn't lend itself to personal copies (it requires designating the plot's media streams), it should prove to be an entertaining presentation. It's also going to be a hell of a lot of work to produce the actual audio program. If he wins, I look forward to seeing how Djinn makes it all work.

Addendum 6/14/05, 12:17pm:
I had a chance to try out Djinn's reader last night. He's made an audiovisual presentation out of one of Cory Doctorow's short stories. The whole assembly, audio and video, works great! And Djinn is an excellent narrator. You should definitely make the time to try it out at the expo.

Frans Charming's reader was also a relative latecomer. His offering is another large installation work. (It's described in more detail in the NWN article.) The whole device is a meters-wide modern art sculpture, centered around a white spherical chair (aptly described by Hamlet Linden as something out of "The Prisoner"). The user sits in the chair, and his camera is captured and adjusted to face a viewscreen showing the current page. Two smaller screens, showing the previous and next two pages, are placed to either side of the main viewer. Ultimately, these screens will behave like an assembly line, with the current page rolling off to one side, and the next sliding in to take its place. (Frans is still working out the bugs on this. The page-screens are currently static, although they do update with the previous and next pages on demand.) While this sculptural work doesn't lend itself to mass distribution (it's large and relatively prim-heavy), it works very well as an artistic installation. And it looks darn cool!

Incidentally, Frans's reader makes good use of texture caching (AKA preloading). You'll see this term thrown around quite a bit in this competition, as well as elsewhere. In case you were wondering, this simply means showing you the next image (say the next page) in advance. When the SL client sees a specific texture/image, it saves a copy on the user's local hard drive. Then, when the texture is called again, the client only needs to pull it up locally, instead of downloading it from the remote servers. The nifty thing is that the texture doesn't even need to be directly visible to the current camera view to be cached. The SL client will load all textures in the vicinity (even those that are hidden inside or behind other objects). In the case of Frans's reader, page textures are cached two ahead and two behind the current page. So, unless a user flicks through the pages very fast (too fast for the next pages to be preloaded), he'll never have to wait for the next page to appear.

Addendum, 6/14/05, 12:22pm:
Frans was smart enough to use lists instead of dataserver calls to read the book page UUIDs. Very useful for this application, as it made the resulting scripts a fair bit faster. Unfortunately, I don't think it solves the problem with dataserver calls and plaintext documents mentioned above.

FYI: all of the readers, save for Djinn's audio presentation, make use of a massive text document list of UUID codes for the textures used for the book pages. Falk Bergman created the JPEG format pages and uploaded them. Then he manually collected the UUIDs for each of the 165 pages, one at a time. This project would not have been possible without his work. Thanks, Falk!

This is Falk Bergman's booth. He made a nice little pavilion area, with benches and a fountain in the center. Falk is actually responsible for two readers (described in more detail with better pictures in this NWN article) in the expo. He actually had several more, in various stages of readiness, but restricted himself to one original design for the competition. Hopefully he'll incorporate his other designs into future projects. They were, frankly, awesome.

As described in the NWN article, the first reader is in the form of an oversized book. The user simply stands in front of it and touches the pages to flip to the next. This reader comes with a whole grocery list of handy features, including precaching, bookmarks, alternate controls (Page Up and Page Down keys), control lockout (to prevent others from messing with the book while you read)... He was adding features and refinements right up to the wire. Most are activated by voice commands. While somewhat on the large side (in order to make the text easy to read without undue camera jiggery-pokery) Falk's reader is designed for mass distribution.

The second reader is based around a design by Francis Chung. As I understand it, this one was a collaborative effort, with Falk doing modifications to an original script by Francis. The Chung/Bergman reader is modeled after a standard sized coffee table book. On touch, the book opens. Touch it again, and an animated page flip occurs while the page textures are updated. Kind of a neat effect.

And then there's my reader. You can see pictures of it in operation in this NWN article. Basically, the reader is embedded in a single book prim (sized to match the dimensions of the real world book). On touch, it projects a particle image of the book page. Pages are turned with the Page Up and Page Down keys (only one user at a time- others are locked out and encouraged to take their own copy). The book preloads one page ahead, by displaying it on one of the faces of the single prim reader. (If you look very close, you can see a tiny square hole through the center of the book. The next page is plastered on the inside of this hole.) This is usually adequate to minimize load times for the visible page, assuming the user reads at a normal pace and allows the next page image to fully load.

I decided to handle all of my additional functions by dialog menus instead of voice commands (although I may add alternate voice controls to future versions). This is mainly so that the user doesn't have to memorize a list of commands just to read a book. (That, and I knew that Falk was already using chat commands for his readers, and I wanted to be different.) Menu commands let the user mark pages, skip by chapter, see the CCL documentation (as a notecard), and close down the reader. The reader can also be closed by hitting "Release Keys" or simply by walking more than 6 meters away.

The Book Expo will run until June 20th. At that time, the votes will be tallied and a book reader device will be selected. Be sure and drop by to cast your vote!
Friday, June 10, 2005
Free PC?
While wandering through Arcata sim the other day, I ran across a MetaAdverse billboard that made me see red.

Yes, ladies and gentlemen, spam has once again reared its ugly head in Second Life. Against my better judgment, I touched the sign and received a notecard. Inside, I found a message extolling the virtues of a wonderful new scheme to get the advertising player, and the player reading the notecard, a new computer. Just click on the included link (which I'll be thrice damned before posting here), and sign up for a few of these exciting offers!

In spite of my overwhelming desire to see him flamed and neg-rated to hell and back, I'm going to withhold the name of the avatar behind this advertisement. He did include it in the notecard, though, and even gave an open invitation to IM him for further information. So he's either very foolish, or he's using an alt. Given that he only joined the game in late May, yet somehow managed to acquire the Lindens and the SL-savvy for a MetaAdverse campaign, I'd guess it's the latter.

Remember that Free iPod scam that was all the rage a while back? You know, the one you received about 2,347 spam e-mails a week about? Just con ten of your friends into signing up for some service they don't need (and that is damn near impossible to cancel without cost), and they give you an iPod... If they didn't "misplace" your records, and the stars are in the proper alignment, and your biorhythms are favorable, and so on. Well, that was Gratis Network. They've apparently expanded their "free" (give or take a few friends) offerings to include desktop computers.

And now it's oozed its way onto the Second Life grid. Makes me want to try and revive MAKE MONEY FAST. If we're going to embrace the sleaziest aspects of the internet in SL, we might as well bring back the classics.
Wednesday, June 08, 2005
The Life Aquatic
After reading this New World Notes article, I took a trip out to Themiskyra to check out Surina Skallagrimson's incredible artificially evolving fish myself. While I was there, I was fortunate enough to run into Ms. Skallagrimson. She explained the basic behavior of the fish to me, and told me how to interpret what I saw.

If you get close enough, you'll see that each fish has a small cyan number floating above its head. This number (ranging from 1 to 11) tells the general greed level of the fish. This factor is set at birth. Take the greed number, divide it by the fish's current health (presumably related to its last feeding time), and the result is the individual fish's hunger level. This determines how actively the fish seeks out sustenance. Food, in the form of small plywood spheres, is periodically produced by small pyramids scattered about the ocean floor. (If you're feeling generous, you can also touch the pyramids to feed the fishes yourself.) One would think that the fish with the highest greed factor would always be at an advantage (and I didn't see any greed numbers below 7). But Surina assured me that lower greed numbers have their own innate advantages in the evolutionary struggle.

If a fish goes too long without eating, it dies. If it's well fed for long enough, it reproduces. And if it manages to stay fed and avoid the hazards of the deep (physics bugs, running off the edge of the world) it eventually dies of old age. As I watched, two or three fish announced "I am so old! Goodbye, world!" and expired.

Each fish is equipped with a sensor, which is used to spot food and other fish. The parameters of this sensor (range, etc.), as well as other physical and behavioral characteristics (swimming speed and so on), vary from fish to fish. When the fish is swimming in a shoal, surrounded by other fish, it is yellow. When it finds itself alone, it turns white and extends its sensor range to search for others. When it turns purple, it senses food. Surina programmed these color changes in order to get an idea of what each fish is thinking at a given time... And, of course, because they're pretty.

I spent the better part of an hour watching the hypnotically realistic behavior of the aquatic life of Themiskyra. It's particularly interesting to center your camera on one, and let it pull your view along with it as it ambles through the briny deep. As mentioned in the article, the fish will periodically form into a large, rough circle as each follows the one ahead of it, turning in a tight arc in order to keep the fish ahead in sensor range. Then, for no apparent reason, the circle will break, and the fish will move on in a loose group. I saw this happen several times, but never could figure out what made it start or stop. Each fish's individual behavior is simple, but the emergent behavior of the group is surprising. And surprisingly beautiful.

Okay, they turn purple when they see food...
Wait a minute! AAIIYEEEEE!!!

Science Fiction
A couple weeks ago, a few of us made a trip out to the SciFiGeek Group's in game Science Fiction Museum. If, like me, you grew up surrounded by Star Wars and Star Trek toys, you owe it to yourself to take a trip out and see it.

Exiting the Tardis.

At the helm of an Imperial fighter.

Commanding a Klingon battle cruiser.

Laura and Chres man their posts on the
bridge of the Defiant, from Deep Space Nine.

Meanwhile, I take my rightful place in the
captain's chair and explain space combat tactics.

Look! Screenshots!
A couple more random screenshots found whilst cleaning up my SL folder.

A few weeks ago, the gang and I dropped by an in-game theatre to watch some ancient B-movies. The movies did nothing but crash our clients, but the video arcade in the lobby was fantastic! Playing a couple games of Galaga brought back fond memories from my childhood. I must have pumped hundreds of dollars into those machines over the years. Damn, I'm rusty now.

I recently rented a small summer cottage in MarClaire Village (Faded Reality Sim). For some reason beyond my understanding, Chres, Laura, and newcomer Sophia Weary took it upon myself to build a giant junk robot thingy in my front yard. I was given the dubious honor of scrunching myself up and becoming the head. Click on the image below to see the junkbot in 3-D! (Cross-eyed stereo image.)

Tuesday, June 07, 2005
SWG Flashback
Earlier today, I ran across an infuriating link at Boing Boing. (Here is the Wonderland article linked from Boing Boing, and another article at Terra Nova on the topic.) It seems that SOE has made a public statement saying that they will not allow outside music to be played through entertainer characters in Star Wars Galaxies. Why? In short, because someone might play a copyrighted track in the game, and bring down the wrath of the RIAA's attack lawyers on Sony's collective head.

If we allowed someone to play anything they want, they could play a song by Madonna and then we'd have licensing issues," said Julio Torres, a producer for Star Wars Galaxies at LucasArts. "We don't want to give them the option to try, because the bottom line is, if we open that gate, they will go through it," he said.

Don't you just love the general "Us verses Them" mentality? Those sneaky little players are going to do something naughty, so we better nip it in the bud. Clearly, there is some kind of workaround or loophole that can be used to allow this. Heck, Linden Lab managed it with SL land music streams. I've got to believe that, if LL can manage it without being sued into oblivion, Sony could accept the risk. But, of course, SOE has no incentive to do so. They've created a static game, not a seed crystal for the formation of the Metaverse. (No matter how far fetched that view of SL may seem to some folks, myself included.) Continuing innovation for innovation's sake makes no sense for their business model. Sony wouldn't gain anything (where "anything" equals "more money") from this feature, and it might cause someone to whisper the word "lawsuit" within five miles of their corporate headquarters, so better not risk it, right?

Once I got over my brief surge of righteous indignation and shame at having once given these folks money, I noticed something else. Apparently, I (as Moriash Spindrifter, my now-defunct SWG incarnation) have become the unofficial spokesman for the cause of musical expression in Star Wars Galaxies. Take a look at the included picture on the Boing Boing and Wonderland articles. Yup, that's SWG me! The screen capture was taken at a public Nalargon in Coronet, Corellia. I used the picture in an embarrassingly bad fanfic a while back. (Click the image below for the full-sized original.) I'm sure it was found completely at random with a Google image search. Sometimes, I am surprised at how small the Web really is.

Thursday, June 02, 2005
Futile Rant - Aborted
I had planned on ranting at great length about the care and handling of newbies in SL, with special emphasis on supporting their first builds and scripting efforts (even if their work has been done before). In fact, I was quite bent out of shape on the subject... A crucial first step in any good rant.

Then I ran across this weblog entry by Brace Coral on the same topic. And since she said it first, and said it well, I'll just point you in her direction and let it go at that. That entry should be required reading for all Second Lifers.
Wednesday, June 01, 2005
Tales of Peril #1
Our hero is surrounded by the frozen tundra's deadliest predators: the vicious ice crabs! Will he survive? Tune in next week to find out!