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

Troggle, Google for trade bots

Recommended Posts

So I've been brainstorming a little bit about a good idea for a bot, been experimenting a bit, and came up with the following. I want your opinions on it! :(

 

The bot keeps track of all trading information, so buying/selling list of trade bots and static stores, and locations of them. It knows basic travelling information about maps, and is capable of finding and describing routes between points in maps.

 

Functionality includes:

- buy <item1> <item2> <item3> ... - show a list of traders in the neighbourhood where the player can buy all of the specified items. If no such trader exists, find multiple traders that are close to each other, so the player does not have to walk from one map to another.

- sell <item1> <item2> <item3> ... - same as buy

- pos <location> - sets the current map where you're in, required for buy and sell results to be in your neighbourhood (can be specified more detailed, for example 'white stone city' or 'lakeside village', so cities or locations within maps can be specified too)

- bots <map> - shows all the locations of known trade bots. Optional: on a specific map, or a specific location (e.g: a city)

- route <location> - describes a route to a bot name or city or closest store (e.g: 'route general store') like "take the boat from lakeside village to desert pines, then go south west to kamara desert at [194,93]" etc...)

- suggest <bot> - suggests a bot name to add to the list of bots

 

Note that this bot won't take the item price into account, since I understood that gave a bit of a discussion in the past, whether an open market is good or not. I will enable an option for bot owners to disable/enable inventory grabbing for their bots.

 

Oh, and the name... well if you know a better one, suggest something! :D

Share this post


Link to post
Share on other sites

You mean like rraisa that the large majority of bots don't even talk to?

Or el-cel which has everything else you wrote and more besides?

Share this post


Link to post
Share on other sites

Well, rraisa looks similar, but I want to lay focus on buying/selling multiple items fast, at places close by. and rraisa does not seem to have that, and that bot gives way too much irrelevant information in my opinion (returns things i didn't even search for), and is slow. Can't check el-cel, it's not online at the moment.

Share this post


Link to post
Share on other sites

The idea is interesting but I think it runs into the same problem(s) that rraisa did(does):

 

1) Where are you going to get the information? (people might not like you polling their bots on a regular basis and will probably ban your bot from talking to theirs unless it's agreed upon first.)

2) How are you going to get 'up-to-date' information unless you have a direct connection to each of the bots? (a connection using pms would result in too much game server i/o probably.)

3) Unless you have a good player/bot base, how are you going to get people to use it? And, how are you going to get that base if you're having issues 1 and 2?

 

 

Before re-inventing rraisa, I'd suggest talking with her owner about changing what you don't like first. It might be possible for him to change things, feedback is the only way he knows. You might get a better understanding of the reasons for rraisa's format/delay after you talked with him, as well :) (and how difficult it might be to overcome those.)

Share this post


Link to post
Share on other sites
You mean like rraisa that the large majority of bots don't even talk to?

Right now there are 190 bots on line. Of these, at least 25 are for sure non-tradebots (ants, fireants, guard bots, Gossip, EternalBroker, Rraisa, etc.). This leaves 165 potential tradebots (some of them could also be non-tradebots, I don't know them all).

Rraisa has 97 tradebots registered (opt-in basis), of which 85 are online right now, and 12 are offline. So, 48% of all potential trade bots don't talk to Rraisa. 48% is not "a large majority".

Edited by Usl

Share this post


Link to post
Share on other sites
1) Where are you going to get the information? (people might not like you polling their bots on a regular basis and will probably ban your bot from talking to theirs unless it's agreed upon first.)

 

Okay, my main idea was polling them like regular players do, by pm.

 

What is the reason people don't like polling? Is it because they are afraid their prices aren't good enough, or do they have other reasons? Because if that's the reason they should have no worries as I'm not going to show any prices if they don't want to. If the reason is that they are 'busy' when my bot is polling theirs... Then the solution is to poll them less often. I mean, my initial idea, once an hour, is not 'much', and if the inventory items (not talking about amounts here, as that's irrelevant in my case) of a bot didn't change much / at all the last few polls, then the time between polls will increase to (finally) maybe once a day.

 

Other solutions would be:

- agreeing with bot owners, one by one, if it's allowed to poll them (resulting in inaccurate information, as not all bots are listed)

- getting inventory from a website feed (given that this website shows up-to-date information)

- setting up an API service where bots can submit their inventory changes (requires additional programming on bot owner side, not very likely to happen, but it would be useful to anyone wanting to do something with trade bots, as the update traffic is then gone from the pm's)

 

2) How are you going to get 'up-to-date' information unless you have a direct connection to each of the bots? (a connection using pms would result in too much game server i/o probably.)

 

Okay, too much server traffic, that seems to be reasonable argument. Let me take that one down! :P One poll to one bot takes about 1 KByte of traffic. Average of around 500 bytes. To compare that to a message in a channel, let's say an average line in the chat is 50 characters (probably more)? If 10 people are in that channel, then, to deliver that message to all the people in that channel, it generates the same amount of traffic.

 

Let's assume, based on Usl's information, that there are 165 potential trade bots, and say that for 75 % (not sure if that's a reasonable estimate, percentage is probably even higher) of these bots, the inventory items (so what's being sold / bought, not the amounts of them) do not change every hour. That means, that 25 % of these bots, that's 41 bots, will be checked every hour, and the rest (124 bots), say once a day. Given a poll is 1 kByte, that will generate 41 bots * 24 hours * 1 kbyte + 124 kbyte for the other bots = 1108 kB traffic a day. That's an average of 13 bytes / second.

 

An average client connection generates:

100 bytes traffic / second (idling in a non-busy area)

300 bytes / second (idling on isla prima)

500 bytes / second (walking and fighting on isla prima).

 

So I think that additional 13 bytes / second would not be a problem for the server (correct me if i'm wrong!)

 

In worst case, say that all bots are checked every hour (will not happen, but assuming that...), it will generate a max of 124 * 24 = 2976 kByte traffic a day, which is 34 bytes / second, still a third of the traffic that one client generates when idling!

 

So I think too much traffic is not a problem here.

 

3) Unless you have a good player/bot base, how are you going to get people to use it? And, how are you going to get that base if you're having issues 1 and 2?

 

It's up for people to use it, and if it's good, people will tell each other. I can only hope that bot owners won't have problems with this bot. It's not as dramatic for them as rraissa is (which is comparing prices, thus sending users to the cheapest bots, i can see bot owners being pissed off because of that). It's just meant to be useful, telling people who are new to the game, or people with a bad memory, where they can get their ingredients for, say a potion, or something they want to manufacture, quickly. New players will also find it useful to ask the bot how he can get to a specific place I hope. I mean it's just an idea, I don't know how it will work out, and if it's failing, then it's failing, you can try to improve from that point, or give up when it's completely failing, but at least you tried!

Share this post


Link to post
Share on other sites

Other reasons bots ignore Rraisa:

 

* When Rraisa started up, she polled all bots too often inititally and didn't talk to any bot owners before had, ticking them off

* Trying to PREVENT bots price wars by having one central place people can compare prices at (i.e. Bot owners seeing too easily all the other prices so they keep lowering the price constantly without think og things like location/conveniance).

* Players complaining that your bot seems to high, when in reality the location is also a factor (look at the market channel).

* Prices can vary depending on who you are and what guild you are in

... and I'm sure there are others

Share this post


Link to post
Share on other sites

I'm by no means trying to shoot your idea down, just considering the pros/cons of it.

 

Polling once an hour isn't going to give up to date information, about the same as rraisa has now (instead I think she polls twice in 1.5 hours, once for buying once for selling.) Things can change a lot in that amount of time with a busy bot. I don't think rraisa is checking prices at all, just doing a match on the name you enter based on its polls and the data its gathered from the market channel (it hides numbers on request, but I don't think it cares what the numbers are...)

 

I can't say I've verified your numbers, but yeah, polling only once an hour doesn't seem like it'd be too intensive as long as you didn't poll them all at once (of course.)

 

The api solution is interesting, though I think it's been suggested before and many of the bot owners/programmers shot it down (not sure of all of the reasons why.)

 

Perhaps there are other possible solutions too, I'll send you a pm and see what we can think up.

Share this post


Link to post
Share on other sites

First of all: I have absolutely nothing against implementing your suggestions, I gain nothing from Rraisa, and only implemented it because when I started playing, I found that having to poll each bot individually (there was some 50 at the time) was boring and time-consuming.

However, it seems there is some misconception about how Rraisa works, so it might be better to clear it now.

 

What is the reason people don't like polling? Is it because they are afraid their prices aren't good enough, or do they have other reasons? Because if that's the reason they should have no worries as I'm not going to show any prices if they don't want to. If the reason is that they are 'busy' when my bot is polling theirs...

Rraisa is polling once every 90 minutes, alternate INV and WANTED commands (a full update every three hours), and scatters polls so not to have peak bandwidth consumption. Dynamically adjusting poll times based on frequency of updates is a good idea, but I don't think it would change much, because everytime someone buys or sells something to a bot, you have a change in available or requested quantity as well, so the decrease in polling time would only affect bots with whom no one has traded for the whole day (most probably a minority), and hence their impact on total bandwidth would be very limited.

 

Other solutions would be:

- agreeing with bot owners, one by one, if it's allowed to poll them (resulting in inaccurate information, as not all bots are listed)

This is how Rraisa works; only bots whose owners have explicitly request to be listed are listed (after verifying that they are the legitimate owners).

 

- getting inventory from a website feed (given that this website shows up-to-date information)

- setting up an API service where bots can submit their inventory changes (requires additional programming on bot owner side, not very likely to happen, but it would be useful to anyone wanting to do something with trade bots, as the update traffic is then gone from the pm's)

These are both reasonable opportunities, however there is a wide variety of formats that are used by the different code bases to publish their offerings on web pages, and not all bots have them, etc. - so, the problem of establishing a commond format is the same as that of establishing a common API, and not likely to happen. You could write import filters for the most common web formats, but then you would have to keep them updated with every change in some bot codebase... too much hassle for me :P

 

2) How are you going to get 'up-to-date' information unless you have a direct connection to each of the bots? (a connection using pms would result in too much game server i/o probably.)

 

Okay, too much server traffic, that seems to be reasonable argument. Let me take that one down! :)

This objection was already discussed some time ago (it was one of the arguments put forward by those that did not like the existance of Rraisa), and Kakoon is right; with n bots and m players, a centralized hub requires O(n+m) communications, whereas a decentralized system needs O(n*m) communications. This is of course only if all m players need a full picture of the n bots offerings, but you get the idea. The actual length of a message does not really change things, it is always more efficient to have a hub, if n>1 and m>1 :)

 

It's not as dramatic for them as rraissa is (which is comparing prices, thus sending users to the cheapest bots, i can see bot owners being pissed off because of that).

Rraisa does not compare prices - actually, she has no idea what the contents of each line of an inventory are. This is done on purpose. Rraisa sends to users all matching lines, regardless of the numbers contained in them, with one exception: if there are more than 12 or 15 matches (I'm not sure of the number), she will send only that max number of PMs, choosing among all the matches at random. The random thing is deterministic, meaning if the same query is sent multiple times, you will get the same answer (otherwise, people would just send the same query over and over, till they get all the results, thus defeating the attempt of limiting the traffic). However, you can tell when you are missing something: when all the answers you get are from bots, and none from market, the reply was probably "capped". Notice that Rraisa will not send users the "best" offers at all, just a random selection (or all of them, if they fit in the cap). This was done in an attempt to be fair to both bot owners, and to players (who, after all, might want to select their trading partner based on other criteria such as position, friendly relations between players' guilds, amount available, etc.).

The random ordering changes every time a line from one of the bots changes: i.e., if your bot sells or buys something, so the quantity changes, or you change the price, then at the next update you will have another spot in the random order (which might be among the top-n or not, depending essentially on luck).

 

Another common misconception: Rraisa does not force anyone to show prices. On the contrary, each bot owner, when he registers Rraisa, is asked personally if he wants prices and quantities shown or hidden. As of now, of 97 bots registered, 10 have opted to have prices and quantities hidden, 87 wanted them shown. Just two days ago, the owner of two bots that also had prices and quantities hidden contacted me asking to have them shown instead.

The reason why Rraisa hides prices AND quantities is simply that she has no idea of what is a price, what is a quantity, what is an item ID number, etc. Lines coming from bots are not parsed in any way (try "/rraisa buy emu" to see what I mean :P). All she does is to replace any digit in that line with "#". If you do, for example, "/rraisa buy iron helm" you will see that tensai and astronomy have numbers hidden; salt, gemini, karlin and alice have them shown (as of now, of course). This is a owner's choice thing.

 

Having said this, if you provide an alternative (and better!) service, I would have absolutely no problem with that - would register my trade bots, actually! :)

The only issue to keep in mind is, the usefulness of a hub is high, the usefulness of n hubs is 0. If players have to poll too many multiple hubs, we are back at square one.

Share this post


Link to post
Share on other sites
Oh, and the name... well if you know a better one, suggest something! :evilgrin:

 

Why not use Google? Or Scroogle (also a search site)

ELGoogle (dual meaning Eternal Lands Google or Spanish for The Google)

Oogle (for lookie-lews)

 

I noticed Rraisa was brought up. I would like to say something in her defense but first I would like to say that I dislike merchant bots as a whole. I feel they put an unnecessary stress on the players ability to buy and sell. Before Rraisa, I mainly purchased from players out of principle and frequented only 2 bots because of items available/location (Trader & C2_trader). The items are rarely available from these 2 bots anymore and Rraisa has helped me expand my search and now I purchase from more bots and more frequently. So bot owners that associate with Rraisa have profitted from increased business. I still prefer to buy from players but sometimes players are unreliable.

Edited by Scratch

Share this post


Link to post
Share on other sites

I'm surprised that many bots ignore rraisa. I find rraisa to be the second most useful bot in the game. :P When I want to buy something, the first thing I do is ask rraisa- what is the alternative? I've had poor luck on 4, and pming 190 bots looking for a widget is not realistic. I know that there are websites with available wares, but I, for one, prefer to stay in the game.

 

As far as how rraisa was originally introduced... I think that's true, but that was years ago, and it was a case of poor judgement, not malice- people feel better when they let things go.

 

scaf

Edited by scafativ

Share this post


Link to post
Share on other sites
I'm surprised that many bots ignore rraisa. I find rraisa to be the second most useful bot in the game. :P When I want to buy something, the first thing I do is ask rraisa- what is the alternative? I've had poor luck on 4, and pming 190 bots looking for a widget is not realistic. I know that there are websites with available wares, but I, for one, prefer to stay in the game.

 

As far as how rraisa was originally introduced... I think that's true, but that was years ago, and it was a case of poor judgement, not malice- people feel better when they let things go.

 

scaf

 

 

All too true & the up side would be an increase in sales. ;)

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.

×