Jump to content
Eternal Lands Official Forums
Sign in to follow this  
Entropy

Player made quests via a network of bots

Recommended Posts

It seems that the players want more quests, but I am busy with other things and I'd rather not get involved with quests for the time being.

So I came up with an idea which I also discussed in the past with Learner, but I will elaborate more here.

 

Basically, I am thinking of a network of bots, hosted by a trusted player. Those bots must be programmed via some script, preferably by web. So a trusted player would log in to a web site hosted by the bot master, and would upload a compiled script file that the bots would interpret.

Then those trusted bots would be able to ask the server for some 'favours'. For example, request the server to PM them if a player walks into a certain area with some item, or if the player looks at an item in some map, or uses an item on some map with some inventory item. Those things are pretty benign, and can't be abused. Other features could include allowing the bot to move a player somehwere, but this can be abused, so I am not sure if I'll include it or not.

 

This way, we can have an quests made by the players, and perhpas even some events.

 

Anyway, what do you think? Is there anyone willing to implement and host this?

Share this post


Link to post
Share on other sites

I am not a programer, But i do have server, i can allow the quest bots to be host on. I do like different quests. If a programer would like to implement bot quests. They are welcome to use my server. I can set up admin rights to server. They like to use my server. :D

 

:)

Share this post


Link to post
Share on other sites

Methinks you need to speak to Learner again g0d, he is already working on it.

Share this post


Link to post
Share on other sites

As you're probably aware of, we currently host 70 trade bots, and serveral storage bots on our service. I assume that means people trust us (we have a small team of very trusted players as administrators on our service.) We also have a web interface (that has several layers of security.) If what we're talking about is adding a new protocol or two to the bot's code and then allowing this 'trusted player' (or players) to upload the quest information into the database some how (via a web page that they can upload some script with, or just fill some out some web page with quest information,) I think this could be done in a fairly short amount of time.

 

This would, of course, require the bot owners' consent (but at least one of the owners has already indicated on this post that he's willing.) I can ask them if they'd be willing and have an indicator on bot configuration screen that would allow them to 'opt in' with their bot(s). I'd certainly be willing to add Josi as a 'willing' bot, as well.

 

If I understand it right, these messages would only come from the server while the quest was running or would the bot also need to check if the quest was running befor it tried to interpret these new messages?

 

The bots already have the ability to recognize people as they walk into range (as they have the ability to greet them - which has been the subject of a bit of contraversy...) I assume that when they approach the bot it'd be told by the server that this person 'qualifies' for the 'action' you'd like the bot to perform.

 

It all sounds possible/doable. With such a coverage of bots on both continents, if I can get their consent, the quests could cover most maps in the game.

 

If you'd like us to persue this further, please let me know and how you'd like us proceed. I'd need to know what the new protocols were so I could modify the bot code to handle them and what the web page should look like (and who could should be able to access it.) I'd guesstimate that this would take about two weeks to develop and test. We're in between releases right now, so this would be the perfect time to do this.

Share this post


Link to post
Share on other sites

I've sent a system message to the bot owners asking their thoughts on this, so I'll let you know how they feel about it in the next day or two. I assume this wouldn't interfere with the normal operation of the bots (and indicated such on the post.)

Share this post


Link to post
Share on other sites
Methinks you need to speak to Learner again g0d, he is already working on it.

I'm not using a scripting language which he wants, plus each bot owner would need to enter their portion into the web interface instead of one person being able to do it all. I'm designed to reduce the bugs caused by coding issues but you have to work within the restrictions of my design.

 

I have a stateful pattern matching with conditionals interface in testing that allows bots I host to share their info with selected other bots. Requirements to use it involve having one or more bots hosted by me, p[atience in figuring out an undocumented interface, getting comfortable with how it works, and an understanding of regex matching to use more advanced pattern matching. What is currently being tested is mostly focussed around PM's & responses with additional conditions

 

Already in place:

* complex pattern matching of PM's, local, and channels (only PM's is enabled for players currently)

* randomization/chance on matching & action areas

* multiple possible actions (including being able to trigger one of several or trigger one or more)

* test for being a guildie/friend.enemy/blacklisted or in one of two special lists

* test for states being set/cleared

* set/clear states as part of actions

* continue processing after a match

* prioritization of checking (ie changing the order to prevent miss matching)

* states can be assigned to the player or on the bot, bot states are shared across all players (needs UI work)

* quest matching is lumped into one group/quest and each group can be enabled/disabled by the admin for contests

 

Still on the TODO list include:

* integrating with trading (to give a reward or detect getting an item)

* web interface for additional conditionals (must be in range, is trading, and others)

* additional conditionals (player must be wearing items, etc)

* admin/debug interface to review/change the state information on the bot or players

* documentation & examples for how to use then web interface for sepcific results.

 

This is all working/being implemented using the current protocol to the server.

Share this post


Link to post
Share on other sites

Anubis is up for this too.

 

I like this idea although I got some little questions. I don't know how this quests are being seen, are they there 'forever' or are they only 'short-term'? Cause if they're there forever there might be a problem with bots that are removed from game because the owner is no longer paying the fee. This way you would get a hole in the entire quest.

 

I might see this wrong ofc, just a small question though.

 

Pater

Share this post


Link to post
Share on other sites
I also see problems with bots losing connections. And it will confuse a lot of new players for sure.

If there are enough bots availble to do this, there could be a secondary bot chosen during the quest set up (for each step) this way if one of the bots was missing, chances are the other wouldn't be. The quest could then just defer to the secondary bot for that step.

Share this post


Link to post
Share on other sites
I also see problems with bots losing connections. And it will confuse a lot of new players for sure.

If there are enough bots availble to do this, there could be a secondary bot chosen during the quest set up (for each step) this way if one of the bots was missing, chances are the other wouldn't be. The quest could then just defer to the secondary bot for that step.

New players should focus on the standard NPC quests that are already in place, and on any that might be added later on (on the server side).

 

Bots-based quests I see as more akin to events; their dynamic nature means that quests authors (i.e., a group of trusted and experienced players) will work on them all the time; such quests could come, go, and change in time. They will probably be addressed to more mature players, and be more challenging than the standard "bring me this, then find that other NPC" quests. Also, provided that rewards are proportional to effort (i.e., value of reward <= value of items+effort needed to obtain it), I see no reason why such quests cannot be offered multiple times instead of just one - so that players have an opportunity of re-doing them for fun upon major variations.

 

A missing bot would only mean that a player can't complete that quest at that time, which is not unlike a player not being able to trade with a bot that is not on. Also consider that, if we host those quest-bots on some robust hosting service (e.g., Learner's or DogBreath's) the chances of the server or connection going down are pretty low, and in any case such an event would bring down roughly half of all tradebots in game, so I don't think it is worth taking special measures for it.

Of course, if for any reason a bot is permanently disabled, the quest could be adjusted accordingly quite soon (that's why we are considering a web interface for defining quests, no?).

Edited by Usl

Share this post


Link to post
Share on other sites

So far the response to this by the bot owners on our service has been overwhelmingly positive (and had actually been suggested by several of them in the past already.) I guess all we'd need now is more details on how this interface should work and if you'd like us to proceed.

Share this post


Link to post
Share on other sites

Ok, let me clarify a few aspects. I was not thinking of using already existing trade bots because of a few reasons:

This can become a security issue, if there is a bug in programming then they can give too many prizes or something.

Those bots might have to move every once in a while, to make the quests more interesting (think of a quest like a missing girl, that is always on the move).

In case someone doesn't pay the bot fee and it gets locked, then the whole quest can fail.

Those bots will have slightly higher privileges than a normal player, and I don't want the owners of trade bots to have access to them.

 

I would also like them all to be hosted on a single machine, to make it more reliable. For example, think about the above mentioned example with the missing girl quest. If the machine hosting the girl bot gets disconnected, then the players can waste their time looking for it.

 

Learner's system is nice, but only for non programmers. What I have in mind is having some scripting language targeted at programmers, that would make things easier to do for those implementing the quests.

Share this post


Link to post
Share on other sites

As to the language, my first thought would be a PERL interpreter (they exist for both Unix/Linux as well as Windoze). A quick Google search turns up a number of possibilities including ActivePerl and Perl.org.

Share this post


Link to post
Share on other sites

I don't really like Perl, and most of the people I know don't know/like Perl do to its strange syntax.

Something C like would be better, imho.

Share this post


Link to post
Share on other sites
I don't really like Perl, and most of the people I know don't know/like Perl do to its strange syntax.

Something C like would be better, imho.

 

most of the ppl who don't like it, have never even tried to understand it's ways :>

Share this post


Link to post
Share on other sites
I don't really like Perl, and most of the people I know don't know/like Perl do to its strange syntax.

Something C like would be better, imho.

most of the ppl who don't like it, have never even tried to understand it's ways :>
And it could therefore be used for nefarious purposes if the host is not familiar with the code and just runs it.

 

What about PHP?

PHP is close enough to C to not make much of a difference and has the added benefit of being network ready pretty much out of the box.

 

I did try Perl for a while but I found it very conducive to WTF based headaches.

Share this post


Link to post
Share on other sites

Perl isn't hard to understand, it's just another way of thinking. But if you can't think out of the box it will be hard, yea.

 

And php, bleh, talk about real programming languages pls.

Share this post


Link to post
Share on other sites

I'm surprised no one mentioned Python.. Easy to understand, great for scripting, and still very powerful

Edited by 2coolfool

Share this post


Link to post
Share on other sites

Why not let the those that you trust to do this have examples of how you program the npcs, then let them submit back to you modified versions for new npcs/quests? These could be submitted to you to run on the test server and be tested until you're satisfied that they're working correctly and then moved to live.

 

This way all the work isn't on you, but the quests could still be fully integrated into the server and then there'd be no reason to worry about "if the bot isn't up" or it being written in a language that's not "clear" etc... It also means if the person drops off the map some day, that the quest system doesn't disappear with them.

 

These 'quest writers' could also be the ones responsible for taking the player ideas for quests and implementing them as time permits (assuming you approve of the ideas.) I'm sure you could ask them to 'sign' some non-disclosure agreement if you felt that was necessary.

Share this post


Link to post
Share on other sites
What about PHP?

PHP is close enough to C to not make much of a difference and has the added benefit of being network ready pretty much out of the box.

 

this goes to far offtopic but php is a toy for kids, nothing more :)

 

btw. there is a (maybe little outdated) el-package written by franc carter @cpan

Share this post


Link to post
Share on other sites
Why not let the those that you trust to do this have examples of how you program the npcs, then let them submit back to you modified versions for new npcs/quests? These could be submitted to you to run on the test server and be tested until you're satisfied that they're working correctly and then moved to live.

 

This way all the work isn't on you, but the quests could still be fully integrated into the server and then there'd be no reason to worry about "if the bot isn't up" or it being written in a language that's not "clear" etc... It also means if the person drops off the map some day, that the quest system doesn't disappear with them.

 

These 'quest writers' could also be the ones responsible for taking the player ideas for quests and implementing them as time permits (assuming you approve of the ideas.) I'm sure you could ask them to 'sign' some non-disclosure agreement if you felt that was necessary.

 

Because I don't want to be bothered with the quests at all.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×