Someone left a comment on my amorMD2 page, asking if I had submitted it to KDE. It was a very timely answer, because I have been working lately on a new program called Alities (as in “personAlities”). The idea behind Alities is to completely throw away the legacy amor code, and develop a complete desktop buddy engine. The advantages are as follows:

- Better Graphics

The original Amor code was limited to a certain frame rate, and a certain number of animation frames. By going to a true real time 3D engine (instead of lazily-rendered, then cached frames), the animation will be much more fluid, and more flexible. Especially when used with bone-based model animation.

- Better and Customizable Behavior

Again, the original amor code behaves pretty simply. If you switch windows, it goes to the new one. If you leave the computer alone, it goes to sleep. Otherwise, it more or less just moves back and forth on top of your current window. That’s it. With Alities, your character can decide to take pot-shots at your mouse cursor. Or, it can get bored and start wandering around your background windows. Or maybe it will decide you are working too hard, and stomp on your current window to move it down a few pixels. You might have more than one Ality on your screen at a time. Maybe they won’t get along, and will have a little war with each other until one of them is dead (IE, the process shuts down).

- Plugin model

Initially, Alities will come with plugins to support loading Quake 2 characters, listening to Window Manager events, and D-BUS messages. It will also come with several behavior models like those described above, from which you can pick and choose how you want your Ality to behave. Afterwards, I will be releasing plugins to load Quake 3 characters, Unreal Tournament (2k3 and 2k4). The next version of Alities after that will feature a binary XMLRPC interface, so you can send your alities to other people’s desktops (if they are also running Alities). Maybe they’ll act as your autonomous emissaries. Or, if you want, you can take direct control of them, and have them do whatever you want — I’ll keep what you can do a surprise for now.

Anyway, most of that is just on the drawing board today. Right now, Most of the framework and much of the MD2 plugin is complete. I have to finish some of the basic plugins for window-manager and D-BUS behavior, and then I will release Alities. With that release, I will probably submit it to KDE for inclusion, and possibly Gnome as well. Alities is written font-end agnostic. At the moment, it has a KDE front-end, but a Gnome front-end will be included with the first release. An MS Windows front-end is also possibly, being taken into account from the beginning (unlike amorMD2). Unfortunately, most detection plugins like the window manager and D-BUS won’t be effective on MS Windows, so support for that may be much farther down the line.