Using IRC as a communications framework for other apps

Talk about pretty much anything here, but DO NOT USE FOR SUPPORT.

Moderator: Supporters

Locked
rouben
Posts: 11
Joined: Wed Jun 30, 2004 3:45 am

Using IRC as a communications framework for other apps

Post by rouben »

Hi everyone!

I wonder if any people on here tried using IRC (be it Unreal or any other IRCd) as a communications framework/backbone for other applications?

My thoughts on this are that IRC's flexibility and simplicity makes it ideal to piggyback on. Just like BitTorrent uses HTTP, one could use the IRC protocol for things like p2p networks and on-line games.

An example of using the IRC protocol for on-line gaming would be to make the game clients (e.g. a shooter like Quake) to connect to an IRCd via TCP/IP and join a channel specified by the player. The game client would then simply talk on the channel to announce things like player movement, who shot what and in what direction, hits, misses, powerup pickups, e.t.c. Basically everything the clients need to keep track of each other. Combine that with IRC's powerful features (like channel keys, SSL support on Unreal) and you got yourself an extremely powerful platform that you can build on.

Ummmm... What do you guys think? :?:
codemastr
Former UnrealIRCd head coder
Posts: 811
Joined: Sat Mar 06, 2004 8:47 pm
Location: United States
Contact:

Post by codemastr »

If I'm not mistaken, StarCraft uses IRC, or at least a modified version of it. I've never actually checked the packets to be sure, but it certainly has an IRC feel to it. If it isn't using IRC, it was certainly designed with IRC in mind.
-- codemastr
aquanight
Official supporter
Posts: 862
Joined: Tue Mar 09, 2004 10:47 pm
Location: Boise, ID

Post by aquanight »

Well, you certainly don't need to make any modifications to the IRC protocol to do this. CTCP can work wonderfully for this purpose...

Of course, some netadmin joins the channel and then +Cs it. Then the apps are screwed, unless ChanServ MLOCK's +C off, or the apps use private CTCP where possible.
Syzop
UnrealIRCd head coder
Posts: 2112
Joined: Sat Mar 06, 2004 8:57 pm
Location: .nl
Contact:

Post by Syzop »

Bad idea for most games.
If they are very realtime and use quite some traffic / there's lot of action (as you mention, games such as: quake, Unreal Tournament, etc..) it goes horrible... A seperate protocol on top of UDP is usually much more suitable (for a lot of reasons, things like retransmits, speed, etc.. if you have ever coded games you know why). Not to mention that you usually need a 'controlling' server.
For smaller games and/or less demanding stuff (RPG? ;p heh) it can be quite useful since you get the whole "network infrastructure" for free ;).

What some games DO have (like Unreal Tournament) is a 'chat' option by which you can connect to irc... (and it also shows private messages just as game messages so you can see them while playing).
roothorick
Posts: 12
Joined: Wed Jun 30, 2004 2:37 pm

Post by roothorick »

Syzop wrote:For smaller games and/or less demanding stuff (RPG? ;p heh) it can be quite useful since you get the whole "network infrastructure" for free ;).
Funny you say that... I have an MUD ( = Multi-User Dungeon, essentially a text-based MMORPG) engine written in Python that runs on top of an existing IRC server (it's one of my key reasons for running my own IRC server, in fact) currently in heavy development. It doesn't even support monsters yet but everything comes with time.
codemastr
Former UnrealIRCd head coder
Posts: 811
Joined: Sat Mar 06, 2004 8:47 pm
Location: United States
Contact:

Post by codemastr »

What some games DO have (like Unreal Tournament) is a 'chat' option by which you can connect to irc... (and it also shows private messages just as game messages so you can see them while playing).
Yeah, that's pretty much what I meant with StarCraft. When you connect to the server, you join a chat room (which very much resembles IRC). Then from there, you select nicknames and begin the game. But the game occurs over a completely seperate connection, not over the IRC connection.
-- codemastr
w00t
Posts: 1136
Joined: Thu Mar 25, 2004 3:31 am
Location: Nowra, Australia

Post by w00t »

Anyone here played Uplink?

You can actually purchase an in-game IRC client to chat, and ask for general help on the game-- IN game.
-ChatSpike IRC Network [http://www.chatspike.net]
-Denora Stats [http://denora.nomadirc.net]
-Omerta [http://www.barafranca.com]
tiko
Posts: 9
Joined: Thu Jul 01, 2004 9:29 am
Location: 7sinzNet
Contact:

Post by tiko »

Tribes 2, from sierra/dynamix also uses IRC as it's in-game chat software.
AngryWolf
Posts: 554
Joined: Sat Mar 06, 2004 10:53 am
Location: Hungary
Contact:

Post by AngryWolf »

Oh, those nice old days when I used to play Unreal Tournament! :) It was my favourite game for a long time (1999-2002). Its built-in IRC client was my first client that I ever used and learnt IRC with. :) In connection with the topic, when I was in a clan (namely Wolves), I wrote a simple bot for my team that provided some in-channel commands to query UT servers. It was able to get playerlists, server information, etc. The bot itself used QStat, a command-line tool to gather real-time statistics. It supports a lot of Internet games, and it's also suitable for scripts.
rouben
Posts: 11
Joined: Wed Jun 30, 2004 3:45 am

Post by rouben »

Thanks for your input, everyone. I thought that playing real-time sensitive games could be a problem via IRC... however it could still work over a LAN where lags aren't that great. With regards to organizing and controlling everything, one of the things I wanted to avoid (and I think is possible) is to use a p2p approach to organize and self-control different game clients. The biggest issue there is that when you allow the clients a bit of privileges, there will always be people who will come out with a tainted client for cheating, cracking e.t.c.
w00t
Posts: 1136
Joined: Thu Mar 25, 2004 3:31 am
Location: Nowra, Australia

Post by w00t »

Yes, and using IRC as a communication medium would render your protocol a lot easier to read than normal ;)
-ChatSpike IRC Network [http://www.chatspike.net]
-Denora Stats [http://denora.nomadirc.net]
-Omerta [http://www.barafranca.com]
Locked