Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Kerovia Galatea wants an API

Jarod Godel
Utilitarian
Join date: 6 Nov 2003
Posts: 729
02-16-2005 12:41
Philip talks about aLife and sLife in his blog a while back, and while it's an interesting post, it's far from, what I'd call, complete. He says, "Even today, this is a fairly doable thing - you create an AI simulation on a powerful computer, then hook it into Second Life by connecting it either to an object or possibly even avatar." I say it's far from complete because, you cannot "hook [an AI] into Second." I tend to day dream about silicon girls more than most people, so let me expound on AI in Second Life, why Philip's wrong, and why Kerovia Galatea wants an API.

Imagine you were driving a car on the highway, and all the windows were painted over. The only way to see where you were going was to press a button on your steering wheel and have a camera give you a snapshot of the road ahead. If people drove that way -- and given the number of accidents I've seen lately, maybe they do -- it wouldn't be safe on the road. You'd be dealing with a glimpse of a situation that was old by the time you saw it.

If someone tried to implement an AI (or even an IRC-type bot) in Second Life, you would have to program it to deal with this scenario. The XML-RPC server that sits on your desktop would have to ping Second Life every few seconds to see if it had been spoken to by a person. If you used email, then the delay would be even longer as the system sent out an email, the bot on your desktop (or shell account) waited for and read the reply, emailed an answer, and then the bot replied. Even an email/XML-RPC hybrid would be laggy and half-baked.

So, Philip's wrong, it's not a "a fairly doable thing" in Second Life. It's doable in ActiveWorlds, where they have an API. It's doable in Asheron's Call, with plugins like Decal. Bots are doable with AIM, IQC, IRC, etc. because they offer standardized, open protocols. I've even heard that the World of Warcraft interface is XML driven, which open a lot of client-hacking possibilities. However, Second Life, the one virtual world dedicated to building, is woefully behind when it comes to connecting life in-world with the net out-world.

Saying this leads me back to the point of my post: Kerovia Galaytea wants an API. Who is Kerovia Galatea? In two words, I am(1). In a more lengthy way, Kerovia is an alt I purchased back during my first two weeks in-world. The plan was to figure out Second Life, LSL, and such so that I could script a bot behind Kerovia, and have a rough facsimile to my fantasy Kerovia. I could have a three-dimensional Kerovia to chat with in-world, to be my connection to RSS feeds, databases, etc.

Then I actually learned about Second Life, LSL, and such. I realized that even if I got a prim to do the actual replying, I couldn't connect it to a database. Even if i used email to talk to an external database, I could only send a few charactes at a time. Even if I managed to string several emails together, Kerovia would log off after thirty minutes of client-side inactivity.

Philip's post about AI's and Second Life is interesting and full of several good ideas. Being able to plug an AI (or IRC-bot, or an expert system) would be interesting. It would bring us one step closer to making Second Life into the idyllic "Metaverse" people talk about, we could finally create software akin to Hiro's Librarian. The problem is, to do this we need an API.

We need to be able to write software that can run on a computer, using no more and no less bandwidth than a client. We need an something that, unlike the proposals for XML-RPC, is unmetered. Simply put, we need a client API, because until we get an API that is standardized and stable, (I feel) no serious AI programmer will even consider working with Second Life.

Whatever jury-rigged system allowed their AI access one day, might be broken in the next software patch -- not unlike many vehicle scripts have been broken by LSL upgrades. Second Life might be a nice concept for an AI to learn, but using AIM, IRC, or even building a physical, robot body using a LEGO Mindstorm kit offers the AI hacker more access and stability than Second Life does right now.

Come on, Linden Lab, give us an API. Kerovia Galatea wants one.

---

(1. Any previous, year-old posts of mine decrying bots as the ruination of Second Life are wrongheaded and outmoded. They're a bitter grumbling for the over-population of bots in Asheron's Call that ruined the marketplace(2).)

(2. In Second Life, we call them "vendors," so there's little chance that a bot-like thing will hurt or affect the SL economy.)
_____________________
"All designers in SL need to be aware of the fact that there are now quite simple methods of complete texture theft in SL that are impossible to stop..." - Cristiano Midnight

Ad aspera per intelligentem prohibitus.
Gabriel Spinnaker
16052 LSL BYTES FREE
Join date: 21 Jun 2004
Posts: 73
02-17-2005 20:05
From: Jarod Godel
If someone tried to implement an AI (or even an IRC-type bot) in Second Life, you would have to program it to deal with this scenario. The XML-RPC server that sits on your desktop would have to ping Second Life every few seconds to see if it had been spoken to by a person. If you used email, then the delay would be even longer as the system sent out an email, the bot on your desktop (or shell account) waited for and read the reply, emailed an answer, and then the bot replied. Even an email/XML-RPC hybrid would be laggy and half-baked.
It'd be kind of like the Mailman in Vernor Vinge's True Names.

This isn't strictly related to the rest of your post, but I was once thinking it'd be interesting to create some kind of simplistic artificial lifeform in SL, something along the lines of an insect or small animal or something, but I quickly came to the realization that it'd be basically impossible, or at least it wouldn't be possible in the way I'd envisioned. Objects can't detect another object's scale, color, mass, texture (I'll grant that an llDetectedTexture() would probably not be quite as useful as the others and and would probably only facilitate texture theft), so they can't really "see" the world.

Of course, I suspect someone will now come along and shoot down my idea on the basis that the ability to detect these things would make it easier to rip off others' objects, just like being able to see the absolute position/scale/rotation/etc of a child prim in a linked set with Select Individual would.

I think in the past I probably would've sided with those people, but you know, now I figure you have to break a few eggs to make an omelet.

Anyway, uh, sorry to derail the thread. In any case, I support Jarod's request for an API, and I should probably post my own suggestion in my own thread.
_____________________
Jarod Godel
Utilitarian
Join date: 6 Nov 2003
Posts: 729
02-18-2005 06:24
From: Gabriel Spinnaker
Anyway, uh, sorry to derail the thread. In any case, I support Jarod's request for an API, and I should probably post my own suggestion in my own thread.


You're not derailing anything. :) Any talk about aLife and ways to implement it, with an API or by LSL, are way more than welcomed in this thread! I specifically mention them with the API, because I want my own digital Girl Friday in-world. However, with an API that loaded object stahpes already, it would make building a crawler much easier as well.
_____________________
"All designers in SL need to be aware of the fact that there are now quite simple methods of complete texture theft in SL that are impossible to stop..." - Cristiano Midnight

Ad aspera per intelligentem prohibitus.