Jump to content
Eternal Lands Official Forums
dns_server

inter bot communications

Recommended Posts

i would like a set of standard commands and thair usage for allowing bots to communicate with eachother. so i would like to create a standard set of commands and responses for bots to communicate.

 

The first and simplest command would be a command to see if the bot is currently online. Your bot woud send out a 'ping' command to each bot every 5 minutes or so, when the ping command is recieved a 'pong' command is sent as a reply.

bot1->ping                            (request)

bot2-> pong                          (response)

 

the way i have implemented it is i send a ping message and put them on a pending list, when a pong message is recieved they are put off the pending list and onto the active list if after a minute there is no pong they are taken off the active list if they are there.

 

The other commands that should be common to all bots are:

bot1->hi                                  (request)

bot2-> some greeting              (response)

bot1->help                                                    (request)

bot2-> some list of commands and usage    (response)

 

 

i would like some more suggestions on how inter bot communication can be used, i am planning to have a blacklist shared between a series of guild bots. but if there is something we should share i am interested.

Share this post


Link to post
Share on other sites

Can I ask why with regards to pinging other bots? As in, what would bots need send to

eachother?

 

[EDIT] Reread the previous post, removed first comment ;-)

Share this post


Link to post
Share on other sites

First you need to make a case why they should communicate with each other through the EL server! Bots that need to talk to each other could even look at opening ports directly to each other instead of going thru the server.

Share this post


Link to post
Share on other sites
First you need to make a case why they should communicate with each other through the EL server! Bots that need to talk to each other could even look at opening ports directly to each other instead of going thru the server.

208961[/snapback]

Exactly.

 

Its unnecessary through the server itself. However, with this method you introduce the need to know each bots IP, which isn't gonna happen IMO.

Share this post


Link to post
Share on other sites

i have 3 bots useing my code:

iknow which is the 'stable' version of the bot, deadface which is the 'development' version of the bot and knoppy which is run by starwarrior.

 

They send 'ping' messages to eachother to see if they are currently online, if they are online they start a negotiation with eachother. The bots provide an el-> irc gateway, and they negotiate between eachother who is responsable for provideing the gateway service, if one of the bots goes down the remaining bots will take over.

 

i'm working on haveing the bots keep an active list of blacklisted members, and trying to implement it so changes in the list will be syncronised with eachother automatically.

 

while it would be possible to open up a socket and communicate with eachother it is not as easy to do, and they do not send too much data to the server, only an occasional pm message containing 'ping' or 'pong'.

Share this post


Link to post
Share on other sites
i have 3 bots useing my code:

iknow which is the 'stable' version of the bot, deadface which is the 'development' version of the bot and knoppy which is run by starwarrior.

 

They send 'ping' messages to eachother to see if they are currently online, if they are online they start a negotiation with eachother. The bots provide an el-> irc gateway, and they negotiate between eachother who is responsable for provideing the gateway service, if one of the bots goes down the remaining bots will take over.

 

i'm working on haveing the bots keep an active list of blacklisted members, and trying to implement it so changes in the list will be syncronised with eachother automatically.

 

while it would be possible to open up a socket and communicate with eachother it is not as easy to do, and they do not send too much data to the server, only an occasional pm message containing 'ping' or 'pong'.

209912[/snapback]

Since you are running your own bots, and want to synchronize your own data, you should have them talk to each other without going thru the EL server, or if they're on the same box, have them share the same files.

Share this post


Link to post
Share on other sites
Since you are running your own bots, and want to synchronize your own data, you should have them talk to each other without going thru the EL server, or if they're on the same box, have them share the same files.

210017[/snapback]

 

 

He is thinking about a bigger picture here. The future of EL. He's saying, there may be a day in the future where bots have small networks of friendly bots that share information. Those allied bots might be trading bots in friendly guilds, for instance. In such a case, a change in the price of some commodity could instantly be changed in all allied bots, via an agreed upon bot-protocol. This is an idea that is a natural progression of the capability of bots on EL. This idea leads to all sorts of cool things, like being able to check prices on Yahoo Messanger or ICQ, for instance, or checking the status of your guilds bots via your cell phone. Productive information from bots can only be possible when they are allowed to share data with each other and other networks. This is what the internet is all about. Brilliant idea.

 

The issue of bandwidth is reasonable. Bandwidth costs money. The answer is easy, and fair. Charge bot owners a fee that helps cover bandwidth. This is already the case with trade bots, but could fairly be extended to experimental and information distributing bots.

Edited by Wicca

Share this post


Link to post
Share on other sites
He is thinking about a bigger picture here. The future of EL. He's saying, there may be a day in the future where bots have small networks of friendly bots that share information. Those allied bots might be trading bots in friendly guilds, for instance. In such a case, a change in the price of some commodity could instantly be changed in all allied bots, via an agreed upon bot-protocol. This is an idea that is a natural progression of the capability of bots on EL. This idea leads to all sorts of cool things, like being able to check prices on Yahoo Messanger or ICQ, for instance, or checking the status of your guilds bots via your cell phone. Productive information from bots can only be possible when they are allowed to share data with each other and other networks. This is what the internet is all about. Brilliant idea.

210412[/snapback]

Which is why the bots should network with each other instead of developing a protocol going thru the server. As interbot communication increases it should be done without going through the server!

Share this post


Link to post
Share on other sites
Which is why the bots should network with each other instead of developing a protocol going thru the server. As interbot communication increases it should be done without going through the server!

210413[/snapback]

 

I think we are only talking about a few bytes here and there, not entire blocks of data. In a way, his proposal will help to prevent the kind of thing you are worried about. By their very nature, protocols like his compact information for transport. If a universal interbot communications protocol was created, it would not include the capability of sending bulk data, but only a set number of bytes per message, as agreed to by the server and bot owners. By creating the standard he proposes, this locks in a very low bandwidth emitting standard. It is the best of both worlds. On one hand allowing bot creators to play and create, and on the other requiring them to recognise the standard protocol, thereby limiting the amount of bandwidth used.

Share this post


Link to post
Share on other sites
I think we are only talking about a few bytes here and there, not entire blocks of data. In a way, his proposal will help to prevent the kind of thing you are worried about. By their very nature, protocols like his compact information for transport. If a universal interbot communications protocol was created, it would not include the capability of sending bulk data, but only a set number of bytes per message, as agreed to by the server and bot owners. By creating the standard he proposes, this locks in a very low bandwidth emitting standard. It is the best of both worlds. On one hand allowing bot creators to play and create, and on the other requiring them to recognise the standard protocol, thereby limiting the amount of bandwidth used.

210421[/snapback]

Well, someone has to pay for it. And its not data that the server should care about. Its not a game feature (i.e. data that the server recognises), so why should it go through the server?

Share this post


Link to post
Share on other sites
Well, someone has to pay for it. And its not data that the server should care about. Its not a game feature (i.e. data that the server recognises), so why should it go through the server?

210433[/snapback]

 

Someone should pay for it...agreed. Let it be bot owners. I don't think they will have an issue with it, evidenced by the many bots that are already being paid for.

 

The reason I argue messages between bots should be supported:

 

1) A standard protocol, by its definition, will put limits on the amount of bandwidth bots can use, as defined by protocol parameters. This means interbot traffic could be kept within reasonable size, but be allowed to share trade data, or export guild info to members with cell phones, and the like.

 

2) As EL and games like it develop, they should support extensions to their systems, since this freedom leads to innovation. Sometimes we get powerful and forget from where we came from. Freedom to innovate leads to better technology.

 

3) The Ants consume a TON of bandwidth. I know this because I wrote my own "ant." Location verification and pathfinding discovery take WAY more bandwidth than a trade bot. (Since it was stated that we can not use EL map data, and I'm sure Learner didn't violate that rule, so those locations need to be discovered). How many Ants do we have? What about Messanger Bots? Text is the largest consumer of bandwidth there is and relocating an Ant every few seconds (discovery-mode) takes even more!

 

This doesn't even speak to the potential of uniting devices in the real world with El and games like it, which is where this all leads to eventually. Right now half of the world is in the process of destroying itself. The other half of the world is in the process of creating really cool technology. Let us be nerds.

Share this post


Link to post
Share on other sites

I don't see why this is needed. A single instance of a single program runs all the ants as I understand it so they don't need to share info with any other bots - they share data storage and a discovery by one is known by all.

 

If you want to share information between two bots that you wrote you can supply the communication using an ip address and port known to your programs - nobody else needs to know. This can also be negotiated with other bot writers if they see the value there - I don't. You could even use PMs to tell the other bots how to talk to you - maybe like this: /FREDBOT botchannel=192.168.17.71:1234. I don't think I want my bot Salt to talk to any other bots.

Share this post


Link to post
Share on other sites
I don't see why this is needed.  A single instance of a single program runs all the ants as I understand it so they don't need to share info with any other bots - they share data storage and a discovery by one is known by all.

210579[/snapback]

 

 

The point about the Ants is that they consume far more bandwidth than any other bots. The next runner up would be the Guild Messanger bots. The point is, bandwidth restrictions should not be applied to the concept of traffic between bots, when I can point to many other bots that suck bandwidth like it's free. The bandwidth issue becomes null and void when we look at the Ants and the Messangers. I think the guy that proposed the concept might provide a draft of the protocol, and then we can estimate the bandwidth, and not assume the worst.

 

I don't think he is proposing a protocol that consumes vast bandwidth. So far he's only listed a few items that consume a very few bytes. If he included 20 more commands that took up 512 bytes, it wouldn't hurt much, and at the same time would allow Yahoo, ICQ, AOL, IRC, Cell Phones, PDA's, email, and other devices to be informed of simple statistics in a standard way. Most of all, it is harmless, and doesn't hurt bandwidth, and sometimes people just need acknowledgment from the powers-that-be to know they are on to something kinda cool and that their project is worthwhile.

 

All of our lives are projects. Let's make things.

Share this post


Link to post
Share on other sites

The guild messenger bots are gone afaik - the #ig command has replaced them. Did they really use a lot of bandwidth? They never moved - just watched guild messages and forwarded selected messages to the selected recipient bot which reissued the #gm command right?

 

The ants may do a lot of walk-to commands resulting in a lot of actor movements being sent to anyone who could see them. Because of their restlessness I suppose they probably cause slightly more bandwidth usage than a normal character.

 

I don't think the issue really is bandwidth - it's more a question of "how much would this enhance a player's gaming experience compared to the other stuff the developers are doing?"

Edited by Puntif

Share this post


Link to post
Share on other sites
I don't think the issue really is bandwidth - it's more a question of "how much would this enhance a player's gaming experience compared to the other stuff the developers are doing?"

210680[/snapback]

Yeah, my comment about bandwidth was just another point, not the whole reason for not doing this <_<

 

The fact is, this doesn't solve much. It doesn't provide a huge advantage or add to gameplay.

 

I wanted to address this comment:

3) The Ants consume a TON of bandwidth. I know this because I wrote my own "ant." Location verification and pathfinding discovery take WAY more bandwidth than a trade bot. (Since it was stated that we can not use EL map data, and I'm sure Learner didn't violate that rule, so those locations need to be discovered). How many Ants do we have? What about Messanger Bots? Text is the largest consumer of bandwidth there is and relocating an Ant every few seconds (discovery-mode) takes even more!

What is this misconception? As far as I can see, bots following someone consume no more bandwith than you manually clicking to follow someone (i.e. you more than likely send the same amount of GOTO packets).

Share this post


Link to post
Share on other sites
The guild messenger bots are gone afaik - the #ig command has replaced them.  Did they really use a lot of bandwidth?  They never moved - just watched guild messages and forwarded selected messages to the selected recipient bot which reissued the #gm command right?

 

The ants may do a lot of walk-to commands resulting in a lot of actor movements being sent to anyone who could see them.  Because of their restlessness I suppose they probably cause slightly more bandwidth usage than a normal character.

 

I don't think the issue really is bandwidth - it's more a question of "how much would this enhance a player's gaming experience compared to the other stuff the developers are doing?"

210680[/snapback]

 

You've found one of the reasons to promote this guys new protocol idea. You said the messanger bots were replaced with the #ig command. You see, the messanger bots were someones idea at first. Such a good idea that it became part of the game. This is the very reason why we should promote and support new ideas like this guys protocol for interbot messages. If the guild messanger bot idea was rejected in the beginning, then it would never have become a feature it is today. If someone vetoed the guild bots in the first week of operation because it used bandwidth, then where would the #ig command be today? What if we said guild messages could only be sent from ip address to ip addresss?

 

As to the question about how much a new capability will enhance gameplay: This interbot protocol would allow people to have access to information about players, guilds, chat traffic, trade information, and much more, on devices and networks outside of EL. It would allow trade bots to synch buy and sell prices, too. There are things that could be done with this idea that are frighteningly cool.

Share this post


Link to post
Share on other sites
What is this misconception? As far as I can see, bots following someone consume no more bandwith than you manually clicking to follow someone (i.e. you more than likely send the same amount of GOTO packets).

210823[/snapback]

 

The Ants have to do more than just send move packets. They also have to know if they have moved to a real location. They do this by asking the server where they are. Then the server sends back a location. If you count this up, and do it every few seconds, what you have is a lot of bandwidth. Now multiply it by the number of Ants. This was the situation in the early days of the Ants. The users see the map, and they know where to go, and where not to go, but the Ant, in the beginning, must go to a location, and check to see if He/She arrived there. (Since it is not legal to use EL map data, as stated several times).

 

So either 1) Someone broke the rules, big time, or 2) The Ants hog bandwidth.

 

There is a lot more going on than just goto packets. This doesn't even include the traffic needed to open bags, extract items, and deposit them in other locations. All of this takes bandwidth. The bandwidth question becomes null and void because of the Ants and the Guild messanger bots. This guys new idea to build a protocol for bot-to-bot traffic is great, and so far I'm not seeing any reasons not to support him and his protocol.

Share this post


Link to post
Share on other sites
There is a lot more going on than just goto packets. This doesn't even include the traffic needed to open bags, extract items, and deposit them in other locations. All of this takes bandwidth. The bandwidth question becomes null and void because of the Ants and the Guild messanger bots. This guys new idea to build a protocol for bot-to-bot traffic is great, and so far I'm not seeing any reasons not to support him and his protocol.

210869[/snapback]

For the second and final time; the messenger bots don't exist anymore. Even when they did, the packets they sent were minimal, and just the same as anyone else sitting and doing nothing but talking. The difference between the messenger bots and this suggestion is that the messenger bots provided a brilliant service ingame.

 

Also:

I don't think the issue really is bandwidth - it's more a question of "how much would this enhance a player's gaming experience compared to the other stuff the developers are doing?"

 

By all means, implement this, but I can't see it catching on.

Share this post


Link to post
Share on other sites
The Ants have to do more than just send move packets. They also have to know if they have moved to a real location. They do this by asking the server where they are. Then the server sends back a location. If you count this up, and do it every few seconds, what you have is a lot of bandwidth. Now multiply it by the number of Ants. This was the situation in the early days of the Ants. The users see the map, and they know where to go, and where not to go, but the Ant, in the beginning, must go to a location, and check to see if He/She arrived there. (Since it is not legal to use EL map data, as stated several times).

 

So either 1) Someone broke the rules, big time, or 2) The Ants hog bandwidth.

 

There is a lot more going on than just goto packets. This doesn't even include the traffic needed to open bags, extract items, and deposit them in other locations. All of this takes bandwidth. The bandwidth question becomes null and void because of the Ants and the Guild messanger bots. This guys new idea to build a protocol for bot-to-bot traffic is great, and so far I'm not seeing any reasons not to support him and his protocol.

210869[/snapback]

Ants never check to see where they have arrived, they just track the movement commands for the animation just like a normal player does by watching the screen. Yes, when they are exploring new areas they do try to harvest and use everything around them, but then they remember that information so that in the future the other ants will know what is there. They do use a slight amount of map data, the height data (to avoid walking off the edge), and objecct Id & names (to simulate them seeing the item). Matter of fact, and Ants view of the world is about what you can see in your normal screen with notes from other Ants aded, sometimes less. They don't even have the TAB map available.

 

In general, Ants use about or slightly less bandwidth then a normal player that is actively doing things.

 

When I suggested

Share this post


Link to post
Share on other sites
Yes, when they are exploring new areas they do try to harvest and use everything around them, but then they remember that information so that in the future the other ants will know what is there. They do use a slight amount of map data

210882[/snapback]

 

Bots can harvest and use map data then?

Share this post


Link to post
Share on other sites
By all means, implement this, but I can't see it catching on.

210876[/snapback]

 

I think a lot of things are silly too. But I think it's important to support new ideas. A lot of you that post here are great programmers and people look up to you for support of their ideas. I'm not saying support every idea blindly. I'm saying if it doesn't clearly and obviously harm the game, then why not say "Hey man, that's a new idea, go for it and let's see what happens with it."

Share this post


Link to post
Share on other sites
Bots can harvest and use map data then?

211088[/snapback]

The Ants were give specal permission by Entropy to do things like harvest, alch, fight. Without his permission, they would have been illegal.

Share this post


Link to post
Share on other sites
I think a lot of things are silly too. But I think it's important to support new ideas. A lot of you that post here are great programmers and people look up to you for support of their ideas. I'm not saying support every idea blindly. I'm saying if it doesn't clearly and obviously harm the game, then why not say "Hey man, that's a new idea, go for it and let's see what happens with it."

211093[/snapback]

In this instance, I know DNS and have done for a while. He's a fellow mod and a guild member. Therefore, he'd appreciate my honest comments and concerns. I don't deny that we should support people in their ideas, but I also believe they post here for honest opinion and discussion - and thats what they got.

 

IMO, the bandwidth conversation was blown completely out of proportion (meaning, it was never the main reason to not do this).

Share this post


Link to post
Share on other sites

Perhaps Im missing something here, but cant this be easilly done done via pm's?

 

bots are in essence just players so whats to stop something like

[babytradebot] > /daddybot #queriewhitelist badplayer

[dadybot] > /babytradebot #respnsewhitelist badplayer 1

 

Or if you want to be bandwidth efficient, and even mimic the way the server sends

[babytrradebot] > /daddytradebot #25 9 badpalyer

(25 being the used in this example as querie whitelist, 9 for data length, followed by data)

[dadybot] > /babytradebot #25 9 badplayer 1

(as above, but 25 now denotes return data of whitelist)

 

This is somethink Ive thought about before, and have actually created a bot guild (unused at the moment) so #gm can be used for communications.

 

Any approved bots are welcome to join this and we can work on a #gm protocal.

(the guild being AI (Artificial Ignorance) )

 

As a final thought perhaps a bot channel would be the easiest methode, ie a channel that ONLY bots can join, thus avoiding the requirement of them being in the same guild.

 

Im not saying any of the above thoughts are the perfect solution, however I see them as easy implementations of something that im not convinced is serverworthy.

(Not convinced it isnt server worthy either, but anyway thats my tuppenceworth... See what you think ;-) )

Share this post


Link to post
Share on other sites

well a pm system or channel would be the easyest to implement and write as all bots alteady have the code for parseing and sending messages and it would be reletively low traffic, far lower than the keep alives that the client sends. but it would be still possible to do a peer to peer or client/server archatecture manually with sockets.

 

What kinds of information should we share?

one thing that would be useful to me is a list of players and thair guild tag, i use this to state what guild the players are in but shareing this would be quite high to do ingame so a client/server socket archatecture would be a resonable idea for this.

 

Anyone have any other resonable idea's?

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

  • Recently Browsing   0 members

    No registered users viewing this page.

×