"Outsourcing" chat to IRC
While writing the server for my online game it occured to me that if the chat element were handled by an external IRC server then my game server would be free to do more game specific things instead. Reading about the IRC protocol it seems like a pretty easy task (and a fun new thing for me to learn) to create an invite only channel on some IRC server and then code an IRC client into my game, and a channel bot/manager into my server. I think the idea would work. The benefits you get from an isolated chat server seem quite appealing, giving an extra element of security to the system. It would keep my bandwidth usage down which is quite important as any server I use will probably have a pretty weak NET connection. My question is, has anyone else attempted something like this? and is it ethical to use an IRC server for my own purposes? My game will be free which makes me feel a little less cheap - than say if Blizzard decided to do the same thing! I can't seem to find any 'terms of service' type information on 'EFNet' or 'freenode.net' saying I can or indeed cannot use their facility for this purpose... I realise this is technically not a programming question, but I will end up writing an IRC client for my game client so if anyone has any tips on that i'd be grateful. I also wasn't sure where else would be a better place to post this.
It is a trivial task to implement broadcast chat, team, and ToPlayer messaging if you've already got network communication working. Perfectly fine for any non-mmo and far less work and headache than implementing your own irc client.
It's external, you have no control over it.
Most of online games go with some form of IRC anyway. The technical side is the least of problems.
But. Some ISPs might block certain IRCs. Person might be IP banned from that IRC. If something happens, your game loses its chat. Server might enforce certain rules, and auto-kick people. There might be user limit. It might even be against terms of service. Server might not even scale to your numbers (EFNET apparently had 12000 max users, with 3000 now, unreliable info though).
I do not think there's anything wrong with it per-se, but you need to answer the reliability and availability concerns, and make sure it's within provider's terms of service. You'll also need to take into account limitations imposed by such servers.
I wouldn't use such solution, since you're essentially piggy-backing on someone's service for your own product. This would be the same, as mirroring your game download over hundreds of free myspace/geocities/yahoo/"insert provider here" pages, to ensure everyone can download. You can quickly get into trouble here.
Most of online games go with some form of IRC anyway. The technical side is the least of problems.
But. Some ISPs might block certain IRCs. Person might be IP banned from that IRC. If something happens, your game loses its chat. Server might enforce certain rules, and auto-kick people. There might be user limit. It might even be against terms of service. Server might not even scale to your numbers (EFNET apparently had 12000 max users, with 3000 now, unreliable info though).
I do not think there's anything wrong with it per-se, but you need to answer the reliability and availability concerns, and make sure it's within provider's terms of service. You'll also need to take into account limitations imposed by such servers.
I wouldn't use such solution, since you're essentially piggy-backing on someone's service for your own product. This would be the same, as mirroring your game download over hundreds of free myspace/geocities/yahoo/"insert provider here" pages, to ensure everyone can download. You can quickly get into trouble here.
Yes, it can be done and has been done. For security, you probably want to run your own server (and thus net) specific to the game, though. You also have to do something about IRC authentication to prevent people from spoofing identities in chat.
enum Bool { True, False, FileNotFound };
I've thought about this, but I'm deciding to do it within the server currently... It almost seems to be more work to build a protocol on a protocol to use an IRC server... It would depend on the scope of chat though.
Although: I am thinking of having the server have a built in IRC client so it can be monitored remotely for debug purposes. (IRC bot, but so much more =)
Although: I am thinking of having the server have a built in IRC client so it can be monitored remotely for debug purposes. (IRC bot, but so much more =)
Building a chat system into a game is so simple that I don't see why you'd want to do it another way. The difficulty is really all in the GUI, which you'd have to make anyway. And chat events take up an almost negligible amount of bandwidth in any sort of fast-paced game.
I worked on a AAA game that used IRC for lobby/global chat. As already mentioned; Way, way to many problems. Our custom chat protocol is much more flexible and much more used.
Hehe, well it seems pretty clear no-one here thinks this is the best idea!
Since starting this thread i've written a simple IRC chat client, and a channel bot to 'host' things. This was a fun task in itself and I've learned quite a bit about the protocol and how to cope with differing server implementations.
It is clear that to use 100% IRC for any final product wouldn't be the right thing to do, but on the surface it seems like quite a good leg-up solution for the very short term, before I get some kind of chat server built into my game server.
I might leave 'universal' IRC support in as an aside to the main chat, as it'd be a shame to throw away the work. I'm not sure exactly what i'll do TBH... thanks for all the replies anyway, you've pointed out several things I hadn't thought of.
Since starting this thread i've written a simple IRC chat client, and a channel bot to 'host' things. This was a fun task in itself and I've learned quite a bit about the protocol and how to cope with differing server implementations.
It is clear that to use 100% IRC for any final product wouldn't be the right thing to do, but on the surface it seems like quite a good leg-up solution for the very short term, before I get some kind of chat server built into my game server.
I might leave 'universal' IRC support in as an aside to the main chat, as it'd be a shame to throw away the work. I'm not sure exactly what i'll do TBH... thanks for all the replies anyway, you've pointed out several things I hadn't thought of.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement
Recommended Tutorials
Advertisement