Gossip Chat Network

Hey everyone, I run Gossip, https://gossip.haus/, a new cross game chat network. I did an announcement post over on the MUD Coders blog last month.

We’ve got a few libraries set up at the moment: it’s built into my framework ExVenture, a base Elixir client, there’s a Ranvier bundle, and someone is working on a C library so look for that soon!

And to answer your potential question, “Why not just use the I3 network?” I started Gossip so we could utilize new standardized technologies. Gossip is TLS and uses JSON which every language should have a parser for.

If you’re interested, check out the docs at https://gossip.haus/docs. See you on the network!


Some new updates for Gossip!

There is a new event called games/status that lets you query for information about currently connected games, as well as any game individually if you know it’s short name. See the docs for more information.

As part of this you can also set how to connect to your game as part of the settings for your game. You can set a web client url, a telnet host:port, and a secure telnet host:port. All of which will get sent out as part of the games/status event above. Soon I’ll have this connection information displaying on the website.

Lastly, there is a new node package to connect to Gossip. See it on GitHub.

Some more updates!

I started Grapevine to be a companion site to Gossip. It’s the player side, where players can register and connect your in-game characters to your profile. You can also chat on Gossip from this site and view any game connected to the network.

The bare site is pretty slim at the moment, but there are plans going forward to add extras to Grapevine, such as achievements. If this sounds interesting to you, let me know and we can work on what achievements looks like together!

Over the weekend I launched an OAuth 2.0 provider for Grapevine. If anyone has a web login for their game you can set up Grapevine login. ExVenture has this set up and you can see it in action on my own game, MidMUD.

The docs for how to get this set up are available over on Gossip. You don’t need to be set up as a always connected game to take advantage of this.

Other updates for Grapevine, Gossip collects more information about games to provide a small listing page and also displays which games are online and who is in them.

Gossip now tracks online player count and displays a nice player graph. It’s still fairly basic as I want to let data collect for the next bit before going too deep with charts.

You can see this in action over on Grapevine:

I did a monthly update post for ExVenture and Gossip is included in it. About half of the updates are for Gossip and Grapevine if you want to check them out:

Also a reminder that Gossip is open source! If anyone wants to check out the underlying tech the repo is up on GitHub.

Gossip got this a bit ago, but you can post in-game events to display on Grapevine. This lets you built a calendar on Grapevine for players to look at. I am planning on setting up a global RSS feed for people to follow to view upcoming events.

To post new events, register your game over on Gossip and click “View Events” to add and manage your events. These will be viewable on Grapevine on your game’s profile page.

If anyone has an RSS feed for in-game events already or another way the manage these events, let me know and we can try to make that more automated!

I’m starting to work on a MSSP scraper for Gossip, so games can register and still get player counts tracked without having to fully connect to Gossip. This will let their game profile page still display player counts. The color will most likely be different than the player count for the socket, but the data will still be there.

In the mean time I started on a page where you can check to see what Gossip sees about your game. It should handle the most common ways games send MSSP:

  • sending IAC WILL MSSP on connection
  • sending IAC WILL MSSP after negotiating the term type
  • sending mssp-request at the login prompt for in-band mssp data

If your game has MSSP but Gossip can’t parse it let me know! I went off of the TinTin++ page for MSSP when writing this client.

Gossip now records player stats for games with MSSP. It polls once an hour and creates a nice looking graph from it. You can see a sample MSSP game here:

To get this set up for your game, register an account on Gossip, register your game, and then add the telnet connection information. Gossip will probe the connection to see if MSSP is available, and if it is start recording every hour. It will take ~2 hours before the graph starts to display due to not enough data points.

I’ve started work on the achievements part of Gossip/Grapevine. Right now all you can do is manage achievements and have them publicly displayed. This is a decent chunk of the work, so we’re pretty far along. The only hard part left is handling unlocking achievements for characters, which is kind of the whole point :smile:.

I am not sure when I’ll get to the unlocking side of this, as I want to get basic achievements in place in ExVenture before moving too far long on Gossip. If anyone has a game with achievements and wants to test this out, let me know how it goes!

Gossip and Grapevine have merged into just Grapevine. The split was sort of confusing, so I went with merging them Grapevine into Gossip and then renaming everything to Grapevine. This feels like a better name for the whole network in general.

The new site also has an improve listing page for all of the games. The default view is for any game that is considered online (either connected to the websocket or has been scrapped by MSSP within the last hour.) And has a few filters. I’ll slowly add to these filters as more games connect to the socket or get scrapped by MSSP.

The MSSP check also now supports PennMUSH servers.

I’ve added image uploads, starting with a cover for each game. If you upload cover art then your game appears on the home page and it looks pretty nice. I’m going to continue making the home page look nicer and more “store front” like.

I’ve started work on a web client that you can optionally turn on for your game. Just the foundation for now, the actual client has the same features as plain telnet but pushes through the browser (and announces itself as Grapevine in TTYPE.)

This feature isn’t publicized on the web site yet, waiting a little bit longer to make sure it’s stable before considering it good to go. I also need to figure out a bit more around how its deployed to make sure a new website deploy doesn’t disconnect everyone.

Until then, you can try it out on a game that has already turned it on or turn it on for your own game!

The Grapevine web client now supports GMCP gauges! This doesn’t support the KaVir protocol snippet yet as it doesn’t follow the protocol as described on https://www.gammon.com.au/gmcp. I’ll eventually get it working for games that use this.

This is know to work with ExVenture games and Darkwind. It should work for any game that follows the protocol on the gammon page.

I just added setting a CNAME to grapevine to load your game’s web client, should you have that enabled. If anyone is interested in that, let me know as it requires some manual intervention still (setting up TLS certificates and a few other minor things.)

Very cool!

Perhaps you could make a Python library to encapsulate those into methods, for simplification?

Someone has a python file in the gossip clients repo.

The author is in the mud coders guild if you have questions. If you have questions about the websocket protocol I can help answer them here.

1 Like

Some recent updates:

  • The web client connects to TLS ports if you have one for your game, a small lock icon is displayed in the bottom left corner of the client
  • As an admin, see what web clients are open to your game, and if configured the logged in user’s name (which is loaded via a GMCP message)
  • Some minor mobile updates
  • I started working on basic site hosting for games

Also exciting, I was a sponsor of a local board game convention showing off Grapevine in hopes to get some new and returning players interested in MUDs again. I handed out roughly 110 fliers to attendees and got some good responses from everyone stopping by.

1 Like

Some new updates in Grapevine-land, there’s a new newsletter called The Grapevine Gazette. I’m hoping to include any updates on games in the past month along with upcoming events for games on Grapevine. If you have any updates please send them to me! I’d love to include them.

As part of this I’m also working through expanding on the events part of Grapevine. I added a listing of upcoming events in the header for now. When more games add events I’ll keep working on this, and start looking at doing an ical feed or rss.

1 Like

Some updates for the web client:

I’ve been working on a new test server to help drive the web client. It’s called Spigot and you can find it’s source on GitHub.

The first thing I’ve worked on adding for this is an IAC flow for using “OAuth” through a TLS encrypted session. I still need more docs around this, but if the server supports it (like Spigot) you’ll get an authorization window for whatever scopes are requested, then you’re just signed in. Next time you load the page as long as there are no new scopes you’ll just be signed in like magic.

I’m pretty stoked about continuing to push this forward and writing out docs for this as a proper spec. Until then this is the general flow that gets used:

Client: IAC SB OAUTH Start {host: "grapevine.haus"} IAC SE
Server: IAC SB OAUTH AuthorizationRequest {response_type: "code", client_id: "...", 
  scope: "...", state: "..."} IAC SE
Client: Requests confirmation from the user, displays a standard OAuth request asking
  for scopes and the connection
User: Approves request
Client: IAC SB OAUTH AuthorizationGrant {state: "same as above", code: "..."} IAC SE

Server then goes through standard OAuth

Once this gets touched up I’m going to start adding in new stuff to the web client. Things like opening modals for help or wizards, sounds and music, and text to speech. It’s an exciting time for the web client!

1 Like