Monday 26 June 2023

Rust

 I'm going to learn Rust. I mean, I mostly already know it, but I want to have a clear goal to strive for, so here goes:

  • Gain an understanding of lifetimes and the borrow checker

  • Support open source projects I care about

  • Write at least 1 open source project in 6 months. I have a list:

    1. Postgres Logical Replication Validator -- we have one (written by me) at work, but it's in Python. Convert to rust and publish
    2. postgres-exporter -- export query statistics from pg dbs
    3. repmgr flapping-foo -- when repmgr starts flapping, lower the requirements for failover successively, ish

    Biggest hurdle is probably finding the time. I have some at work, so that's good. Now I just need to figure out where to find the data I need.

Monday 19 June 2023

Pivot! Pivot!

Aight.

I might not be playing that much (roleplaying games, at least) these days. New family member, other hobbies, work... there are only so many hours in the day for all of them. That said, I don't really want to give up this blog either. Sure, I'm not ... prolific ... in my writing, to say the least, but I think my writing has value. I don't, however, see myself writing RPG things as such here at the moment. So here's the roadmap:

I'm not gonna.

I'm gonna write about things I care about, instead. It might be RPGs. It might be bread. It might be programming. But I'll write.

Wednesday 12 October 2022

Cy-Borg, initial thoughts

Got my hands on a copy of Cy-borg (Cy-Borg, with a capital B?). It's got neon, it's got cybertech, it's got that neo-synth thing going on. It is completely empty.

The book has all the trappings of a cyberpunk book, but it offers us nothing new. At this point, the 80s and 90s cyberpunk ideas are just dated, and regurgitating their style and messages (old already in the 90s) gives us nothing new. As a tribute to the 80s/90s? I guess it's fine? Like, my issue is largely the fact that Cy- only reduces cyberpunk to a collection of objects, colors and moods, and it gives us nothing but a "Corporations bad" statement; it is, stylistically and linguistically, stuck in an exaggeration of the pointers of older titles. Someone much smarter than me once wrote (paraphrased) that Pacific Rim gladly steals from a bunch of things (games, comics etc), but the idea is that if you steal you're supposed to give something back. Here we are, with Cy- doing the same thing.

We should ask ourselves how a cyberpunk game should look in the year 2022, not "what if 80s but exaggerated?" This is where Cy- falls short -- its author asks no questions. What about necro- and psychopolitics, or exploring state vs/and individual, isolation/enclosure, intellectual rights/private properties has evolved (WB shuttering thousands of shows just for a tax write-off is adjacent, for sure) and its connected ideologies. Hustle mentality, grindset etc. How does actual control look today?

An RPG written today shouldn't be schooled by an anime that's 20 years older, yet here we are. Lain and adjacents (Paranoia Agent, Pulse) are all asking more pertinent questions about the state of today than Cy- is. Goddamn.

For a more cyberpunk game, take a look at iHunt. Yes. A game that's not even framing itself as a cyberpunk game is more cyberpunk than Cy- (by virtue of being a game set in the now, not the 80s). Good fucking job.

At least the art is pretty. But it becomes shallow when there's nothing underneath.

Monday 2 May 2022

What's up, nerds?

In the last chapter...

I wrote a thread about this on the bird app, but I'll write about it here too.

After a break of Electric Bastionland (itself having had a longer break because we (as in my wife and I) lost our daughter last summer), the group™is returning to the Fantasy Game. Last time we saw them, they had successfully exited the dungeon proper, and was heading towards the nearest City.

What city?

I don't know! I rarely (if ever) plan out cities, but this time we're probably going to stay in the "vicinity", so to speak, and so we'll need a better plan than "just wing it." Don't worry, though; there'll be plenty of winging it. Let's start!

Step the one:

1:

Find a map of a city. This one'll do. We'll probably rename it later.


2:

Buy a copy of Beak, Feather & Bone. Invite your players to play it with you, on the map you just printed. Let the players select any faction they like. What will you get? I don't know!

Beak, Feather & Bone is a very simple game, but in short the mechanic is "draw card, let current player select a location (on the map) and claim it for their faction, what they claim is based on the card", ish. Buy it to find out more, it's not expensive (and it's very good).

3:

Once the game is over, you might have something like this:
Legend:
Yellow: Merchants
Purple: Animal Shelters
Blue: Mages
Green: City Watch
Red: Clerics

1. Toll Gate Inn
"They should tear it down, it's a damn disgrace is what it is!"
A dilapidated building; windows broken and roof is missing several tiles. Mostly a gathering place for the local youths, and rats. Future plans (of the merchant's guild) involves making it into a proper toll house.

2. Farm House
"I don't really know what they do there, it's just... there? Look for the house with grass roof."
Well-kept building; grass on the roof. Rehabilitates and sells animals.

3. Old Tower
"I dunno, I think the head wizard lived there?"
Tall, white tower, a few missing bricks he.re and there. The leader of the Mage's Guild lived there, but it now stands empty, save for the oak furniture that was too heavy to move.

4. City Watch Post
"I guess they keep it clean enough."
Red brick building, regular windows. The City Watch bought this house on auction in order to expand its operations in the city.

Rival: J'han Shard
"Indecisive, weak, pathetic; to imagine that the lineage would end with him."
Worn-out black clothes. Wants to get the building back, it's been in his family for generations.

5. Old Church
"It's sad that it's not used any longer."
Big, stained-glass windows, dark brown/red brick building. Was used by the local clerics before they got their new place; still used for some sermons.

6. Bank
"Way too ostentatious. Look for the building what looks like someone shat out a marble turd with gold accents."
Marble columns, gold accents, statues.
The current bank of the Merchant's Guild. Inside is more marble, arched ceiling, echoes tend to live forever, so it's pretty loud.

7. Farm House
"I've seen it, but I've never bought anything from them."
Regular farm house; sells farm-related groceries. Inside there're just shelves and shelves of stuff.

Rival: James Ahan
"That man was born with a serpent's tongue, I tell ya. Sharp as a knife, aye, but I only trust him as far as I can throw him."
Well-dressed, walking cane, imperial moustache, bowler hat.
He just wants to flip the place for a nice profit. He's got a buyer lined up and all.

8. The old library
"I tend to just ignore it."
Dilapidated wooden building. Inside there's water damage, holes in the floor etc. 

Rival: Mx Acallister
"Mx Acallister is one proud person; keeps their head high but always a kind word for the lesser fortunate."
Old, been around for a long while. They want to tear it down to build a new place of worship.

9. City Watch Curiosities
"I think they sell ... used goods? Like, what equipment they have that's not good enuf for their own? Or if they sell... stuff they've taken from thieves?"
Log house, no windows. Inside rows of tables, shelves. Used by the city watch to sell equipment that's past usability.

10: Soup Kitchen
"When you have to go there, you know you've hit rock bottom. *sniffs* I would never..."
Concrete building, beige/eggshell white, large gate. Inside tables, a few cots, some boxes with second-hand stuff.

Rival: Bengt Urskogsholm
"That self-serving bastard, greedy as few he is."
Fat, with a moustache. He's jealous because when he was a kid there was no soup kitchen around, so feels that nobody deserves one.

11: Port Office
"The fees are killing us, but for some reason some captains (and I'm not saying smugglers but I am saying y'know) don't have to pay them?"
Two-story building, whitewashed walls, half-timber and nogging. Bright, well-lit spaces inside. Hardwood floors. Smells of fish.

12: Curiosities
"Look, all I'm saying is that they can get their hands on a lot of weird stuff for being a bunch of farmers. Check it out. It's pretty anonymous, so you'll have to look for it, but it's between the bank and the soup kitchen. Like a hole in the wall, really."
An anonymous wooden door leads into a small, cramped, but clean, store.

13: New School Building
"I'm looking forward to it; I think it'll bring a much-needed facelift for the entire neighbourhood."
A huge house currently being renovated; going to be a new school building for the Mage's Guild. Right now a lot of construction scaffolding and similar. Walls are in place, but lots to be done.

14: Old City Watch office
"If they're not going to use it, they should tear it down, sell it, or just... do something about it."
With the current City Watch expansion, the building is much too small, so was abandoned for a newer building. Dilapidated. Empty; walls and floors are worn out and dirty.

15: Priest's Council
"That place is haunted, I swear. I've heard strange, ominous things at night."
Cellar was used as the Priest's Council earlier. Paint is chipped, it smells of mildew, and only dust lives here now.

Rival: Opal Langston
"If sour grapes had a face, it'd be her. Reactionary."
Frail, constant look of displeasure, like she's eating a lemon. In reality, she hates the place because her husband died there; he was a priest.

16: Statue
"It's ugly. It's loud. What's there to like?"
In an effort to show how powerful and popular they are, the Merchant's Guild commissioned a magical statue that will jingle its money bag every full hour, and also say "A MONEY SPENT IS A MONEY EARNED" and similar useless things at 9 pm.

Rival: Captain Harg
"That woman is made of harder stuff. If iron fist was in the dictionary, it'd be her. What do you mean, it is? She is? No way!"
Gray hair in a tight bun, wears an eye patch over her right eye. She wants to get rid of the statue because it keeps waking her up at night. She's not alone in this.

17: Pet Sematary (spelling mine)
"I think it's nice that people'll have a place to bury their pets."
The farm people (or hipsters) are making this place into a pet cemetery. Right now they're preparing the grounds. There's a certain air of peacefulness around the place.

Rival: Mac Iknit
"He's been a priest since I dunno, I think my pa told me about him when he was young?"
Wears black priest clothes. Has a long, white beard. Believes that the church owns the mortality question, and that it's an affront to the gods that some doggone hippies are making their own cemetery.

18: Fortune Teller
"No! I promise you, she said I'd meet a dark, handsome man and I did!"
Dark building, torches leading up to the door a nice touch. Inside it's like every Hollywood Hoodoo Store.

19: Old Prison
"People died in those cells, and I know for a fact that it's haunted my friend from down the street says he knows someone who saw a ghost there"
Gray, quiet. Bricks, barred windows. Inside mostly prison cells, it's been abandoned for 40-50 years.

20: New Church Grounds
"It's very inviting, but a bit ostentatious."
Marble, mosaics, stained-glass windows. A fantasy version of Hillsong Megachurches. Inside statues, velvet, deep red carpet, crystal chandeliers.

Citadel
"People ending up there won't ever get out. You go there to die."
The citadel (the seat of power) belongs to the City Watch in all but name. Whatever the city's original ruler, they're just a puppet to the City Watch now. They've combined the citadel into both headquarters and prison. But what else goes on in there..?

---

So yeah. I've got a pretty fleshed out city. The farm people seem a bit off, to be honest. At least the merchants are honest in what they're about, no? My players are still not used to the freedom they're afforded -- they're somewhat unsure about their footing, but they did better the longer the game ran, and I'm sure the next time we run something it'll go even better.

From this, I'll draw up some more factions (not covered by the game) and give each faction one or two clocks. Each rival will also get their own clock, of course. Then I just need to release the party into the city and see what happens. 

The rest of the world is about as blank as it was before. Somewhere in the "middle of the forest" there's the Hole in the Oak, and in the opposite direction from the city they'll find Another Adventure Location. What that is, I don't know yet; I'll get to that eventually. I think next session (tomorrow) will mainly be purchasing equipment and navigating their very own city.

Wednesday 11 August 2021

Proof of Concept: Merging encounter tables

I made a thing: https://4w8wj.csb.app/!

It's a proof of concept of merging encounter tables. Like, the party is moving through a forest hex towards a mountain hex. The forest has its own encounter table, and the mountain another one. With this tool, we'd be able to load both and roll on either of them, or we could weigh it so that when we're closer to the mountain there's a larger chance that we'll roll on the mountain table but there's still a chance to roll a forest encounter? Does that make sense?

Anyway, it took about an hour to throw this together, but for a future app, I'd need some more planning. Ideally, I'd want users to be able to save their lists to their "account" (I don't like accounts, but something like OAuth would do?) and select those. A way to roll on the tables is a given. What else? A really cool thing to have could be parsing the results (so "1d6 goblins" becomes "3 goblins").

I'll be honest; this idea isn't mine. I stole it from Ten Foot Polemic, which is a terrific blog. I just made it into a PoC.

Let me know if you have any ideas I could steal implement, or at least consider, for a future app!

Sunday 18 July 2021

Some shrooms

Someone made a mushroom generator. It's not terribly useful, but perhaps you're interested anyway: https://friggingfrogs.itch.io/colorful-fungi.

I almost made a generator out of it, but decided against it. That said, I did prepare a bunch of mushroom images that now have nowhere to go and since they're made from public domain photos and then reworked by me, I figure I can re-release.

The images are released under the Trans Copyright Act:

You may use the material free of charge in any commercial or non-commercial work, as long as this text is included for said material:

Trans women are women.

Trans men are men.

All queer lives are valid.

Black Lives Matter.


























Tuesday 4 May 2021

Same location, fresh faces

Hole in the Oak, season 2

Alright, so I've started DMing for a bunch of newbies. I'm running them through Hole in the Oak, and I have some thoughts on that dungeon re: new players, but let's just quickly run through the cast (we're running with 5 torches deep, and I must say I am *not* a fan):

Tomas

Thief/Assassin-wannabe. Parents tragically murdered. Outsider. Look, we all know the drill. We've heard this character countless times before. The player has played him before, too -- in the group's last campaign, even. Okay.

Adrian

Halfling Zealot. Worships a duck god. "A bit silly." It's fine; I don't demand much from level 1 characters; it'll get fleshed out in time.

Selina

Mage. Lacks any kind of character, which is also fine.

Unnamed Warrior

I actually forgot their name, but it's another unremarkable character.

Aaaaand... action! (2 sessions)

(Oh yeah, and Oak spoilers from here on out, obvs)

The group starts at the Oak. Nobody brought torches. Mage and Zealot figure out that they can just use the "Illuminate" cantrip and sure, why not. If they continue with it, I'll start demanding concentration rolls with a failure meaning they can't use the cantrip again for an hour. I don't care that much, but the idea behind 5TD is basically "resource management" and if you sidestep that with a thing that exists on your character sheet I don't really see it as a win. But for now, whatever.

Group heads to the carpet hiding a teleportation circle. Adrian decides to check out the passage leading directly north. I ask if they just walk straight across to the other opening, which they do. Adrian is now elsewhere. Rest of the group faff about a little bit, then follow him through. Nobody knows where they are any longer so that's great (is it?).

Group checks out the room with stone seats arranged in a circle, and spends about half an hour of playtime there. Then they move west (toward bat cave). They try to force the door to the gnomes open, but the thief is weak af and the door isn't cooperating; the gnomes tell them to buzz off, they don't want any kind of shifty ppl mucking about.

The ask the moss faces for secrets, and learn that there's treasure at the beach. They then head to the faun's reception room, ring the bell, and a few of them drink the tea. Adrian falls asleep and Tomas pretends to sleep. The unnamed warrior asks what the hell is going on, but Ramius just laughs and says that they can either leave without their friends, alive, or they too can end up in a stew. The warrior refuses, but gets stabbed to 0 hp (from 3, so I mean... yeah) by Ramius's wives. Selina, having stayed passive, trades some of her blood for Adrian and carries the halfling away, leaving Tomas and Unnamed Warrior to the tender mercies of the fauns. Tomas tries to run away, but the fauns catches him fairly easy. Sucks to be Tomas.

Session over. I tell the players that they might want to roll up new characters, but Tomas's player refuses, he'd rather hope for the best. 

New session begins with Adrian and Selina making plans. The Unnamed Warrior player makes a new character, a dwarf warrior named Thorin. Adrian and Selina makes their way back to the moss faces, then head north toward the Hall of Kings (iirc it's named that? I'm writing this from memory, without a map). They find a dwarf warrior where the body/trap would be, and Adrian decides "oh hell naw, we aint going that direction" because someone or something attacked the dwarf with a sleeping dart. That ought to teach me to never assume anything. Anyway, the dwarf apparently drank too much the day before, made a bet with someone, and somehow ended up down here and no, he has no idea how to get out either.

The group heads back toward the glowing moss/moss faces area, then head west to the roots. They look at the roots, then decide "I guess the way is blocked" and head back towards the gnomes. They ask the grumpy gnomes for the way out, and the gnomes, figuring that they can catch two flies or whatever, tell them that if they get rid of the ogre for them, they'll gladly help them find their way out. The group decides that that sounds too dangerous, and decide to instead check out the other painted doors (area 35). They see the fire beetles, decide that that's not something they want to poke at either, and head through the bull door instead.

Adrian spots something lodged inside one of the holes in the passage leading to the lizard shrine/altar, but decides not to chance anything. Adrian is very much paranoid right now, and only wants out. They pass through the lizard shrine, find the beach and dig around a bit (17 silver! the group decides to split the treasure between them). They then make their way to the gnome fishing beach -- there are no gnomes there -- and eventually find the fish shop. They're offered to be led through the gnomes' homes, blindfolded, and pointed toward where the ogre lives (word among the gnomes has spread that there are adventurers that might deal with the ogre somewhere in the Oak, and so the gnomes in the fish shop are aware of the offer), but the group declines -- they don't trust no gnomes. At this point about 10 hours have passed since they left the faun's place, in total.

They head back towards the bull door, but run into the ogre on the way. He's in a bad mood, but some quick thinking has Adrian offering a gnome to him if he helps them find their way out. That sounds like a good deal to the ogre, and the group sets up an ambush in the "HAIL KEZEK etc etc" room (the oval room between the fish shop and the lizard altar, I can't remember the number).

Session over.

Afterword

The players are having fun, at least, but damn they're... new, to this. I don't think Oak is a good starter dungeon for new players. I think it's an amazing starter dungeon for people new to OSR, but I don't think that it's a newbie dungeon. I'll write more about this later. Next session is on Thursday, so that's not too far away.

I think I need to change how I run the dungeon. Like, it feels like they've been blocked by all my ideas, but at the same time I'm not the one that planted the idea that someone hit the dwarf with a sleeping dart. I even pressed the fact that it was a trap that did it. But what's happened is that the players have, voluntarily, removed an exit from their loop. They also didn't bother to check the roots, they just assumed they're impassable. That's definitely on me. Better descriptions.

I think that they're very used to getting the story and what they can do handed to them. I've been keeping quiet because I want them to appreciate that they can do whatever they can imagine, but perhaps that's not working? I'll talk a little with them before next session.

Another issue is that one of the players is super shy (or just bad at talking, that's an option too). Like, can barely talk. I don't know what to do about that. I don't want that to be why he's not finding RPGs fun. I'll ask him in a private message, I guess.

Rust

 I'm going to learn Rust. I mean, I mostly already know it, but I want to have a clear goal to strive for, so here goes: Gain an underst...