Grapevine Updates for May 2019

Posted on 31 May 2019 by Eric Oestrich

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:


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.


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


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

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.

comments powered by Disqus
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.