ID:111131
 
Keywords: chat, relay, terulia, trc
For those of you interested in using TRC but not the Forum Service, I've made some changes to Terulia Relay Chat that allow you to do just that. (As a developer, you have to create a TFS forum, but this is trivial. You don't have to do anything with your empty forum, and your players never have to visit the site.) Here's how simple it is:

as a developer:
1) Log into the Terulia Forum Service using your BYOND account.
2) Create a new forum to serve as your channel.
3) Download TRC.
4) Include the TRC library in your game.
5) Edit the TRC library file "1 - definitions.dm" and set DEFAULT_CHANNEL as the channel you just created.
6) Compile your game to include TRC.

Now, any players who join your game will be automatically subscribed to your channel, meaning they can begin chatting without any additional effort. Once you join the TRC network, you and your players will be able to chat with each other across all TRC-linked games.

And remember, as a developer, you are free to customize your implementation of TRC; you don't have to use the default TRC interface.

I can't continue to improve this system without feedback.
Let me know what YOU would like to see in future versions and updates to TRC.
Sounds great. I've been thinking of a chat program using this as the backend, like my old "Ceres Communications Base" program that used Artemis, except that this time the back-end would work.
I was thinking about making a game that's single player or small group multiplayer, but have unified chat across all game instances. This TRC thing caught my eye but still sounds complicated. I'd like to just add a browser control to the interface and make it display a web-based chat room.

Does this chat system rely on your forum being online? What kind of features does it have (buddy list, ignore list, etc)?
Forum_account wrote:
Does this chat system rely on your forum being online?

Yes. They are both hosted on the same computer and use the same database.

What kind of features does it have (buddy list, ignore list, etc)?

Some minor features: Users can ignore one-another. Channels (a.k.a. forums) can blacklist/ban people by key or can utilize the whitelist feature (where only people on "the list" can join). You can join a user who's not in your BYOND buddy list with /join. I.e. "/join Forum_account" gives me a byond:// link so I can join you directly. There's a /tell system...

But the most important feature of all is that your players can talk over your channel even when not playing your game. Some examples:

If I'm subscribed to both Forum Account's channel and IainPeregrine's channel, I'll receive messages sent to either channel and be able to respond accordingly.

If Iain implements a custom front-end as he described, then I could chat with FFO players while not logged into FFO (as I already do).

You could send out a message to people who are members of your channel (e.g. a "come join my game" type message) without spamming your BYOND pager with an "STA" message nobody's interested in. (The assumption is that if someone is subscribed to your channel, then they probably want to hear your announcements.)

If you decide to use the Terulia Forum Service (i.e. the actual forum service), then any time you make a post in your forum, everyone in the corresponding channel will receive an instant notification. This is highly effective as I've seen in FFO, where the moment a post is made in the popular FFO forum, it's viewership instantly jumps from zero to 4-8 simultaneous users.

TRC is not designed to be a private chat system - where your players can only communicate with other players in your own games. (You can certainly use it that way, but that is not the intent.)

TRC is designed to let your players communicate with each other even when they aren't all playing your game at the same time.
My project isn't nearly to the point where this is much of a concern, but I'll keep this in mind. I'm still not sure about the interface, I'd prefer to have something browser based but I guess it doesn't matter too much. I can pass messages from the BYOND server to each clients browser.

I'm less concerned about using the chat outside of the game, but I suppose any web-based chat would support that. My idea is that most people would play the game as a single player game and run their own world. The unified chat is a way to find people to play with. If you want to group with someone you join their server, if you're playing by yourself you're on your own server.

What kind of security/authentication is there? Can people use any user name?
Forum_account wrote:
My idea is that most people would play the game as a single player game and run their own world. The unified chat is a way to find people to play with. If you want to group with someone you join their server, if you're playing by yourself you're on your own server.

TRC can certainly do this for you.
(What you describe is one of the main roles I had envisioned for TRC when I first started writing it.)

What kind of security/authentication is there? Can people use any user name?

TRC uses BYOND's new client-based Export() authentication.
That is, you can't fake messages from someone who isn't logged into your game.

By default, users are identified by their BYOND key, but it is possible to set a nickname via the Forum Service.
You can set your nickname to anything besides an existing key or an existing nickname.
If you set your nickname to someone else's key (who isn't yet recognized by TRC), they will "reclaim" their name when they login to a TRC-linked game.
If in doubt, you can mouse-over someone's name to see their key.
Ok, sounds good. Now I just need to make the game that'll use it :-)