Players going invisible while still interacting normally isn't going to happen;
Roger that. If I want a bot to "fade out" then it'll be the hard way, then.
For the record, I'm pretty much always aware of the fact that I'm asking for things that outside the bounds of Paragon Chat's primary function as a graphical chat room. My interests are in pushing it beyond the limits of the vision and seeing just how far it can be bent that way. That is not a criticism of anything to do with Paragon Chat or the vision driving it. I just want to see what we can do with it if it happens that this is the most that is ever done in the way of a CoH "environment".
Yes, I'm aware that other things are happening, including the hinted-at scripting interface. I'm also aware that projects end without notice all the time due to life events, changing interests, and people simply getting tired of working together. While I hope that there will be much more coming in the next year or two, my own vision is based on what's in front of me at the moment.
Here's an example of the sorts of things I'm talking about:
The first time I put a velocity on a bot and discovered that it "jumped", I immediately considered the idea of making a "Duck Hunt" game. One bot would listen for the command "Pull!" and launch a "duck" in a semi-randomly determined arc. Another bot would listen for command "Punt!" and "punt" a Red Hat into the air in whatever direction the player avatar was facing. Since actual targeting is not available at the moment, the command would probably be more like "Punt X" where X is a force between 1 and 10 or something. In any event, if the "duck" and the "projectile" intersect then a third bot scores a point for the player. The scorekeeper would keep track of individual scores as well as a leaderboard of the ten highest scores or something similar.
These three bots might all be one bot, or specialized individuals.
I'm a ways off from doing anything of the sort - I am still finding plenty of things I need to change about my current bot to make it handle player tracking properly, and I'm just now reaching that point where I can say I really understand XMPP, SleekXMPP, ErrBot, and CoH fundamentals and how each plays with the others. The last thing I need right now is to get sidetracked into learning cannon physics.
But maybe that gives you an idea why I'm constantly asking for things that appear to have nothing to do with chatting with people, heh.
Diary time:
Having got as far as I am, I'd recommend that anyone considering this pursuit do two things. One is choose a coding environment that you are familiar with. The other is start with the fundamentals of XMPP, master that, and then move up the "stack" to your XMPP API/Library and then to Paragon Chat and the internals of the CoH client.
I started down this road knowing zero about any of it, and assuming that I could take a "top down" approach to learning just whatever bits and pieces I'd need to get a chatbot up and running and then let the chatbot do the fundamentals while I did the stuff I actually cared about doing.
Arcana was both right and wrong about the follies of taking this approach. She was right, from the standpoint that despite my hopes and desires, there was simply no way to actually accomplish interactivity, especially if it was done in anything like a correct manner, without first learning the fundamentals of how communication in XMPP happens at all.
That meant that saddling myself with a chatbot framework from the outset was just adding yet another thing to the stack of things that I didn't know anything about and would have to learn thoroughly before I could use it effectively. I ended up handicapping myself to a certain extent, especially since I was forcing myself to struggle with data structures in the chatbot framework that were never intended do what I wanted them to do.
My unfamiliarity with Python only aggravated the problem. I didn't know how inheritance worked in Python, and even simple tasks required not only education in Python methods and modules but also in how SleekXMPP implemented certain tasks and then how Errbot implemented other things on top of those layers.
Has it paid off in the end? Yes, to some extent. Example - When I was working out how to correctly handle channels (and then working out that my understanding of channels was somewhat flawed) I was able to rewrite part of the bot and command Errbot to reload the affected module on the fly and test it immediately. When I wanted to write a "voice command" for the bot to respond to, it was a simple task using Errbot's existing interfaces.
On the other hand, it also cost me some pain. With no real knowledge of Python, I mistakenly approached it as if it was C or C++ and treated everything about it as if it was "sacrosanct", meaning that data structures were immutable and functions very strongly typed. I ended up spinning my wheels rather a long time trying to accomplish things that turned out to require no special accomplishment at all, because I was following examples written by other people who treated Python as if it was strongly typed and assuming that meant that it must BE so. It took some input from the Errbot people to point out how I was making things hard on myself to realize that I was, in fact, making things much harder than they needed to be.
As a beginner in all of this, I'd have been better off if I'd started out writing in C and using the Libstrophe library or something like it to learn to communicate in XMPP. Once I had that down, then moving on to interacting with Paragon Chat and expanding to other things once that was mastered.
I'm far from a "master" of all of this but I've reached the point where I can say I understand each of the pieces and how they interface, and where to place the new interfaces between Errbot and Paragon Chat so that the back end of Errbot can deal with the metadata and the front end can query and manipulate the metadata without having to understand where it came from.
It'll be worth it in the end but I made it a lot harder row to hoe than it needed to be, at least from the perspective of just learning to communicate with Paragon Chat in the first place.
If you're thinking of making a bot, then start with the fundamentals and work up from there. Like most other activities in life, short cuts aren't all they appear to be unless you're already so well versed in the subject that you didn't really need the short cut in the first place.