IRC in-game

swalkswalk Say hello to my little friend. Join Date: 2011-01-20 Member: 78384Members, Squad Five Blue
Hey follow community members!

I was talking with Brian Cronin yesterday about how feasable it is to implement IRC ingame on the main menu as a tab, alá Play, Options etc.
He told me it should be fairly easily done, but that they don't have the time to implement and maintain it. This is why I'm coming to you guys, since I'm unable to do this myself.

IRC is used by a decent part of the european community to find matches, players etc.. But many people either don't know about it or won't install a client. Having a client in-game that autojoins quakenet, #ns2.search and maybe even #nsl for league play, could be really benefitial for the competetive community as it will more than likely be accepted as a main communication platform if we can mod this and let the developers implement it.

Currently there is no main communication platform for competetive games, people are using different ways of contacting eachother. Like; Steam, IRC etc.
Steam is unfortunately not very friendly for mass communication as the friends system isn't build for broadcasting messages for many users. You have to find specific people(can be hard, especially if you're new and don't know anyone) and message them all directly one by one.
IRC is better in that regard, you idle in a channel with many users and everyone can see what everyone writes, which makes it easy to broadcast that you're looking for a match for example.

I hope someone with the ability to do this can see the benefits and pick it up to help the competetive community and ns2 in general!

Comments

  • ArtfunkelArtfunkel Join Date: 2013-05-10 Member: 185184Members
    All that modders can do internet-wise is send and receive HTTP requests via a couple of Spark engine functions. Lua doesn't natively support network communications of any sort, and while there is a C library out there which adds it I've read on these forums that Spark mods have been prevented from loading new C libraries.

    I would be very surprised if it was possible to squeeze IRC through the two HTTP functions we have access to. Even if it was possible it would be a lot of work.

    Is there any particular reason why people don't use Steam chat like IRC? You can idle in a group chat room in just the same way. If you're in a group you can also post announcements to broadcast messages to other members.
  • McGlaspieMcGlaspie www.team156.com Join Date: 2010-07-26 Member: 73044Members, Super Administrators, Forum Admins, NS2 Developer, NS2 Playtester, Squad Five Blue, Squad Five Silver, Squad Five Gold, Reinforced - Onos, WC 2013 - Gold, Subnautica Playtester
    Since they already have Awesomium available, if some hooks into it were available to use HTML5 styled sockets, you should be able to connect to an IRC server. It might require a wrapper or module for the IRC server, but should work. I wouldn't be surprised if there isn't a library that does this already. Food for thought anyways


  • TyrsisTyrsis Join Date: 2002-11-15 Member: 8804Members
    The Awesomium hooks are lacking (ie: keyboard input is not passed to awesomium, and they haven't exposed a bunch of other stuff like passing data from javacsript -> game and vice versa).  It would actually be so much simpler to just do web based IRC client in an awesomium container using a backend, but because there's no keyboard input hooks into awesomium, that won't work.  I actually put in a few requests, but didn't get any replies, so I doubt anything will get implemented in that respect.  (Most of my mods are actually just pages in an awesomium container, since creating UI is soooooo much easier as HTML than doing in game UI objects, especially since you can make the browser transparent.  So you can basically do an entire in game UI as HTML if you wanted, though you can't really interact with in-game variables).

    The way to do it right now would just tunnel IRC data through HTTP requests to a backend that handles the IRC.  Not hard to do really.
  • McGlaspieMcGlaspie www.team156.com Join Date: 2010-07-26 Member: 73044Members, Super Administrators, Forum Admins, NS2 Developer, NS2 Playtester, Squad Five Blue, Squad Five Silver, Squad Five Gold, Reinforced - Onos, WC 2013 - Gold, Subnautica Playtester
    Yo dawg. I heard you like to relay your relay, so I setup a relay for your relay that relays  :P

    Dumb jokes aside, what Tyrsis suggests would work as well. It might work with off the self Apache modules (mod_proxy, etc)
  • DarkSeraphDarkSeraph Join Date: 2004-06-07 Member: 29174Members
    I don't understand why people don't idle in the Steam Group chat if they want to 'hang out' somewhere. It's easy to join if you're already in the group and is already build into the game, accessible when you hit shift+tab. 

    This seems like a lot of work for a feature that currently exists and is underutilized.
  • BicsumBicsum Join Date: 2012-02-27 Member: 147596Members, Reinforced - Gold
    I started to work on something like that a while ago. The idea was to be to call a server admin via an ingame chat command.

    My first attempt was the mentioned c library (LuaSockets). I was sure dll loading was possible, because the old menu mod also did that and so I was testing with a stand alone lua interpreter since I wasn't at home to work with the ns2 client. When i got that working and i wanted to implement it into ns2, but schimmel told me that dll loading isn't possible anymore (for obvious reasons actually - duh).

    My second attempt was the sendhttp function. I was working with Coldeath on this. The idea was to use our webserver as proxy (like mentioned above). The problem was that we couldn't install a php irc bot on it, because the script timeout was handled by the provider. This, plus the lack of time kind of made us stop working on it.

    In theory it is pretty simple though.

    There only "problem" with this attempt is that it will not be in real time when you try to contact ns2 from irc, because you ns2 can only pull new information from the webserver and so you'd need a checkinterval. Not sure if that would have an impact on performance if it was set to 1 second or so.
Sign In or Register to comment.