Recent Posts

Grapevine Updates for November 2019

Posted on 30 Nov 2019

The last month of Grapevine continued background "unseen" changes. The big deal for this month was splitting off the socket code to its own Erlang node. This lets me redeploy the website without taking down the chat socket.

I also rebranded the Patreon to be aimed at myself vs any of the individual projects. I think this makes sense going forward since I have a handful of projects all in the MUD space but separate as entities; Grapevine, ExVenture, and Titans of Text. The new patreon is at patreon.com/ericoestrich.

Links for ExVenture & Grapevine:

New Socket Node

The main new big feature is the web chat socket is now living on its own Erlang node. What this means is when I deploy the website, the socket won't have to go down. This means chat should get disconnected much less often. It will still go down if I need to deploy the socket code, but that will be much less than the website.

Some day I might get adventurous enough to get hot code loading working so it never goes down. To get here, let's make Grapevine hoppin'.

Spam Users

Grapevine for a while has been getting some spam accounts being created, which hasn't been that bad but after a few months the users have finally gotten to the point where I needed to do something about it. Mostly to prevent my mail reputation from going down the drain.

To prevent spam going forward I added recaptcha to the sign up. This is just the simple "I am not a robot" checkmark. I also cleared out any account that looked like a spam account from my unverified email list. I hopefully didn't delete anyone's real account, but clearing out 30+ pages of fake emails is a mind numbing thing.

New Games

We have a new set of games showing up on the chat, Schism from ChatMUD made a MOO client for chatting so a few more MOOs have shown up and the chat is active (finally!)

It seems like Grapevine is starting to reach a critical mass of games and players to be active throughout the day. Which is really exciting.

Decanter

I'm still moving on getting Decanter set up but since I was fairly busy last month prepping for a conference talk (a keynote for The Big Elixir) it got side tracked. I'm hoping we can have this ready to go by the start of next year.

For those who don't know Decanter is going to be a place to post game news and updates. Think a gaming news site but specifically for us.

Social Updates

We have a few new patrons this month, welcome! Thanks for supporting both ExVenture and Grapevine. If you would like to support both projects, check out the Patreon.

Titans of Text has had a lot of episodes come out. If you're in the MUD community and want to be on an episode, reach out to us! We want to have you on.

Early this month I gave one of the keynotes for The Big Elixir. The video of this should be up soon. I think it went very well and I got to show off how Grapevine and ExVenture worked internally. I will also be giving this talk at Lonestar Elixir in February, maybe I'll see you there!

Next Month

I was previously going to swing back around to the web client, but now that the chat is being used I might work on some admin tools for that. They're sorely lacking at the moment. I also noticed a lot of you all trying to use emotes and complaining that they didn't work well ๐Ÿ˜ƒ, so figuring something out for that will be good.

Grapevine Updates for October 2019

Posted on 31 Oct 2019

The last month of Grapevine has started work on a new part of Grapevine we're calling Decanter. This will be a place to share news about all things text.

I am also giving one of the keynotes for The Big Elixir next week and have been working hard on that. I hope to see you there (or maybe on YouTube when it's uploaded!)

If you're new please check out the ExVenture & Grapevine Patreon page and consider supporting to help pay for servers or get your own hosted instance of ExVenture!

Links for ExVenture & Grapevine:

Decanter

Decanter is a new part of Grapevine that will let you publish news about your game into a centralized place. Think of it as a new gaming news site that only covers text games, the best kind of games.

It's still under construction so it's hard to show what it looks like yet. I haven't really gotten the styles in place for it to be public. But if you're extra curious, you can download the latest Grapevine code and check it out locally.

The plan is for anyone to submit a news article, and one of our editors will review it and publish the post. Posts are done in markdown and you can preview before submitting them. I still need to let you optionally attach your game to a post. If you attach your game I'll be able to display it nicely so people know what they're reading about.

We're hoping that this leads to a better landing page for news and updates than say /r/MUD. This works well, but I think we can deliver a much better landing spot for people new to MUDs and looking to learn more and see what's out there.

Hacktoberfest

Grapevine was part of Hacktoberfest this year and I got a lot of great submissions! I was happy to see new people (or people at all!) submitting PRs and enhancing Grapevine.

Some of those include: - An updated settings sidebar which lists all of your games, removing the table of them - Analytics for events, so admins can see how many times they're viewed - Generating a session token for the web client for mobile app usage - Documentation updates and fixing broken seeds

Thanks again to everyone who submited a PR during October!

Small Updates

  • The HCL parser was renamed to UCL
  • UCL parses comments now

Social

We have a few new patrons this month, welcome! Thanks for supporting both ExVenture and Grapevine. If you would like to support both projects, check out the Patreon.

Titans of Text has had a lot of episodes come out. If you're in the MUD community and want to be on an episode, reach out to us! We want to have you on.

Once again, I'll be at The Big Elixir next week giving the keynote on Friday. I'll be talking about moving from an entirely stateless application to a stateful application using ExVenture and Grapevine as examples of you can achieve that. I think it's turning out to be pretty good so I hope to see you there.

Next Month

For next month, I'm hoping to wrap up the MVP of decanter and it loose on the world. I may also play around with some web client stuff again or actually get back into ExVenture. I've been having a lot of fun extending MidMUD for NaMuBuMo and it's made me feel nostalgic for working on ExVenture again.

Grapevine Updates for September 2019

Posted on 30 Sep 2019

The last month of Grapevine has picked up pace, I've been working through a lot of little things here and there to get back into the development groove.

If you're new please check out the ExVenture & Grapevine Patreon page and consider supporting to help pay for servers or get your own hosted instance of ExVenture!

Links for ExVenture & Grapevine:

Mobile Client

I started on a mobile client for Grapevine. This uses react native and connects similarly as the web client. This means it will proxy everything through my servers. I am going to head this route because it will be significantly less development to have a web client and a mobile client going if they use the same telnet backing code.

I haven't spent a ton of time of it yet, but after a few hours I have it connecting, displaying, and sending text to a real game. It's pretty encouraging.

Grapevine's mobile client

Hosted Sites

I spent a bit of time working on the settings for a hosted site. I mostly wanted to figure out how to allow for safe markdown display based on input from anyone. I got this working by finding a library that will strip text down to only markdown allowed tags.

See Spigot's hosted site.

Spigot's hosted site

IO Lists

After ElixirConf this year I switched Spigot to using IO lists instead of strings. This got a pretty great speed boost, which you can read more about on the SmartLogic Blog.

Small Tweaks

  • Receive an alert anytime your game has a failed scrape
  • Admin panel for channels
  • Fix bug when creating a new game and adding an image
  • gossip-elixir is on latest telemetry
  • API for the games page
  • Record timestamp of activity through the web client
  • Social fields on a game
  • Generic events
  • List current events on the homepage
  • Display the play button even when signed out
  • Rate limit channel sends

Social

We have a few new patrons this month, welcome! Thanks for supporting both ExVenture and Grapevine. If you would like to support both projects, check out the Patreon.

Titans of Text has had a lot of episodes come out. If you're in the MUD community and want to be on an episode, reach out to us! We want to have you on.

Next Months

Next month is NaMuBuMo, so I will hopefully be working on a world for that. I've been playing around with a file based format for running a game, as a twist to ExVenture. We'll see if it sticks, but I like where it's headed.

Grapevine Updates for June - August 2019

Posted on 28 Aug 2019

The last few months of Grapevine has been fairly slow, but I'm getting back around in the swing of things and finally feel like I have enough small things to talk about in an update post!

If you're new please check out the ExVenture & Grapevine Patreon page and consider supporting to help pay for servers or get your own hosted instance of ExVenture!

Links for ExVenture & Grapevine:

New Game Stats

The most recent additions are new statistics for games that have MSSP or are connected to the web socket. There are three new graphs: the last 48 hours with min/max/average, the last 7 days of player counts, and the last 7 days broken up into hour of day to show the min/max/average of connected users per hour.

These are pretty neat to see with real statistics. You can see player count fluxuate as they come and go during the day and night. I'm looking at adding more historical data as well, but there is only ~8 months of data on the server so there isn't a huge use right now until more data builds up.

Below is a screen shot of the later two charts:

Grapevine game statistics

New Web Chat Client

During June, I updated the web chat client to not suck. I'm pretty sure it was broken sometime after the merge of Gossip and Grapevine and no one noticed, me included. It is now much nicer, and looks very similar to the web client for playing games.

This merges the tab interface previously in place, to show a single stream across all channels, which is fairly similar to what you'd be expecting in a game connection. You can see which channel you're chatting in with the select box next to the text area. You can swap channels by doing using a slash command to prefix your message (e.g. /gossip hello, to switch to the gossip channel and say hello.)

Grapevine web chat

Small Tweaks

  • Discord link for game profiles
  • Breaking apart the data layer into a separate application
  • Records chat messages for reply in the web chat
  • Connect/disconnect buttons in the web client
  • Hide players in the socket connection
  • Nicer error for web client is enabled for signed in users only
  • Save web client sessions for viewing length in the admin

Social

We have a few new patrons this month, welcome! Thanks for supporting both ExVenture and Grapevine. If you would like to support both projects, check out the Patreon.

Titans of Text has had a lot of episodes come out. If you're in the MUD community and want to be on an episode, reach out to us! We want to have you on.

Next Months

I'm still starting to slowly get back into growing Grapevine again and I don't want to jump too deep back into it to completely burn out. So I'll most likely keep doing small tasks and possibly work on some clustering stuff from before as that's pretty exciting.

Grapevine Updates for May 2019

Posted on 31 May 2019

The last month of ExVenture and Grapevine continued the pace of last month, mostly continuing work on the web client and test server.

Links for ExVenture & Grapevine:

Modals

New to the web client are modals. These are sent as a known GMCP message that opens up a modal. The text is processed as ANSI escape codes for coloring and acts as a draggable terminal for now.

There are more plans in the future but I got it working at all and kept moving on. I would like to make this be stylable from the game, to enable some pretty cool flows. Letting users have a wizard of prompts, receiving input, button presses, display images, etc. Lots of cool things can be done here and done fairly generically from the game's perspective, so another client like Mudlet can have a package that does the same.

Grapevine web client with modals

Color Processing

I completely rewrote the color processing part of the web client. Before I was using Anser and in a fairly bad way. Partially sent escape codes didn't process properly and I wasn't merging the buffer after processing it. It was a stop gap that worked well enough to get where we're at.

The rewrite is a fully custom parser utilitizing small bits from Anser (namely the really ugly regex to parse the escape code properly.) Past that it handles parse errors and merging new text in to update the last line. All of the lines except for the last line are considered "sealed" and that lets react not have to re-render anything once it renders. This keeps the parse and DOM updates to a minimal.

So far this new parser is very fast, sticking to about 0.3ms for each step. I am pretty happy with this and may pull it out into its own package.

ExVenture

Movement is starting on ExVenture again. I fixed a few bugs for a new patron that picked the hosting tier. While fixing those bugs, the itch to work on ExVenture again popped up. I am starting to plan out some refactors I can do to help bring in some ideas from Spigot into the main project.

I'm hopeful that Grapevine will slow down and I can get back to some minor refactors.

Small Tweaks

  • Grapevine, Send the user's real IP if enabled for a game
  • Grapevine, Load speech synthesis voices and display, starting on text to speech
  • Grapevine, Detail list for events
  • ExVenture, Fix some bugs around Character.Simple
  • ExVenture, Fix changing your password

Social

We have a few new patrons this month, welcome! Thanks for supporting both ExVenture and Grapevine. If you would like to support both projects, check out the Patreon.

Titans of Text has had two more episodes come out. We talked with Griatch from Evennia and Janey from Stillborn. These were both great episodes and we have some really exciting ones lined up. It's pretty great to have a fairly large backlog of people to talk to.

I have also continued streaming over on Twitch every Monday at 12 PM EST doing ExVenture or Grapevine development. Join me over at https://www.twitch.tv/smartlogictv.

I am also going to be one of the keynote speakers for The Big Elixir this year, talking about ExVenture. I am very excited for this and I hope to see you there!

Next Month

Next month I'm thinking I'll start working on the chat side of Grapevine, making that nicer and more in line with the web client. More advanced features of the web client may be on hold for a brief period, but I may also get pulled back in as this is the part of Grapevine that people use. I would like to start some small refactors of ExVenture as well.

Creative Commons License
This site's content is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License unless otherwise specified. Code on this site is licensed under the MIT License unless otherwise specified.