Using IRC as a communications framework for other apps
Moderator: Supporters
Using IRC as a communications framework for other apps
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?
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?
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).
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).
-
- Posts: 12
- Joined: Wed Jun 30, 2004 2:37 pm
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.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 .
-
- Former UnrealIRCd head coder
- Posts: 811
- Joined: Sat Mar 06, 2004 8:47 pm
- Location: United States
- Contact:
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.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).
-- codemastr
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.
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]
-Denora Stats [http://denora.nomadirc.net]
-Omerta [http://www.barafranca.com]
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.
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.
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]
-Denora Stats [http://denora.nomadirc.net]
-Omerta [http://www.barafranca.com]