For a while now I’ve been running these robot-controlled avatars going by the name of “VERA”. They had been opearting fine as entertaining chat bots in a couple of my regular places up until recently the pandorabots server that was hosting her chat brain kinda tripped on it’s own power cable.
This left VERA with no chat function for a while. So I parked her over in a corner with with some of the other garbage. While she was there it appeared a fellow friend tried to clean her up by putting her under a shower.
When the services eventually came back it turned out the whole VERA chat account had been lost and had to be recreated. So in short she’s been “reset” back to basics. Although this time I’ve started to tweak some nuggets of her knowledge a little so some of the regulars who pester her might get some different results this time.
So far to date my VERA project in Second Life has been to setup some bots and make them do repetitive tasks. So far I have made some successes however I think I may need to take this project to a higher level.
For those who are wondering what the hell I’m talking about: Bots or “Scripted Agents” as they are called are avatars that log into a virtual world and look like another user but at the same time are not in direct control by a user. A set of scripts adds functionality to a bot to make it do things within the virtual world.
Some recent research has revealed to me the old JVAbot software I am currently using is somewhat no longer in development or supported by it’s creator.
What I have managed to do so far on the JVA system:
Log a bot in-world
have a bot respond to private messages (IM’s)
monitor sim health and visitor statistics
I could have achieved a few more things – but have come across an issue – the JVA system seems to be quite unstable – crashing frequently. And to be honest I’d love to stop relying on an old copy of Windows that it is running on.
For now I’m starting to look at an alternative I have found called pikkubot – still exploring it’s features at the moment but it has me thinking that things may need to be taken a step further in the name of virtual world bot development.
What I’ve learned so far is a few of the potentially decent bot systems rely on windows operating systems. It seems the pikkubot software can be converted to running in linux but from what I’ve read it has some dependency on some windows based libraries. Or at least requires some effort to get functioning correctly.
Now for a linux user – this means much pain and effort. – If only there was an easy to rig solution. It would be really cool if there was a quick-setup way to get things going but someone needs to start it by pioneering the way.
An idea is forming!
This probably means I got some solid legwork cut out for me but I am thinking of setting up some kind of freely downloadable bot system that is flexible enough to run on most operating systems.
Now while I could redevelop some bot software to run natively on any operating system like a true cross-platform application. For this project I am looking at making use of some existing resources that don’t get a lot of use outside the scope of testing operating systems or running on servers. It may seem like cutting corners but it has some possible advantages here…
The strategy I am thinking of following is taking the same approach as that of Turnkey Linux Appliances – it’s possible this may be such a platform that gets used.
The advantage with Turnkey is that it is an Operating system on it’s own – so you can run it directly off an old spare computer – or run it through some virtual software like vmware or virtualbox. Now if a bot system could be setup within such a small OS environment – then it would not matter where you have the system running – as long as you are running it (with a little adjustment of your routers and firewalls).
The potential for this could open up the possibility of a freely downloadable system for anyone who wants to run bots themselves. With a little tinkering the capabilities could be gradually expanded to add a lot more flexibility. Some of the proposed features I want to hopefully work towards:
Multiple bot capability within the one virtual machine.
Configuration and controls available via website interface
Bot, Sim, Visitor statistics automatically generated into graphs which can either be privately accessed, publicly broadcasted or emailed as a regualr report.
Layered functions – where a feature setting could be applied to an individual bot or set to a global configuration for all bots within the machine.
Chat Intelligence – add a feature to interact with a externally hosted chatbot and/or internally as a self running feature (possibly involving A.L.I.C.E. based chat systems). Enabling options to allow the interactive chat to occur via IM’s, Group Chats or in local chat. Possibility of adding NPC roleplay elements to chat functionality.
Banlist management on flexible levels. This can include various timeout options like banning repeat avatars in a formula like “for total number of times banned X 10 = number of hours to ban a member”.
Add capability of banlist management that works at both parcel and region levels.
Object and/or chat detection to assist with ban tools.
Designated movement zones – setting an area where the bot movement should stay within – if the bot moves outside your set zone it will automatically make it’s way back until it is back inside it’s “zone” – it could have some handy uses as a pushable target in a weapons enabled area.
Ability to move, follow, interact with people within the set “zone” as a helper, guide or entertainment.
Not be limited to specific virtual worlds but be capable of logging into many of the other virtual secondlife-like grids like Avatar Connection, OpenSim, OSGrid or a dedicated private simulator. Bot profiles to be applied differently depending on the known grids so that the bot features comply with acceptable use policy. If any features are added that may be listed as questionable if used in a specific grid then that feature becomes disabled when connected to that grid.
Multiple owner management – instead of running a designated owner a bot could be tied to an in-world group or number of owners for any community or collaboration projects.
The usual group invite/management/eject abilities.
Spammer detection – for autobanning options with group invites, random inventory offerings, etc…
Land Management abilities – tracking objects, scripts and returning objects where neccessary.
Ability to wear or give inventory items – making the bot one glorified notecard giver or object sharer. Could be set to only give items to persons in local areas, groups or wearing specific huds. This could be useful in NPC roleplay scenarios.
Log files and usage reports could be generated and be accessible in website format, downloadable files or transferable in-world as notecards.
Website IRC chat interface that may allow people not logged into the virtual world to be able to participate in group chats via the website.
Install and configuration setup in a simple layout.
Self generating scripting kit – if you are unable to source a scripting kit in-world for huds and in-world controls – then an option could be added that either creates the scripts into the bot’s inventory or creates a copyable object on the ground and auto-generate and fill scripts into the object.
My initial plan:
My immediate intention is to see if an existing bot source code, or linux-based secondlife compatiable viewer can be adapted to run without graphics rendering on a linux environment – from there the various features may then be implemented around this viewer and OS combination. If it is possible to get an avatar to log in on such a configuration – the rest of the other ideas should be able to follow through.
I consider this to be such a large task to take on – considering that I know some things about what I’m dealing with here but not all of it. I am hoping by making this a free and possibly open-source project I may be able to get a few other interested people on-board to help bring it all together. If there is enough interest I will begin by setting up a community/collaboration portal to start bringing the project together. (I have a suitable website name already on standby from a previous project idea).