Press "Enter" to skip to content

Author: Bryant

IGRP Con

I had a great weekend of gaming at a virtual mini-con ran by Paul Beakley as part of the Indie Game Reading Club. (Patreon him up, yo!) I have a couple of general thoughts, then I’ll do a quick recap of the games I played in.

In order to deal with the usual “people who are around when registration opens get into all the games” problem, Paul asked people to hold their registrations to one or two games in the first day, and then opened the floodgates a bit wider. That worked really well. He also highlighted games that needed more people, which was cool. The latter probably only works if you have a relatively small population of players/games, but that’s maybe a good idea anyhow. Or you could automate it if there was good free event registration software out there? Alas.

Over the course of the weekend, we sort of evolved a practice of posting a thread for each completed game in the Slack. I really dug this because I liked learning a bit about games I wasn’t playing, and I liked seeing what else people I’d played with had been up to. It was great for connections.

I played in four games, which was just about right. By coincidence I had Friday off, so I was able to double up on games there, which was a bit tiring but ultimately fine. I booked myself into evening games on Saturday and Sunday, leaving days free to relax and play World of Warcraft and so on.

The Gathering Stones

I played a game of i’m sorry did you say street magic last night with Rye, Nicholas, and Joe, and it was awesome.

Quick description: it’s technically a map building game, but really it’s a game in which you build the relationships between places on a map which never actually gets drawn. Unlike The Quiet Year, there are no random elements. I’d wondered if that would result in overly still metaphorical waters, but as it turned out, the game forces interaction between the setting elements you create with just enough strength to prevent stagnation. Also, every time around the table, there’s an Event which must alter at least one element, so that keeps things moving as well.

If this sounds interesting, note that the game was in the itch.io Racial Justice bundle in the summer of 2020, so you may already have it.

Our city was boastful, vast, ageless, and magnetic: four adjectives chosen from a list at the start of play. It wound up being a place where cultures and people met and mixed and fought over the millennia. I defined an early Neighborhood as “An ancient waterfall, tamed by technologists long gone, filtering through man-made gates.” That sense of ebbing and flowing knowledge stuck throughout the game, for me. (I always wish I could see the city we created through the eyes of another player, though.)

The facilitator, Rye, added a whole new kind of people made of light as our second Compass: the theme for a round of play. After he declared the Compass, he established a new Landmark, the Painted Passageway. “Painting that was the origin of the Bright Ones. They first came unnoticed as the artists were in a frenzy. Now they are observed passing in and out of this painting.” The game almost immediately grounded itself in the way the existing residents reacted to the Bright Ones and the changes they brought. It became evident over the next two rounds that they were going to draw on the water of the city for their own purposes.

The sense of beings beyond our control taking advantage of our resources was interesting; the way the merchants of Main Street (“True Name: Political power, wealth, commerce.”) mirrored those actions was interesting. Lots of layers. As we came towards a close, I took a Resident I’d already established and asked the rest of the table if I could re-establish him 50 years in the future, making an abrupt time jump, and they said sure! So the hot-headed, conspiracy-minded Kevin Young became a chubby, relaxed bartender collecting the stories of travelers. “I’ll tell you my story,” he said, “But first I want to hear what you know of the time the Bright Ones came and left.” And he wrote it all down, in hopes that a century from now the Bright Ones would be remembered, and less feared.

I do in fact want to play this again. I also want to use it as a base for the next urban fantasy game I run; run it as the first session, and build characters from there.

Simplified Unsplash Widget

My old boss Steve Makosfky was singing the praises of Scriptable the other day — it’s an iOS app that allows you to run Javascript in a number of ways, including as a widget. It’s also free (but tip the developer if you like and use it). So I modified an existing script that displays random photos from Flickr to replace my clunky Unsplash photo widget.

It’s way better than my previous solution. It doesn’t clog up my photo library, plus it’s mildly configurable. (Could be more so, but I’ll leave that as an exercise to the reader.) I’ve set mine up such that it only pulls down nature photos, which means I’m no longer seeing people I don’t know on my iOS home screen.

I stuck my code in a gist in case anyone finds this useful.

Weird Instagram Bot Traces

So far this month I’ve received a couple hundred email messages from Instagram notifying me that their Terms of Use have been updated. They’re legitimate emails; it looks like someone signed up hundreds of Instagram accounts using randomized innocence.com email addresses. Since I moved my mail to Fastmail, I’m now seeing them all. I poked around a couple of the accounts (hi, kurt.clemons78446!) and the ones I spot checked have all been deleted.

I imagine someone used innocence.com as a domain for non-existent email addresses, and these either date back to before Instagram added a confirmation step (and were later removed for spamming) or they just never confirmed the accounts. You’d think that deleted accounts would be removed from whatever list of email addresses Facebook is using to generate these emails. Unconfirmed accounts… I guess those should still see the Terms of Use changes.

Good times. Finally added a filtering rule for the emails, anyhow.

Auto-Pause for Zoom

I don’t like wearing headphones all day and since I’m lucky enough to have a spare room for an office, I can play music through my Bluetooth speaker. However, I’m lazy, and I don’t want to fiddle around with my music player just cause I’m starting a Zoom meeting. Thus, automation.

Zoom provides callbacks when meetings start, but that’s aimed at people writing plugin modules. OK, we can go a bit lower level. I can’t just watch for a process, cause Zoom is always running on my laptop. But I can watch for open UDP sockets!

$ lsof -i 4UDP | grep zoom
zoom.us 88028 bryantd 83u IPv4 0xa90f1ce03eca5d5 0t0 UDP xx.xx.xx.xx:57275
zoom.us 88028 bryantd 84u IPv4 0xa90f1ce03eca2ed 0t0 UDP xx.xx.xx.xx:52612
zoom.us 88028 bryantd 90u IPv4 0xa90f1ce09340175 0t0 UDP *:65048
zoom.us 88028 bryantd 91u IPv4 0xa90f1ce0939ce8d 0t0 UDP *:60088
zoom.us 88028 bryantd 95u IPv4 0xa90f1ce0939c8bd 0t0 UDP *:50594

That’ll do, pig. That’ll do.

#!/bin/bash

trap ctrl_c INT

function ctrl_c() {
        stop_music
        exit
}

function stop_music() {
        /usr/bin/osascript -e 'tell application "Music" to pause'
}

while true; do
        zoom_status=$( /usr/sbin/lsof -i UDP | /usr/bin/grep zoom | wc -l )

        if (( $zoom_status > 0 )); then
                stop_music
        fi

        sleep 30
done

I’m catching interrupts because I want a quick keyboard method to stop the music just in case. Right now I don’t think I want it to restart music when I leave a Zoom call, but easy enough to add that if I do.

Canlis Scavenger Hunt 2020

The fine folks at Canlis, the only restaurant in Seattle where you have to wear a tie, ran a scavenger hunt last week as part of their Canlis Community College project. Prize was a $5,000 gift certificate. This attracted the attention of some of my Ingress pals, since driving around the city trying to figure out someone else’s plan is basically our core competency. The first four challenges, we did relatively horribly. But the final challenge, the one for all the marbles, that went differently.

Review: Slugblaster Turbo

Mikey Hamm is Kickstarting Slugblaster, “A tabletop roleplaying game about small-town teenage hoverboarders who sneak into other dimensions.” I’m a sucker for gonzo plus an old pal of mine is editing it plus it’s a Forged in the Dark game, so I backed it. But what’s really interesting to me is the way Mikey released the quickstart rules. I’ll quote him.

“With pandemic-era online play in mind, Turbo is built entirely inside a shared google spreadsheet which includes all the rules, playbooks, dice rollers, shared progress tracks, and monster generators you need.”

So that’s interesting. I don’t know if Mikey Hamm is involved in the Gauntlet, but that sounds like a turbo-charged version of their character keeper concept. What’s it look like?

Tech Note: JournalPress Plugin

This is very obvious in retrospect: the reason my WordPress to Dreamwidth crossposting stopped working is because Dreamwidth made security changes and as a result you don’t get to use your password for the API any more. Good change! If you cluelessly don’t pay attention, though, your WordPress plugin will stop working.

Solution: go to the Mobile Post Settings page and generate yourself a new API key. Easy.

This is a very light excuse for a weekly post but man, this week was kind of disfocused for various reasons.

YKRPG: Boîtenoire Template

The Wars setting in Yellow King RPG includes these sort of portable telegraph machines called boîtenoires. I wanted to generate some prop messages for our campaign, but I couldn’t find any templates, so I whipped up a simple one myself. Then I rang a couple of variations on it. Here they are.

Right-click and save any image for the full sized version. I recommend HPLHS Telegram as a typeface for filling in the body; that’s what I used for the header labels and it’s a free download.

Here’s an example of how I used these:

Boitenoir Message example

Pretty self-explanatory. I fiddled around with the header block (To/From) for a while before figuring out how to make it look reasonably official. I smudged the date because time is very slippery in this particular setting.

In our campaign, I decided that paper is in short supply so I used the faded letter background. Since your campaign may be different, I also made a pair of them with generic vintage paper. For my purposes, I used the Scriptorium’s Lysander typeface as the header typeface. (You can buy it individually but that’s very cost-inefficient, so I linked to the package deal. Or wait for one of his occasional 30% off sales, get the full Display bundle, it’s a great collection of historic-flavored typefaces.) This seemed like it might be a bit frilly for everyone’s tastes so I generated another pair of templates using HPLHS Headline One, also available for free from the H. P. Lovecraft Historical Society.

While I’m getting distracted by talking about design resources: Design Cuts is my go-to source for cheap bundles full of resources. Usually $30 for a bundle, there’s always a bundle available, and they usually cycle through typeface collections, vintage design resources, and product mockup bundles. The quality is not insanely high but for the purposes of me fiddling around with props? Awesome. Would also be very good for sourcing Roll20/Foundry backgrounds.