[:1]My question is about server-wide channels, basically. I am trying to figure out why no-one (that I know of at least) has made addons that communicate like that (to any great extent, at least). For example it would be brilliant for setting up a "web" shop on your server, or any other similar service. Or, if you take it quite a bit further, "web" pages and other similar stuff.
The reason why I am saying this is that someone must have thought of this before. So what have made people not make this sort of functionality?
I ask because I can't see the problem, and it would be nice to know why this would not work.|||Quote:
My question is about server-wide channels, basically. I am trying to figure out why no-one (that I know of at least) has made addons that communicate like that (to any great extent, at least). For example it would be brilliant for setting up a "web" shop on your server, or any other similar service. Or, if you take it quite a bit further, "web" pages and other similar stuff.
The reason why I am saying this is that someone must have thought of this before. So what have made people not make this sort of functionality?
I ask because I can't see the problem, and it would be nice to know why this would not work.
It can work, and there are quite a few addons that use global channels -- MyRolePlay and the like do, for example. I've seen "virtual store" addons in the past, that let someone see what you offered for sale in an interface like the vendor one, even remotely.
There are some minor technical problems because there are no global addon channels -- SendAddonMessage() can't send to a channel. Thus, you have to not only join a channel, but also prevent the player from seeing the messages on it. You also need to make sure to leave the channel each time the player logs out, so if they remove your addon, they don't see the chat messages in it the next time they log in.
While I don't know of a technical reason not to, I don't know what Blizzard's stance on it is; they may discourage it.
For the application you're talking about, there are other problems: messages are limited to 255 characters, so unless your "web pages" are very short, you'll need to send them in multiple messages. Since you can't guarantee that other messages won't be sent in between your messages, you'd need to add identifying information to each message, so the addon can put the right ones together.
I also don't know how reliable the global channels are -- if messages can arrive out of order and/or be dropped, you'll need sequence numbers on them, and a way to request a re-send of a dropped message. And, of course, all of this information is going to take up some of your 255-character limit, reducing the amount of actual data you pass in each message.
Essentially, to do this with large amounts of data, you're going to have to implement a networking protocol on top of SendChatMessage().
You'll also run into other problems. For example, you say you want something like web pages. This implies some sort of addresses that the user types in... which in turn implies a naming authority, so that two people don't pick the same names for the web pages and confuse the heck out of the system. You *could* make their character name part of the web address... but that would mean that if you're on a different character, your "pages" would have different addresses. (And also, if you're going to do that, why use a global channel? Simply send a message directly to that character and have them send one directly back instead.)
And speaking of which -- anyone's "web server" is only going to be up while they're logged into the game. You could implement some form of clustering, so that multiple people can have the same "page name", and that page is available whenever any of them are on... but that brings its own set of requirements and problems.
So, in short, it's not impossible... but it's also not easy. Indeed, depending on how far you want to push it, it could get very, very involved.|||for this to work you would either have to have everyone on the server use the mod or join your channel.
And quit frankly as it is if i see anyone in trade spamming a goto this website and buy stuff i report spam them so my opinion is bad idea.|||Quote:
My question is about server-wide channels, basically. I am trying to figure out why no-one (that I know of at least) has made addons that communicate like that (to any great extent, at least). For example it would be brilliant for setting up a "web" shop on your server, or any other similar service. Or, if you take it quite a bit further, "web" pages and other similar stuff.
The reason why I am saying this is that someone must have thought of this before. So what have made people not make this sort of functionality?
I ask because I can't see the problem, and it would be nice to know why this would not work.
Can you say...Spam? Every player on a server would report this in about thirty seconds flat. There are very few server wide channels running, and spam is a reason why. We used to have more server wide channels, but anyone who survived the global lfg months cringe at the very idea.|||Quote:
Can you say...Spam? Every player on a server would report this in about thirty seconds flat. There are very few server wide channels running, and spam is a reason why. We used to have more server wide channels, but anyone who survived the global lfg months cringe at the very idea.
I think he's talking about custom channels... in which case, the simple answer is, "If you don't want to see it, don't join."|||Quote:
I think he's talking about custom channels... in which case, the simple answer is, "If you don't want to see it, don't join."
I get the don't want to see don't join custom idea, but I'm not entirely certain he is talking about custom channels. If so, then it's certainly not spammed...but how many of us would join a custom trade channel?|||Quote:
I get the don't want to see don't join custom idea, but I'm not entirely certain he is talking about custom channels. If so, then it's certainly not spammed...but how many of us would join a custom trade channel?
I think the idea is that an addon would be using it; if you have the addon, you're joining the channel, without even knowing it. Just like MyRoleplay -- it uses a custom channel to tell you who else on the server has the addon, but it handles the joining, so unless you're watching the messages it pops up when you log in, or you read the code, you'll never know about it.|||Quote:
I think the idea is that an addon would be using it; if you have the addon, you're joining the channel, without even knowing it. Just like MyRoleplay -- it uses a custom channel to tell you who else on the server has the addon, but it handles the joining, so unless you're watching the messages it pops up when you log in, or you read the code, you'll never know about it.
Yes. That's exactly it.|||Quote:
for this to work you would either have to have everyone on the server use the mod or join your channel.
And quit frankly as it is if i see anyone in trade spamming a goto this website and buy stuff i report spam them so my opinion is bad idea.
That could definitely be a problem, and I have thought about that for a bit. Personally I don't think it's going to be worse than what exists today with people spamming their guild-ads in trade, but I may be very wrong about that of course.|||Thank you very much for your well thought-out answer. No doubt you know a bit about these things.
Quote:
It can work, and there are quite a few addons that use global channels -- MyRolePlay and the like do, for example. I've seen "virtual store" addons in the past, that let someone see what you offered for sale in an interface like the vendor one, even remotely.
So what happened? Didn't people want it, or was it not searchable so then impossible to find vendors, or what?
Quote:
There are some minor technical problems because there are no global addon channels -- SendAddonMessage() can't send to a channel. Thus, you have to not only join a channel, but also prevent the player from seeing the messages on it. You also need to make sure to leave the channel each time the player logs out, so if they remove your addon, they don't see the chat messages in it the next time they log in.
While I don't know of a technical reason not to, I don't know what Blizzard's stance on it is; they may discourage it.
Yes, this is definitely stuff to consider, even though I don't think it's a big problem as such. From what I have seen, it may be a bigger problem that the send-functions for regular channels and the addon channels have different allowable characters, especially making UTF-8 text a potential problem for multibyte text.
Quote:
For the application you're talking about, there are other problems: messages are limited to 255 characters, so unless your "web pages" are very short, you'll need to send them in multiple messages. Since you can't guarantee that other messages won't be sent in between your messages, you'd need to add identifying information to each message, so the addon can put the right ones together.
I also don't know how reliable the global channels are -- if messages can arrive out of order and/or be dropped, you'll need sequence numbers on them, and a way to request a re-send of a dropped message. And, of course, all of this information is going to take up some of your 255-character limit, reducing the amount of actual data you pass in each message.
Essentially, to do this with large amounts of data, you're going to have to implement a networking protocol on top of SendChatMessage().
This part is covered already. I have even taken it a step further and allowed for transmission of tables by use of a nifty new function called ... SendTable. It wont take all kinds of data, but it allows strings, numbers, and boolean, and also nested tables. All this with throttling, handshaking, retransmission if needed, data-age retention, and a few more cool things.
Quote:
You'll also run into other problems. For example, you say you want something like web pages. This implies some sort of addresses that the user types in... which in turn implies a naming authority, so that two people don't pick the same names for the web pages and confuse the heck out of the system. You *could* make their character name part of the web address... but that would mean that if you're on a different character, your "pages" would have different addresses. (And also, if you're going to do that, why use a global channel? Simply send a message directly to that character and have them send one directly back instead.)
I have been thinking about this as well, and reached the conclusion that the only guarranteed way of individual naming is to use a character's name. And the "network driver" will reckognise requests for your alts, and pretend that that character is logged on if need be.
And as you say, why not send it directly then without the global channel. The global channel will mostly do for searches. You send a global search for (for example) "guild, RP, military". All pages that matches these tags will reply directly to the person searching, giving the browser (if that is what you use) a possibility to list all hits. A subsequent visit to those pages by the person who searched will be done directly without the global channel.
Quote:
And speaking of which -- anyone's "web server" is only going to be up while they're logged into the game. You could implement some form of clustering, so that multiple people can have the same "page name", and that page is available whenever any of them are on... but that brings its own set of requirements and problems.
I was actually considering building this, by utilizing the "network driver"'s ability to discriminate old data. That way, you could have like 5-10 people in a guild who hosts their "web-page", and a single person who edits and maintains it.
But for now, that has been put on serious hold as there are other things to make work first.
Quote:
So, in short, it's not impossible... but it's also not easy. Indeed, depending on how far you want to push it, it could get very, very involved.
Ye :)
Considering that I already have the network code written, the rest is just boring presentation and stuff like that.
There are a couple of more tweaks for the net-code considering UTF-8 and string-splitting, but that shouldn't be too bad. It's hard to test that particular piece, so a bit touch and go will apply here :P
But in the greater picture of it, it do seem like the major problems are on the tech side. Which is good news for me, really :)
No comments:
Post a Comment