- Install Sabaki
- Download the latest release of KataGo and extract it somewhere sensible
- Download the human-like model, don't extract this
- In Sabaki, open preferences
- Click on Engines
- Click "Add"
- Give the engine a name
- In "no arguments", add the following:
gtp -config C:/KataGoPath/v1.15.0-opencl/gtp_human5k_example.cfg -model C:/ModelPath/b18c384nbt-humanv0.bin.gz -human-model C:/ModelPath/b18c384nbt-humanv0.bin.gz - In sabaki, attach an engine:
- Right-click the engine to set it as a player:
Monday, 29 July 2024
Let's Go: setting up KataGo's Human-like network
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:
- Postgres Logical Replication Validator -- we have one (written by me) at work, but it's in Python. Convert to rust and publish
- postgres-exporter -- export query statistics from pg dbs
- 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?
Step the one:
1:
2:
3:
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
Tomas
Adrian
Selina
Unnamed Warrior
Aaaaand... action! (2 sessions)
Afterword
Tuesday, 16 February 2021
Owing to my sins my troubles have grown and my laments increased
Who is Zach Snyder and why should I care?
I guess he made some movies. Oh my god, he's making The Fountainhead, well I guess I know all that I need to know about that pasty white guy.
He's also "Developing 'Faithful' Retelling of King Arthur's Legend" (orz). I mean, okay? Which one? De Excidio et Conquestu Britanniae by Gildas? Ok, Arthur's not mentioned by name but the Battle of Mons Badonicus is? Historia Brittonum? Annales Cambriae? Preiddeu Annwfn?
Do you see the point? We have 4 different works across 400 years, lol. A few more in 10th century CE, Pa Gur yv y Porthaur ("Who is the gatekeeper?") and Englynion y Beddau ("Stanzas of the graves") (might I just say that Welsh is badass and ya'll should be proper proud of your language, I love it).
6 more in 11th century, and in 12th century CE it just explodes. There's Tournai's De miraculis sanctae Mariae Laudunensis, which is an early witness to the legend of Arthur's survival, and Life of Saint Kentigern which mentions Merlin (Lailoken), to mention a few. In French and Anglo-Norman you have Tristan by either Bérouc or Thomas of Britain, de Troyes' poems, Robert de Boron's poems among other sources. Then you have Oberge's Tristan (lol, you don't need unique names) in German, Zatzikhoven's Lanzelet which is a rendering of a lost French tale of Lancelot, predating Troyes's Lancelot.
There is so much. You can't call your adaptation "faithful" because you cannot be faithful to so many sources. Fuck Snyder and his posturing.
Anyway. The reason why I wanted to bring this to your attention is this: there's a Hebrew translation of parts of the Vulgate Cycle (an influential literary cycle that consists of interconnected prose episodes in Old French, it focuses on the love affair between Lancelot and Guinevere); it's called Melech Artus ("King Artus") and you can buy it re-translated (and analyzed) to English (by Curt Leviant, who got to see the original manuscript and I am dying of envy). You can also read a less legal copy here.
If you speak Hebrew, you can read it here, too.
Monday, 8 February 2021
It's the dawn of a new year. A season of change.
The group
The tools
- The generator generator is dead. DigitalOcean killed their platform, and I want to take it in a different direction
- Untitled Hex Project is paused
- Generators 2: The List-ening is alive; I have a few amazing ideas for it, but I need to iron out the details.
- Gardens of Ynn -- this generator is paused until I decide how I want to finalize it. The skeleton of it is finished, so to speak, but I feel I wanna dress it up some before I release it.
- Chargen tool is dead, and I have no interest in touching up the issues in it either.
Friday, 13 November 2020
Long time, no C
I'm back!
Generators
What does that mean for me, the customer?
So no generators?
What's up with the party?
Leaning into the game.
Returning to business as usual
The death of a clergyman
Tuesday, 16 June 2020
Bounty and Villain generator (ish)
The weaknesses in my generators are becoming apparent
Dwarfish
Swift 1
Tough 8
Bounty 4k
Gun Specialist
Guns 4Bounty 2k
Magical Tome generator
Here are some magical tomes for your troubles.
A Party, Split! (Hole in the Oak, pt. 6)
Monday, 15 June 2020
Stealth release: Generators
I'm releasing Generators even though they're not quite finished
{{11}} and {{10}} {{9}}, from {{3}}.Saturday, 13 June 2020
The Hunt Begins! (Hole in the Oak, pt. 5)
Session 0 (held in session 5; as my daughter is wont to say these days, "don't judge me!") yielded some good things. We talked a bit about lines and veils – things you don't want to see in the game at all and things you can accept allusions to – and a bit about conflict resolution. We also touched on the worst part of the dungeon, so far: the personality swap trap.
I don't like it. I like the idea of it, but I don't like forcing players into playing characters they don't want. As an effect that fades, it would be okay, but as it is written it's just straight-up bad. It touches on that whole "don't tell me how to play my character" thing. While PCs probably shouldn't pull every lever they come across, certain traps are just not fun. We retconned it, so August-Wilhelm is no longer a coward; the effect faded after a few days. Halvar is still retired, though.
"My" Death & Dismemberment got positive feedback. I might tweak the actual table some, but the players enjoy hitting 0 HP not being a done deal, that there's a chance to survive. Zordo's player is brought up to speed on what happened in town after they left.
Spoilers below this line.
A generator of generators!?
They're cumbersome. Like, so, so, so cumbersome. I'm not gonna name names or link you to any of them, but ... yeah. Some of them require you to host your text files elsewhere. Others require you to use extremely specific syntax but offer no validation of them ("test extensively" is not a validation). Others still offer hosting but you can't edit your own generators after having them hosted. Many offer you a blob of javascript you can add to your blog and get a sample output from.
My immediate goal was "I want dynamic table results", rather than "I need to fix everything" or something like that. I wanted to be able to write "2d6 orcs advance slowly down the side of the ravine" and have the output be "3 orcs advance slowly down the side of the ravine"; I figured that was a good place to start. You could make a JS page that just scanned the text for dice rolls and replaced them.
I've still not gotten anywhere near that. I made something else instead. I made a fucking generator. Quelle surprise, I guess, since the title is "A generator of generators!?" and I'm talking about ... well, yeah.
This tool, though, I had a mission statement for. It's a bit undefined around the edges, but overall it looks something like this:
Cassie's Generator Tool
- The syntax should be clear and concise
- Hosting for both the generator and the tables (lists) should be a solved problem for the user
- Users should be able to edit their own tables if they need to
- Users should be able to delete their own tables and generators, if they want to
- You should be able to use generators or tables someone else has made
- It should offer embedding, no unsightly JS blob
- If the user wants to, they should be able to download all their generators and tables
A table result: {{table}}I'm still not sure about the dice notation, but I think it's important to have the difference between what should be rolled and what is information for the reader:
A generator result: ||generator||
Dice notation: >1d6<, >1d6+2<
"The weapon does 1d6 damage" should just say "The weapon does 1d6 damage" in the output, whereas "The next >1d4< days" should say "The next 2 days" (plural "days" is gonna be a problem. Hm.)
I've not implemented everything yet. In fact, I've only solved the boring parts. But the good parts are coming. Here's what I made yesterday:
Now, that "{{11}}" says nothing, I know. I'll think of something. Eventually, there'll be helper functions for writing generator entries (like, you'd write {{ and get a search window to find the table you want a result from), but for now there's nothing like that.
The way the code's written, a generator is simply a very thin wrapper around a parser and a transformer, so using generators within other generators should be pretty easy. A few issues loom on the horizon, though. If I become as popular as Facebook, I can't host everything for free, and there might be some resource issues along with that popularity. I might have to move the platform to kubernetes eventually, just for that horizontal scaling. And also because I want to learn it.
Today and tomorrow I'll set up the embed thing, and then I think I might even link to the thing for public consumption.
Tuesday, 9 June 2020
A wave of Evil Tree Babies (Hole in the Oak, pt. 4)
... okay? A brief pause as we wait for the player to create a new character. Then we're off to the Oak, again.
Spoilers etc.
Wednesday, 3 June 2020
Shades of my former self (Hole in the Oak, pt. 3)
During the downtime, they've noticed fewer and fewer children in the city. Briefly asking around, they find no clear answer as to why. As they make their way to the Oak, they also find countless dolls spiked to trees.
Pre-session prep
Spoilers for Hole in the Oak below this line.
Thursday, 28 May 2020
Class rework: Magic-User
Option 1: Barbarians of Lemuria-ify the Game
- Reach the top of a cliff
- Chop down a tree with the snap of your fingers
- Find the book where the information you're looking for is
- Vines reach down and lift you up
- A whip of fire lashes out and chops the tree in two
- All the books gather in an enormous whirlwind, until the one you're looking for lands on your shoulder, like a bird.
- Obvious (chant wildly, dance, etc, you're Doing Magic and everybody knows it)
- Line of Sight
- Casting Time (1d6 * 30 minutes of meditation, wild dancing (possibly naked), etc)
- Personal item (lock of hair, clothes, etc from the person)
- Special Knowledge (tedious, and long, research is necessary in order to cast the spell properly)
- Hour Power (must be cast at a specific time of the day or year: morning, midnight, sundown, solstice, etc are all perfectly valid. "Right now" is not.)
- Ritual cleansing (bathe in clear spring water, anoint yourself with essential oils, etc
Third (?) edit: ALSO this means that CON becomes an important attribute for wizards (you get to re-roll your Hit Die on level up, and keep the better result, so the CON bonus is important). Witches and wizards also eat a lot so they have the energy reserves to regain HP.
Vayra in the OSR discord also came up with this gem: "Also it makes sense why wizards and witches and other magic users are the ones people go to for medicine stuff. Since they have to know it all, they have to stay healthy to do magic."
I love it when rules inform the world. I wish I could come up with something similar for my Thief rework.
Option 2: Risky Casting
Option 3: Cantrips
Let's Go: setting up KataGo's Human-like network
TL;DR: It's all about them command-line arguments. Here's a short guide: Install Sabaki Download the latest release of KataGo and e...
-
TL;DR: It's all about them command-line arguments. Here's a short guide: Install Sabaki Download the latest release of KataGo and e...
-
The initial purpose of the Temple wasn't even a temple. At first, there was a demon that kidnapped babies, as demons are wont to do. Thi...
-
The goal with the class rework is to fix the B/X (OSE) thief. There are various issues with it as written, but Hear Noise is the worst offe...


























