The Elusive Project
What is this project all about?
So, I have eluded to a particular project I am working on. This is actually not new, I started on this many years ago when I was more active on SL. Then it got dropped during the hiatus, and now that I'm back and motivated again, I've pulled it out of the ashes.
If you've done any type of development, you're probably familiar with the feeling of "how the heck does this work again?" Well, I've had a few of those moments in the past week, as I'm getting reacquainted with not only the code I wrote, but how some of the things changed over the years, making some of that code unusable. So I'm still in the "fix the code" mode until I can make more progress.
All that being said, here's what it does in a nutshell: I have a controllable avi (sometimes referred to as a bot) that wanders around in the SL world, and gathers some information. That's it, that's all it does. Exciting is it not?
More details please?
Alright, let's elaborate a little. Before we get into the "how it works", let's answer the more often asked question: "Why?"
And we have a few answers to that question:
- Because I can;
- Because I like data;
- Because it makes my SL life more pleasurable, by giving me a different method of looking for locations;
- Because it gives me an opportunity to explore a new (from a coding perspective) environment.
What is the process involved?
Well, to start with, it looks just like a regular avatar. Because it is. I can sign in with that avatar manually and be just like any other regular visitor. Then, there's an application I use, called Corrade which main purpose is to send commands and receive data to/from the SL world, via the avatar. That particular one, once configured properly, just runs. It logs in your avatar and it waits for something to do.
And then, the heart of this process, I have anther application I wrote which basically dictates where the Avi is going, and what it will do once on location. In a very simplified way, that's how it works. If you're more visual, here's a quickly thrown together flowchart:
And for further breakdown of the steps:
Process Avatars in Range: So basically, for any avatar in range, it will extract the user UUID, and name of the avatar and store it in a database.
We have to act quick on this, because some of the information can only be extracted while the avatar is still in range. If they teleport away while you're working, then you won't be able to process them until you meet them again
Process Avatars from Database: Once we've grabbed all we can from the avatars in range and stored that in the database, we can now start going through those and pull the remaining information that does not require avatars to be in the same region. It will retrieve information such as display name, pictures, About, etc... and most importantly, the Avatar's picks. This is what will allow continuity, as this is what allows to find more avatars, and therefore, more picks. Once it has that information, it
Process Picks from Database: And finally, we process the picks we've been gathering. We store not only the Picks information (name, location) but also the text that goes along with it. This is a bit tricky however, as a lot of people (me included) use the Picks to store additional information unrelated to SL locations. We are basically using the Picks as an extension to our "About" info. This means the location attached to this pick will either not exist, or is not related to the pick data. So there's some verification and cleanup going on in that step.
And once it runs out of things to do, it will teleport to one of the Picks it has not visited yet and repeat the whole process.
Accessing the data
Data public availability
I need help.
- a decent understanding of how the data is stored in SL
- have a look at the Corrade website, it will give you some idea of what I'm working with. It might even give you the idea of starting your own thing instead of joining me, which is great! Maybe we'll share data with each other :)
- you would need a fairly solid working knowledge of the following: MySQL, VB.Net, LSL, PHP, HTML.
- A fair bit of free time, as we would need to converse on a regular basis. I'm in SLT+1 time zone. You would need to be somewhat awake at the same time I am. so if you're SLT+12, that might be more of a challenge, but not impossible.
Does this sound exciting to you? It's exciting to me. If you want to discuss more, please contact me in-world. (realm174 uggla click the gear icon, click IM)
Until next time...
Comments
Post a Comment