oestrich

oestrich

One of the cool things that has spun off of ExVenture is Gossip, located at https://gossip.haus/.

Gossip is a cross game chat platform for text games (aka MUDs.) Gossip uses websockets as the underlying protocol for servers to connect to. The protocol is heavily documented so that anyone can connect their game to.

While Gossip is a Phoenix application, it does not use normal channels so as to not force the Phoenix protocol on to other (possibly non-elixir) applications.

There are some pretty cool websocket things (I think) going on in this project and the corresponding Elixir client that I’ve written, located also on GitHub.

https://github.com/oestrich/gossip

P.S. The name gossip comes from MUDs where the main chat channel was called gossip.

Showing Posts 1 to 7

Ankhers

Ankhers

When naming this project, did you take into consideration the gossip protocol? It is a very well known protocol. If I were to see this project listed somewhere, I would think it was an Elixir implementation of it.

oestrich

oestrich OP

I did, but as far as I could tell there isn’t a specific implementation of a gossip protocol and was more of a generic term. So I went with it, I think it fits the theme of MUDs pretty well.

Qqwy

Qqwy

TypeCheck Core Team

Wooh! Very cool!

i love Multi-User Dungeons and I love what you’ve been building here. I’ll take some time to dig into the internals, because this is exactly my cup 'o tea. Thanks for sharing!

oestrich

oestrich OP

I launched a new piece of Gossip over the weekend called Grapevine. This part of Gossip is for players to go on and connect in game characters to their profile. The eventual plan is something akin to Xbox Live or the PlayStation Network, but for text based games.

To make this new site work, I have them plug into the normal websocket for games that then gets upgraded to have more events. The big set of events right now are the sync events. I just did a blog post about them and linked to some spots in each code base for how it works.

https://blog.oestrich.org/2018/10/gossip-sync-protocol

You can also find Grapevine on GitHub: GitHub - oestrich/grapevine: The MUD Chat Network · GitHub

oestrich

oestrich OP

Some new updates, Gossip now scrapes older games using the MSSP protocol to get player counts. This was pretty cool to write, there is a simple telnet client that parses out binary telnet options.

I’m also starting to work on achievements. I have the CRUD set up for them, and they’ll push over to Grapevine for display. It’s always really fun to get new things pushing across the backbone sync between Gossip and Grapevine.

Next I’ll be working on unlocking achievements for characters over on Grapevine, the fun part.

oestrich

oestrich OP

In the last month Gossip has been merged with and renamed to Grapevine. The split was fairly confusing so while it’s still early I went with combining the two sites.

Other news, I’m working on a general purpose telnet web client for older games. This uses an internal gen_tcp gen_server that processes the possible binary telnet options in the stream and then forwards the text to the web browser. I was also able to keep the session alive between browser reloads with a DynamicSupervisor.

https://s3.amazonaws.com/midmud/images/2019-01-31-grapevine-web-client.png

I also did this on my weekly live coding stream as well if you want to watch the supervisor part in action.

Something I still need to figure out is how to deploy a new release without taking down existing connections. I think this means I need to spin up separate nodes, having all of the telnet connections living on a separate note that rarely needs to be redeployed.

oestrich

oestrich OP

Since last week I’ve been able to add a set of generic gauges to the client, for games that support the GMCP protocol. The GMCP protocol is an out of band stream inside of a telnet connection. I’m hoping to do a blog post about the binary pattern matching that enables this parsing sometime in the next few weeks.

— All posts loaded —

Where Next? Top

Trending in Discussions Top

AstonJ
As the title says, please share what you’ve been up to with Elixir. Whether that’s been learning it, looking into it, making stuff with i...
2977 92995 915
New
caslu
I want to open this thread for you all to discuss and help those who really like Ash but are still hesitant to use it in a real project. ...
New
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
GES233
I’m posting this in response to Jose’s recent tweet (Cr. link) : People are sleeping on Elixir for a coding harness: Hot-code swappi...
New
marciol
It would be helpful to have a list of companies worldwide that hire engineers without prior experience in Elixir. Often, it can be quite ...
New
durvia
Anyone running long-lived stateful processes on BEAM? We’re building an AI agent runtime and would love to compare notes. We’re a small ...
New
AstonJ
This might be a bit disturbing for some but it’s happening - computers running on living human neurons. They’ve made them smart enough t...
New

Other Trending Topics Top

marciok
Hi there! We created Gust: A task orchestrator inspired by Airflow. For those who have never heard about Aiflow, it’s a Python-based wor...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Dmk
Xamal is a deployment tool for Elixir apps that deploys native releases to bare metal servers over SSH. It’s a port of GitHub - basecamp/...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
webofbits
Aludel - LLM Evaluation Workbench Aludel is an embeddable Phoenix LiveView dashboard for evaluating and comparing LLM prompts across mult...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews