11 March 2019
Daden UDay: Chatbots and Autonomous Avatars in Second Life
For my DadenU Day I spent the time revisiting our code for controlling autonomous avatars in Second Life. The system currently uses the Corrade service (although I had a look for something better), which is certainly a lot more stable than when we last used it a couple of years ago. Corrade is very much an avatar controller, it has no smarts itself (so is like LibOMV in that respect), so we built a small LSL script to provide the interface from Corrade back to our Chatscript server which now forms the core of the bot's brain. The pathway is below:
The first task has been just to re-establish existing functionality before we move on to new stuff. The LSL script reported memory errors (you only get 64k!), so we stripped out the nice-to-haves and got the core working from bot to Corrade to LSL to Corrade to bot.
To get the other functionality back in we have to use an old LSL technique of putting the extra chunks in a new script and then using the llMessage function to call with a set of parameters - very messy as you can't pass much, but still the only way to do it in LSL which has no concept of a script library, shared scripts, or a script to script API!
The final bit was talking to Chatscript. Iain sorted a plain REST API into our Chatscript environment, I uploaded the old Abi (our virtual receptionist) files to the server, and finally we had the whole path with a user in SL being able to ask the Abi/Halo avatar questions about Daden.
Next steps are to start to build some of the Halo "brain" into Chatscript, porting some of our earlier Discourse work, and maturing the LSL interface. The aim is that by December 2019 we'll actually be beyond where we were with this in December 2009 when we were finalists in the BCS Machine Intelligence Competition!