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.)
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.