Sado's BotTool


Index
Project Stats
Download
Forums
About
SourceForge Logo

About Sado's BotTool

Welcome to the BotTool site. But, you might ask yourself, what is Sado's BotTool? What is ActiveWorlds? Why do I care, and why is this open source?

Sado's BotTool works with a 3d chat environment known as ActiveWorlds. ActiveWorlds is moderately interesting in that it lets you build stuff (placing a large number of pre-made 3d building blocks, ranging from cubes and spheres to potted plants and Grecan archways), wander around large 3d worlds looking at stuff other people have built, chat (of course), and operate bots.

Sado's BotTool is perhaps unique among the _many_ bots out there because it targets everybody. It's simple enough to use that a non-programmer can set it up and run bots out of it, but it harnesses the power of a real programming language, JavaScript (unlike the toy languages that tools such as the Hambot implement), and provides the infrastructure that a bot server would need (such as the ability to run 20 or 30 bots at a time, each in a different world with different permissions and configurations).

Why's'it Free?

The BotTool was always free. The bots that are included in the source package were formerly for sale, but since the person who was selling it disappeared, and I don't have time to sit around and sell 'em, I've decided to just GPL the suckers and let 'em go free. The BotTool itself I've open sourced because I think that the state of programming and programmers in the AW environment is pitiful, and the BotTool would provide a good boost - this code isn't professional quality (although I hope to clean it out at some point), but it does a lot more, a lot more cleanly, than most bots out there. Especially the ones that mere mortals can get the source to.

I can just modify it and give it away for free, then?

Only if you include the source. This is the GPL, after all. If you aren't sure about it, go and read up on it a The GNU site. Basically, you can modify it as much as you like provided that you keep the source code available when/if you distribute your version. In addition, I ask that you make a clear distinction if you release a variant of it - perhaps by changing the name to "Foo's BotTool". Whenever possible, feel free to contribute code you've written for it back to me - I'll stick it up on the site for all to share, at the least, and if it's at all useful, I'll integrate it into the main code base! (With kudos to the one who submits it!).

But I can't sell bots for it, can I?

Actually, you can sell all the bots you like for the BotTool. If you write a bot script, that bot script is yours to do whatever you like with. Packaging it with the BotTool does not affact your ownership of the bot code, and you're welcome to sell it all you like, although we'd all love it if you released the source. :)

Notes

Documentation is (or should be ;) included with the BotTool - I'm working on getting the source code for the entire thing up on the web, but I can't find a suitable (free) tool to do it. I have no urge to hand convert 20 large source files into HTML everytime I update the BotTool.

TODO

Some things that should be done to the BotTool:

  • Update the KeyRing. The KeyRing is a nify piece of technology, but my implementation of it is definitely not up to par. The code that's in there now is missing a few key features - it doesn't use the default bit at all, for one, and I don't think it properly keeps track of key use. In addition, there needs to be a better way to say which bot gets which account.
  • Revamp the Interface. The BotTool UI is workable, but it could be a lot better. There needs to be a way to overview all the bots running at once (such as a "bot status table", showing each bot, its status, what type of bot it is, and what accounts its using) that doesn't take up so much screen real estate.
  • JavaScript Robustitude Upgrade. The Robustitude code (the code that keeps the scripting controls errors, caused by faulty JS code, from killing the app) isn't very good. I forgot some err.clear statements in key statements, so although it catches the errors, it doesn't keep them from killing the app. This is a quick and easy job, though.
  • Architecture Upgrade. This is obviously more than a passing job. I have a number of sweeping architecture changes I want to make, and this is the heading under which they fall. If you're interested, e-mail me at s_alanet@hushmail.com and I'll post some more thoughts up.

(c) 2001 Sado Alanet, All Rights Reserved.