Bots and automation


One of the things I wanted to do when writing a new server was to improve on the original. WorldsAway was conceived as a chat server, and much of the way it operates, and the limited ways of interacting with others, is because of this. Although you have a health attribute (Status > How healthy am I?) it was never used in the Fujitsu days. There is also a class of object "weapon" which again was never used. The options to interact with another avatar are mostly limited to speech and giving them items.

Despite this, people manged to be creative and built games and activities. Many used third party programs that needed to be installed on the pc of anybody wanting to play, and mostly worked by exchanging ESPs, passing codes and choices, with one person acting as games master.  Because of this need for additional software, anybody stumbling across a game randomly was likely unable to play immediately, and might decide not to even bother. Even games that didn't need players to install anything would use software to run the game on one person's machine, stopping them actually playing. 

Other online systems that were more games based, rather than chat based, would have these things baked in.. NPCs (Non-Player Characters) that you could interact with and which would give you tasks or quests to complete, barter with you in a shop, or run single or multiplayer games right there in the world for you to use with no need for additional software. And usually a defined health and attributes structure that could be affected by events in-world, even player vs player combat, and death. 

It is some of these ideas I want to implement, but these definitely count as  per-world features, not something that would be needed in the core server code. I have therefore created something that is totally new to WorldsAway .. A server-side plugin system! With this now in place, I can create game-like additions to the world that reside in their own files, and can just drop those I need for any given world onto the server with no need for any other code changes.

Users on the demo server have already encountered a few of these. Earning of tokens based on time in-game is implemented by means of a plugin. There's a word filter that replaces certain forbidden words with alternative words or phrases. (this could be expanded into a profanity filter, but that'd be pointless. At the moment it's just there to cause amusement.) But the most inventive so far was The Guardian, a slightly elfish character that would pop up if you tried to take a particulate exit from a locale, demanding you give him the right key before you can pass.  A selection of mostly incorrect keys scattered about the world got people exploring a bit more than usual, as they hunted for the right one.

I'm currently working on another character that will lead a game that anybody can just jump in on. This will be even more fun. 

All of these, of course, are run by the server. There is no need to have a user run the games, and no need for additional software. 

This might sound obvious, but by doing such things at the server, there is no ability for a more devious user to bypass any security or cheat at the games. There was no way past the guardian, even hacking the client, unless you gave him the right key. 

For more complicated games that really need something clever running at each player's end, we can also send over resource updates to the client. This adds a small bit of code to the client and allows us add whatever a game or task might need directly and without need for the user to do anything.

All of this is very exciting, and the potential is enormous. I hope you are looking forward to these as much as I am, and I'd certainty love to hear your ideas on what you would like to see added. Just head over to Suggestions and add whatever you can think of, and vote on other people's ideas. I cannot promise to implement every idea, as, after all, there's just the one of me doing this, but I'll definitely consider any popular suggestions. 

Comments

Popular Posts