wrong tool

You are finite. Zathras is finite. This is wrong tool.

  • Email
  • LinkedIn
  • RSS
  • Twitter

Powered by Genesis

Rich Plots, Real Improvisation

April 17, 2026 by kostadis roussos Leave a Comment

What Alice Saw

I shared a tool in a Discord channel the other day, and a new DM named Alice messaged me back:

“I’m gonna be so honest. This is Greek to me. I have no clue what you’re showing or what problem it solves. I’m a new DM.”

Fair

So I sent her a Google Doc I use to prep my Out of the Abyss campaign. Here’s a short snippet.

Score NameNPC/FactionCurrent ValueNext ThresholdWhat Triggers Next
Zuggtmoy’s WeddingZuggtmoy / Neverlight GroveElevated — 2 increases (Blingdenstone expansion + Basidia’s evacuation removed internal resistance)Wedding completion / Araumycos unionContinued party absence from Underdark; no faction opposes Zuggtmoy; fungal spread reaches critical mass
Juiblex RebirthJuiblexLow-Moderate — 1 increase (declared intent to consume Zuggtmoy’s domain)Juiblex manifests a new physical form or begins attacking Zuggtmoy’s territoryZuggtmoy’s wedding weakens her defenses; time passes without intervention


A minute later she replied:

“Ooooooooh. It’s for your campaign story. I thought it was a software thing, not creative.”

She was right. I’d explained the machinery before I’d explained the use.

So here’s the useful version:

I use AI to help me maintain campaign canon across long-running games, but I do not let it decide what counts as canon.

That distinction is the whole system.

What Alice saw was a planning document. At the top were four campaign clocks: four villain plots advancing in the background, each one changed by something the party had done, or failed to do, at the table.

Under that were faction states, NPC dossiers, and plot notes: who knows what, who wants what, what the party has learned, and what is changing offscreen.

I scan that document before every session. In a minute or two, I know what moved, why it moved, and what pressure is building in the world if the party does nothing.

I can’t run the campaign I want to run without this doc.

I also can’t write it by hand. Not across two campaigns. Not across a year of sessions. Not with dozens of named NPCs, each dragging their own history behind them.

This essay is about how I got it written anyway.

What Kind of Game I Want

I want a particular kind of game.

I want players making strange, committed, character-driven choices that I could not have predicted in advance.

That’s not abstract for me. I played Baldur’s Gate 3 cold, no guide, no walkthrough, and made a series of choices as Shadowheart that apparently almost nobody makes. Not because I was optimizing for rarity, but because they made sense for the version of her I was playing.

That’s what I want at the table: not correct choices, but real ones.

I run two D&D campaigns: a heavily modified Out of the Abyss campaign for the Ember Vanguard, and a Dragon of Icespire Peak / Lost Mine hybrid set in Phandalin. I actively push both parties to go somewhere I didn’t plan for. If the plot I prepped isn’t the plot they want, that’s fine.

That’s the deal.

Pick any two

The problem is that I want three things at once.

First: deep prep. Texture. NPCs with interiors. Villains whose behavior today is a consequence of something they chose eight sessions ago. Plots that keep moving, whether the party is watching or not.

Second: flexibility. When the party walks past the dungeon I built, something has to be where they actually went, and it has to feel like it was always going to be there.

Third: consistency. The villain I run in session 24 has to behave like the villain I ran in session 6. If I forget what Shal already said, did, or knew, the illusion cracks.

For a long time, that combination felt impossible.

Prep deep, and the moment players deviate, you’re improvising on top of prep that no longer applies. Prep loose, and the world gets thin. Try to prep every branch, and you end up burning the time you were trying to save.

And over a long campaign, the hardest problem is quieter: you lose track of what actually happened. The next scene drifts a little. Then a little more. Nobody stops the game to point out the contradiction. The fiction just gets lighter.

That’s the part people don’t say out loud. When the party walks past four hours of prep, I’m not upset because they missed it. I’m upset because I burned four hours on something that no longer matters. That lost time becomes thinner prep for the next session, then less energy in the session after that. Players feel it too. They become less willing to push into unplanned territory if they can sense I’m paying for it.

Before LLMs, I had more or less given up on getting all three.

What I Tried First

I wrote summaries from memory. That works for one campaign, maybe. It breaks fast when there’s too much to hold.

Then I tried using an LLM to write the summaries. Better than nothing, but imprecise in ways I didn’t always catch, and the errors showed up later, when they were harder to spot and more expensive to fix.

Then I found GMAssistant.app. That was a real improvement. It gave me solid summaries of what happened. But a D&D session isn’t just a sequence of actions. It’s dialogue, tension, implication, half-finished intentions, weird emotional turns. The recap could get the action right while still losing the feel of the session.

So I went further. I combined GMAssistant recaps with verbatim VTT transcripts from our Zoom calls. Then I built tooling around that. Then more tooling around the tooling. Six weeks, maybe two months, of real work.

I thought I was solving the record problem.

I was. Partly.

The Failure Mode

What I didn’t realize until it nearly cost me a scene was that I was also building a new kind of failure.

A few months into Out of the Abyss, I was designing the endgame around an earlier scene. A PC named Daz had come across evidence implicating a major NPC. My planned encounter assumed he had taken that evidence with him.

I checked the LLM-generated recap to confirm. It said Daz had discovered the evidence. Good enough, I thought, and I kept writing.

Then, by accident, I re-read the original session summary.

What had actually happened was narrower. Daz had looked at some unusual books on a shelf and left the room. He hadn’t opened them. He hadn’t taken them.

Noticed had become discovered in the paraphrase. And discovered had quietly shaded, in my head, into obtained.

If I had run the encounter as written, I would have retconned my own campaign.

That’s the failure mode.

The model hadn’t lied. It had paraphrased. But the paraphrase was fluent. It read like canon. It read so much like canon that I stopped checking the source.

And once that paraphrase enters the next stage of the pipeline, it hardens. A summary becomes a dossier entry. A dossier entry becomes a threat score. A threat score shapes the next session. Small errors do not stay small.

My first version of the tool had bought me depth and flexibility at the cost of consistency, and it had done it invisibly.

The obvious fix would be to go back to the source every time. But if I have to re-read everything every time, I don’t need the tool.

What Actually Worked

What actually worked was putting myself back in the middle.

Now I use the same loop at every layer.

First, the model reads what I can’t read quickly: a transcript, a stack of summaries, a year of sessions. It gives me candidate structure: NPC lists, draft dossiers, scene candidates, recap material.

Second, I review that structure. I fix names. I merge duplicates. I cut paraphrases that slipped into invention. I restore what matters and remove what doesn’t.

This step is not optional. This step is the work.

Third, the model takes the reviewed structure and renders it as prose: a dossier, a narrative recap, a planning document, or a threat tracker.

The model is strong at the first and third steps. It is unreliable at the second. Scope, attribution, ordering, what counts as canon, what matters dramatically: those are creative decisions. Those stay with me.

Skip that middle step, and the errors compound. Keep it, and the whole loop holds.

That’s the system.

What I Have Now

The threat tracker Alice saw is the direct output of it. Session material gets extracted into per-NPC dossiers. I review and reconcile them. Then the tool synthesizes the planning document from that reviewed canon.

That’s how I get villain clocks that stay consistent across a year of play. It’s how I get session recaps that read like narrative chapters without drifting into invention. It’s how I get pre-session cheat sheets I can trust.

It’s also how I keep two campaigns inside one world without the whole thing collapsing under its own weight.

What I have now is not magic. It’s just finally the right division of labor.

I have a threat tracker that tells me, before every session, which villain plans have moved and what moved them.

I have session recaps that read like narrative chapters, but only after I verify the details that matter.

I have NPC dossiers where Captain Tolubb is one NPC, not three duplicate spellings pretending to be different people.

I have two campaigns sharing one coherent world across a year of play.

And most importantly, I no longer mind when the party walks past the dungeon.

Because the prep I’m doing now is not the kind that gets wasted.

If You Want This Too

If you want this for your own game, the practical lesson is simple:

Use AI to read, sort, summarize, and draft.

Do not use it to silently decide what is true.

That part stays with you.

The tools are free. They’re also crude. I’m one GM iterating on my own campaigns, not a product team, and the learning curve is not zero.

I don’t make money on any of this. It’s a hobby. My goal is simply for more of us to have better tools, and for the people trying to make a living doing this to actually make a living.

So if this sparks something for you, build the version you want. If something I built is useful, take it. Fork it. Break it. Send it to a friend who runs games.

I would rather more of us had working tools than fewer.

The last essay was for people interested in the machinery: the loop, the trust layers between documents, and the searchable index I use to query reviewed content mid-session.

This one was for Alice.

Share this:

  • Email a link to a friend (Opens in new window) Email
  • Share on Reddit (Opens in new window) Reddit
  • Share on X (Opens in new window) X
  • Share on Tumblr (Opens in new window) Tumblr
  • Share on Facebook (Opens in new window) Facebook
  • Share on LinkedIn (Opens in new window) LinkedIn
  • Share on WhatsApp (Opens in new window) WhatsApp

Like this:

Like Loading...

Filed Under: Random Fun

A better physical working environment and the WFH

June 25, 2021 by kostadis roussos Leave a Comment

Watching how many of my coworkers don’t want to go full-time back to work got me thinking about the physical work environment.

Pre-Covid my home office was a laptop with poor ergonomic characteristics on my kitchen table and my car.

My work office, an 8×12 area, shared with a co-worker, had a 32″ monitor, a desk that could move up and down, and a perfect chair and was just a fundamentally more pleasant place to work.

Post-Covid, my home office is a 40×40 room, with a 32″ and 27″ monitor, a desk that can go up and down, a perfect chair, a nice couch, and is quiet.

The effect of Covid was I invested a lot of time and effort to create a great working area at home that no company in Silicon Valley can afford to replicate.

Being forced to come to work in my old office would be going from a really nice office to a worse office – my car and the workspace in my HQ.

If I wasn’t an extrovert, and loud thus irritating my family, I don’t know if I would want to go back to the office.

I am very fortunate in my workspace at work. Some of my coworkers have much smaller and louder workspaces. And those smaller and louder workspaces were created to pack more people into the office because that was just how we did things.

And this got me thinking further.

Pre-COVID, workspaces were a perk that companies could hand out as a way to reward employees. Now employees, having built much better workspaces at home, are rebelling at the idea that they must trade their home workspaces for the qualitatively worse office space.

 

Share this:

  • Email a link to a friend (Opens in new window) Email
  • Share on Reddit (Opens in new window) Reddit
  • Share on X (Opens in new window) X
  • Share on Tumblr (Opens in new window) Tumblr
  • Share on Facebook (Opens in new window) Facebook
  • Share on LinkedIn (Opens in new window) LinkedIn
  • Share on WhatsApp (Opens in new window) WhatsApp

Like this:

Like Loading...

Filed Under: Random Fun

My home setup is a full rack.

March 9, 2021 by kostadis roussos 1 Comment

As part of this insane work from home experience, I am discovering the joys of internal PCIe devices and integrated enclosures.

Because of my job, and poor technology choices, and desk space issues, I ended up buying a bookshelf for my office computing systems.

By the time I was done, I had realized I had assembled a server rack.

Yes, a server rack.

Why?

First, I need a surface for the home laptop and the cooling system for said laptop.

Then I need another place for the work laptop, and a cooling system.

Then I need a USB hub for some devices that I want to connect to each laptop. Those external USB devices have to be connected to hubs that have enough bandwidth and power. This is the mother of all Pains in the Asses. Individual USB devices do a really shitty job of arbitrating power draw and bandwidth. Be careful to connect the 4k HDMI device on a USB port that isn’t the same one you have on a USB drive. I can’t wait for the USB monitoring system.

Then I needed a place for the external storage array.

Then I needed power-supply for all of my other computer gadgets (Headphones, tablet, smart-pen)

Then I need a top-of-rack switch that connects all of the elements in the rack.

Then I need a core switch that connects to my home network.

Then I need an edge router and firewall to connect to the internet.

But I am not done!

Because one is my work laptop, and the other my personal laptop, I need a KVM switch.’

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

Back to your regularly scheduled architect discussion.

Share this:

  • Email a link to a friend (Opens in new window) Email
  • Share on Reddit (Opens in new window) Reddit
  • Share on X (Opens in new window) X
  • Share on Tumblr (Opens in new window) Tumblr
  • Share on Facebook (Opens in new window) Facebook
  • Share on LinkedIn (Opens in new window) LinkedIn
  • Share on WhatsApp (Opens in new window) WhatsApp

Like this:

Like Loading...

Filed Under: Hardware, Random Fun

Book Recommendations

December 28, 2019 by kostadis roussos Leave a Comment

A friend of mine asked on Facebook, what books should he read, that others found great from last year.

And so here are mine. This isn’t in any particular order.

The Expanse by James S. A. Corey

This is a great series on great power politics written in a Game of Thrones style. The first set of books feel too much like a dungeon and dragons adventure, the latter set of books really hit their stride.

Imperial by Thomas Vollman

Bought it 10 years ago, finally started to read it this year. OMFG. This is the best book I have read since Victor Hugo’s Les Miserables. The French version, because the one in English is unreadable.

Barbarian Days: A surfing life by William Finnegan.

This book made me regret not learning to surf 15 years ago when I first went to Hawaii. A co-worker of mine and I have agreed to go get a lesson in Santa Cruz because we both had the same regrets.

Master Switch and the Attention Merchants by Tim Wu.

Advertising and communication lines are tied at the hip. The original advertisers pandered to poor taste to make money. The original owner of the network, ATT and the radio companies, controlled what could and could not be done, delaying television for almost a decade.

Circe by Madeleine Miller

She wrote Achilles Heel. And this is an incredible book. She is able to capture the magic and faith and belief system of the Ancient Greeks from a unique perspective, a powerless nymph. The powerless nymph, however, acquires power through science (aka medicine) and becomes powerful.

Great book. My favorite part is the Goddess Athena.

The Marne, 1914: The Opening of World War I and the Battle That Changed the World by Herman Hedwig.

Hedwig’s book has excruciating details about every twist and turn of every unit. But if you step back, you see that this was the defining moment of the 20th century. The Germany Army was the 19th-century army. It was cabal of kings and queens of Germany with very poor co-ordination. The French Army was the first 20th-century army under the firm grip of a single general. At the Marne, the feudal nature of the 19th century ends, and the totalitarian era begins. After the defeat, the German army gets re-organized under Ludendorf, and everything we recall happens. The horrors of the 20th began with the French victory at the Marne.

The other thing the book makes clear, even if it does it in a backhanded way, is that even if Paris had been conquered, the French were not done, and the Germans were exhausted. There was no path to victory.

Share this:

  • Email a link to a friend (Opens in new window) Email
  • Share on Reddit (Opens in new window) Reddit
  • Share on X (Opens in new window) X
  • Share on Tumblr (Opens in new window) Tumblr
  • Share on Facebook (Opens in new window) Facebook
  • Share on LinkedIn (Opens in new window) LinkedIn
  • Share on WhatsApp (Opens in new window) WhatsApp

Like this:

Like Loading...

Filed Under: Random Fun

My Drow are Albino

January 8, 2017 by kostadis roussos Leave a Comment

I’m Greek. And I grew up in Montreal and Athens.

Growing up, I knew one black kid. And he was my first friend. And slavery was always bad.

And I was a huge Dungeons and Dragons fan.

As a Greek and kid who did well in science, I knew that if you stayed in the sun, you were this color

And if you stayed out of the sun, you were this color.

And so it was very confusing why the elves that were good and lived in the sun were this color:

And the evil elves that lived underground were this color: 

For a Greek kid, that had no understanding of the evil racial history of the United States, this was very confusing.

If you lived in the sun, you were tanned. People who were white and did not tan were this color:

As I understood the world, people who lived in sunny climates tanned and were olive skinned, or darker. People who lived in climates in climates that were not sunny were very white and turned bright red.

And I stopped playing Dungeons and Dragons after I left Brown University. And I forgot about the Drow and their peculiar skin color.

And I didn’t give it a moment’s notice until I started playing with my six-year-old son. And he asked what a Drow is? And I said, well there are two kinds of elves. The good elves that are white and the evil elves that live underground and...

And I stopped talking. What was a mystery as a child, was sadly so clear as an adult. Of course, the good guys were white, and the bad guys were black.

And the blatant racism in the description of the Drow and Elves was evident.

And so I told Nick, a different story. The Drow because they live underground, are albino white and the elves that live above ground are olive-skinned and tanned.

 

 

Share this:

  • Email a link to a friend (Opens in new window) Email
  • Share on Reddit (Opens in new window) Reddit
  • Share on X (Opens in new window) X
  • Share on Tumblr (Opens in new window) Tumblr
  • Share on Facebook (Opens in new window) Facebook
  • Share on LinkedIn (Opens in new window) LinkedIn
  • Share on WhatsApp (Opens in new window) WhatsApp

Like this:

Like Loading...

Filed Under: Random Fun

Thank you Scott!

November 5, 2015 by kostadis roussos 1 Comment

Whe I started my career, my first boss on my first day told another engineer:

Are you doing anything useful or are you just breathing my air?

He then later turned to me and informed me that there was this five year rule. And I asked what is the five year rule?

And he said:

You keep your mouth shut for five years.

And so I learned to model that behavior. I thought being a technology leader meant being a dick.

And then I met Scott Schoenthal at NetApp and learned that you could be a polite civil and compassionate leader. That being nice was a better way to lead. That ripping people to shreds, publicly shaming them, calling them names wasn’t the only way you could get your point across.

I didn’t always model my behavior after Scott – Lord knows how many rants I produced in this life …but I am glad I learned about that other way to lead.

As an engineer it’s easy to see the cantankerous asshole email and say: I want to the guy who writes that email. Writing that email means you arrived. It means you are the man.

Except it doesn’t. It means you are an asshole. You are reveling in your ability to abuse someone who is defenseless. You are modeling poor behavior.

Just Don’t Do It.

Scott Schoenthal was the first person to show me another way….

Share this:

  • Email a link to a friend (Opens in new window) Email
  • Share on Reddit (Opens in new window) Reddit
  • Share on X (Opens in new window) X
  • Share on Tumblr (Opens in new window) Tumblr
  • Share on Facebook (Opens in new window) Facebook
  • Share on LinkedIn (Opens in new window) LinkedIn
  • Share on WhatsApp (Opens in new window) WhatsApp

Like this:

Like Loading...

Filed Under: Random Fun

Misunderstood Math and Big Data

March 21, 2015 by kostadis roussos Leave a Comment

Over the last year, I’ve met a number of autodidacts in the big data space. They take some big data database, grab some statistical method they poorly understand and create chaos.

The problem is that an army of systems engineers have made it possible for people who don’t understand statistical methods or machine learning to use tools they are woefully unqualified to use.

My wife called me up yesterday to tell me this joke about physicists and mathematicians.

Thing is I had heard this joke many, many, many years ago that I found amusing but not super funny. And yet when she told me to think about all of those big data projects, I died laughing. When she got to the punch line, I was laughing so hard I couldn’t breathe.

 

Share this:

  • Email a link to a friend (Opens in new window) Email
  • Share on Reddit (Opens in new window) Reddit
  • Share on X (Opens in new window) X
  • Share on Tumblr (Opens in new window) Tumblr
  • Share on Facebook (Opens in new window) Facebook
  • Share on LinkedIn (Opens in new window) LinkedIn
  • Share on WhatsApp (Opens in new window) WhatsApp

Like this:

Like Loading...

Filed Under: innovation, Random Fun

Toddler Meets Cloud, world ends

January 26, 2015 by kostadis roussos Leave a Comment

My son and I visited my friend Jason’s house and while he was there Jason’s wife offered to let the kids watch a children’s movie. Jason, an early cord cutter, fired up Netflix and quickly had them watching a Curious George movie.

Half-way into the movie, as I had forewarned Nicholas, we headed out. Nicholas was appalled. He was convinced that he would never see how this movie ended. I had to promise him, repeatedly, that he would get to see the movie. Nicholas was dubious.

We arrived home, and mommy told Nicholas that the movie was in The Cloud and we would watch it later. Nicholas turned to mommy and asked:

Are we going to see the movie through the window or outside on the clouds?

We both started to laugh hard. And cursed the fact that we had not recorded this for posterity.

Daddy who works on cloud infrastructures, with  Mommy’s help – oh okay Mommy is much better at explaining and she did most of the explaining … , explained what cloud was.

Here’s what Nicholas understood:

Share this:

  • Email a link to a friend (Opens in new window) Email
  • Share on Reddit (Opens in new window) Reddit
  • Share on X (Opens in new window) X
  • Share on Tumblr (Opens in new window) Tumblr
  • Share on Facebook (Opens in new window) Facebook
  • Share on LinkedIn (Opens in new window) LinkedIn
  • Share on WhatsApp (Opens in new window) WhatsApp

Like this:

Like Loading...

Filed Under: innovation, Random Fun Tagged With: Cloud

Because some 1’s are 0’s and some 0’s are 1’s

December 29, 2014 by kostadis roussos 1 Comment

When I was an aspiring software engineer at my first job at SGI in 1996, I asked my friend and mentor why a specific kernel debugger wasn’t working.

He gave me an answer, but even then my unwillingness to be satisfied with a curt answer was – well – annoying. He looked at me as I tried to get a more interesting answer than just – well the configuration didn’t work and realized that he needed to get on with his life than answer one more annoying question from this freshly minted new grad.

His response to my: well okay but really what was going what was the fundamental issue?

His answer was legendary:

Because some of the 1’s that should have been 1’s were 0’s and some of the 0’s that should have been 0’s were 1’s

I love the answer. It was a brush off, but at the same time was deeply insightful. At the end of the day the reason software doesn’t work can be reduced to a string of 1’s and 0’s that aren’t correct.

And many years later my son repeated this to me when I asked his mom why the database wasn’t working:

Apparently some sayings endure.

Share this:

  • Email a link to a friend (Opens in new window) Email
  • Share on Reddit (Opens in new window) Reddit
  • Share on X (Opens in new window) X
  • Share on Tumblr (Opens in new window) Tumblr
  • Share on Facebook (Opens in new window) Facebook
  • Share on LinkedIn (Opens in new window) LinkedIn
  • Share on WhatsApp (Opens in new window) WhatsApp

Like this:

Like Loading...

Filed Under: Random Fun

Why we can’t have nice things

December 24, 2014 by kostadis roussos Leave a Comment

KMM8q

 

This really captures how different disciplines see each other!

The way to really read this:

  1. Look across the discipline you belong to
  2. Look diagonally across to see how each discipline sees itself
  3. Look vertically down to see how we wall see sysadmins.

 

Share this:

  • Email a link to a friend (Opens in new window) Email
  • Share on Reddit (Opens in new window) Reddit
  • Share on X (Opens in new window) X
  • Share on Tumblr (Opens in new window) Tumblr
  • Share on Facebook (Opens in new window) Facebook
  • Share on LinkedIn (Opens in new window) LinkedIn
  • Share on WhatsApp (Opens in new window) WhatsApp

Like this:

Like Loading...

Filed Under: Jobs, Random Fun

  • 1
  • 2
  • Next Page »
 

Loading Comments...
 

    %d