Stray Thought Adam Stone's Home on the Web

A View from the Golden Age of Board Games

If you spend time in the board gaming community, you’ll eventually hear people talk about the “Golden Age of Board Games.” The one small problem is that nobody seems to agree on exactly when or what this golden age is. Historians may place it in the distant past, while newer gamers and industry voices tend to say we’re living through it right now, or perhaps that it just recently ended.

I believe the story is more complicated. The past few years have undoubtedly been good ones for certain types of games and certain industry business models. These prosperous times have attracted investment and attention, but they’ve also created a market crowded with similar products and a more homogenous gaming culture. And as any ecologist will tell you, homogenous ecosystems also tend to be fragile. That fragility leads publishers to grow conservative, fearful that changing customer preferences or economic conditions could threaten their businesses. It’s not easy being golden.

A closeup of a wooden chess pawn topped with a tiny golden crown, flanked by rows of pawns on either side

Setup Phase: Laying the Board on the Table

I don’t claim to be a historian of games, just someone with the perspective of a lifelong gamer. I grew up in a house where my parents kept a closet full of board games we played regularly. As a kid, I pored over my dad’s SPI games, careful not to lose a counter or damage a paper map. Over the years, my gaming touchstones grew to include Dungeons and Dragons, Axis & Allies, and Diplomacy. I learned to play Magic the Gathering on the wildly unbalanced Unlimited Edition. And sometime in college, between games of Axis and Allies and Diplomacy, I played my first game of Settlers of Catan (now simply CATAN).

After college, I got more involved with Play by Email Diplomacy. I have never been a big convention-goer, but I attended a few around this time, including DipCon XXXIV in Denver, where I was playing at the table next to Edi Birsan’s legendary Immaculate Concession. My wargaming peaked around these years with an epic World in Flames campaign and explorations of classic games from before my time, like Flat Top. I have even beheld firsthand the immensity of The Campaign for North Africa, considered by some the longest and most complex wargame ever published.

Like many American game enthusiasts in the 1990s, my perspective on board games’ potential was reshaped by contact with contemporary European design. While “eurogame” has become a vaguely defined term today, it originally referred specifically to games developed and published in Europe, characterized by language-independent design, indirect player conflict, and non-military themes.

Although I remain a game omnivore who enjoys everything from wargames to party games, most of my current gaming falls into what I would categorize as “hobby gaming,” which I describe broadly as the activity of the dedicated community that has arisen around contemporary tabletop games. As it is in most hobbies, the gaming community is integrally connected to a network of professional and commercial interests, including publishers, retailers, conventions, and media.

Opening Moves: What Makes an Age Golden?

When people claim we’re in a golden age of board gaming, they typically point to the volume of new releases, the quality of designs (referring variously to design or production quality), the size of the market, and the proliferation of board gaming events.

I used to hear more celebration of game diversity, but this seems less common now than it was 20 years ago. This reflects a real shift in the industry toward larger, more elaborately produced games and away from smaller, more economical ones. Crowdfunding platforms, which have become critical channels for discovery and marketing, contribute to the escalating expectations around new major releases. Where crowdfunding once largely served to help small publishers validate demand for projects, it now draws consumers’ attention to projects’ growing scale and ambition. You’re not just buying a game, you’re participating in a campaign! As more and more money rolls in and the game swells with stretch goals and bonus materials, the excitement of the campaign can overshadow the long-delayed enjoyment of playing the finished product.

Publishers have adapted to these raised expectations by adopting familiar strategies from other parts of the media world, relying on established intellectual property, sequels, and series to manage risk. This isn’t entirely new, of course. Before Settlers was CATAN, there were Seafarers, Cities and Knights, expansions, and expansions for expansions. But when one of the most popular recent releases, Wingspan, spawned fantasy (Wyrmspan) and aquatic (Finspan) followups, the community couldn’t help poking a little fun at the emerging pattern of “Thingspans”.

Early Game: The Play Remains the Same

The repetitiousness of popular new releases is no joke. When Wingspan became a commercial success with its then-unusual birdwatching theme, the market responded with all manner of plant- and animal- and nature-themed card collecting games. Even visual presentation serves a commercial end: talented artists do amazing work, but once successful, the industry transforms them into marketable brands. And that’s not even considering the recognizably one-note visual slop of AI-generated graphics, sadly becoming more common.

Gameplay itself is growing monotonous, in part due to the growing role of conventions in the hobby. Playing with strangers in a convention setting is very different from playing with friends at home. Some players react badly when they feel they’re being attacked, so managing conflict at a table can be challenging. It’s even more difficult when friends and strangers play together, as often happens at conventions. It’s no accident that designers and publishers attuned to the needs of convention play tend to create games with limited player interaction, sometimes derisively called “multiplayer solitaire.”

This may be my own bias talking here. I’ve never been comfortable at large conventions, and even my limited participation has exposed me to bad experiences with problem players. But interestingly, Diplomacy—a game with an undeserved reputation as a “friendship killer”—has one of the most cordial communities I’ve encountered in the hobby. I have only ever had positive experiences playing this high-conflict, betrayal-heavy game face-to-face with strangers at conventions. One reason may be that it’s an established game with a dedicated community, whereas mainstream hobby gaming focuses on newer releases with fewer established expectations.

Midgame: The Consumption Machine

The focus on new releases is driven by board game media and publishers who rely on these channels for publicity. Gaming content increasingly centers on acquiring new games, creating a whole subgenre dedicated to reviews and buying guides. Content creators face tremendous pressure from both audiences and sponsors to produce definitive verdicts on games as early as possible in their release cycles.

With the predominance of crowdfunding, much of this coverage occurs before games are widely available, requiring advance copies and publisher collaboration. Unsurprisingly, this arrangement creates significant conflicts of interest and conditions ripe for misbehavior, as we’ve seen in cases like that of the Quackalope YouTube channel.

Even honest reviewers work under intense time pressure, creating a media environment full of superficial impressions based on little play time and even less reflection. It’s just not possible to produce thoughtful analysis of an unreleased game comparable to what you could create for a game that’s 20 years old, like Twilight Struggle, or 30 years old, like Settlers of Catan, or 66 years old, like Diplomacy.

But this isn’t solely a media issue, and the fact is that most new games aren’t designed to be played in 66 years, or even 20. They’re created to look impressive, drive successful crowdfunding campaigns, be easy to review, learn, and teach, and play reasonably well during early learning sessions (often with unfamiliar players you won’t see again). If particularly ambitious and farsighted, they’ll include hooks for expansions or sequels. In short, they primarily serve the industry’s commercial interests rather than hobbyists’ personal enjoyment.

Interlude: The Things We Lost in the Dark

One example of what today’s “Golden Age” seems unable to produce is Nacht der Magier. This innovative game casts players as wizards gathered around a magic campfire, with a unique twist—it’s played in complete darkness. The elevated board features only a few glow-in-the-dark elements to guide players as they try to land one of their glowing cauldrons in the central divot. They cannot see most of the obstacles that fill the board, and they must end their turn as soon as any piece falls off, signaled by the sound of wood hitting the tabletop.

Such a game would struggle to succeed today. It’s essentially impossible to play at a convention, requiring darkness and light-charged phosphorescent pieces. It can’t be effectively demonstrated in a youtube video. It’s an intimate experience, played huddled together in the dark with hushed voices listening for the clatter of falling pieces to break the tension.

It’s also a bit complex to produce, requiring custom wooden and plastic pieces with glow-in-the-dark printing. And unfortunately, for a game with targeted appeal, production complexity alone likely takes it out of the realm of economic feasibility.

The game may not be for you personally. Its BoardGameGeek reviews are not all glowing. But even though Nacht der Magier isn’t for everyone, I find it hard to argue that it is good for the hobby for there to be so little room for such innovative designs. Hobbyists sometimes look down on “kids’ games,” but it’s precisely through these games—designs for kids that can be enjoyed by grownups—that we transmit our love for this hobby to the next generation of players. My school-aged daughter had a sleepover a few months ago, and I can confirm that Nacht der Magier was a hit.

Late Game: Bright Spots

Despite the challenging environment, designers and publishers continue to do interesting and challenging work. Stonemeier Games, despite receiving gentle ribbing for their Thingspans, consistently produces a variety of high quality designs. Niche publishers like Hollandspiele and New Mill Industries use small print runs and just-in-time production to produce designs that larger publishers can’t or won’t.

On the design side, Cole Wehrle has found commercial and critical success doing diverse and innovative work. His recent games range from asymmetric conflict in a fantasy (Root) or historical setting (Pax Pamir) to sci-fi campaign games that creatively combine gameplay mechanics (Arcs), to an ambitious and earnest exploration of colonialism (John Company). Even if these games don’t appeal to you, they clearly avoid repetition.

While I appreciate these creative outliers, they remain exceptions to the rule. As the industry mainstream grows larger and louder, the vital work being done outside of it seems increasingly marginalized by comparison.

Final Scoring: Reconsidering the Golden Age

Considering how much the hobby has changed during my life, I can’t deny that we’ve likely been living through some kind of golden age. What remains unclear is whether it has ended, and whether it was as golden as it could have been. I can’t celebrate the commercial pressures that have limited our imagination as players and reduced the space for innovation. And I remain particularly skeptical of the role commercial interests play in prioritizing consumption and acquisition over enjoyment.

Speaking for myself, I like variety, creativity, and innovation. I believe a healthy hobby publishes diverse games, even if not all appeal to me personally. And while the end of this golden age may hurt commercial interests, it might not be so bad for the hobby as a whole. After all, many of us now have shelves full of great games, and we’ll have plenty of time to enjoy them while we wait for the next golden age to begin.

Hijacking Mercy with the Language of Power

Looking up from below at the hundreds of block-shaped weathered steel monuments suspended from the ceiling of the National Memorial for Peace and Justice
photo by Ron Cogswell: The National Memorial for Peace and Justice website (Montgomery, Alabama 2019)

I first encountered Bryan Stevenson and his work nine years ago. Google, my employer at the time, invited him to speak about his nonprofit, the Equal Justice Initiative (EJI), which provides legal representation to people who have been subjected to unjust treatment during criminal proceedings or incarceration. His talk, which is posted on YouTube, moved me profoundly, and I went on to read his book, Just Mercy.

A core idea motivating Bryan Stevenson’s work, laid out both in that talk and in Just Mercy, is that “Each of us is more than the worst thing we’ve ever done.” In his context, that “worst thing” could be quite terrible. While its work includes representing the falsely accused, EJI often represents people who truly have committed heinous crimes.

It takes a special kind of moral clarity to represent and seek justice for a murderer who has been abused in prison. After reading Just Mercy, I found myself much more attuned to the many ways our society discards those deemed unworthy of fair treatment. We can’t call justice a foundational social value if it is contingent. If there are things we can do to have the protection of the law withdrawn from us, then that protection isn’t really meaningful. Everyone whose work touches criminal investigation, trial, or punishment should be held to the highest standards because of, not despite, their impact on those who may have done horrible things.

Lately, however, I’m troubled to hear this language of mercy and second chances voiced in some unexpected places.

When venture capital firm Andreessen Horowitz (a16z) hired a man freshly acquitted for choking Jordan Neely to death on the New York subway, they told their investors, “We don’t judge people for the worst moment in their life.” Notably, nobody disputes the fact that a16z’s new investment associate killed a man on the floor of a subway car. He was acquitted only because a jury did not deem that act to be a crime.

Similarly, when a 25-year-old staff member of the new “Department” of Government Efficiency resigned over vicious tweets endorsing racism and eugenics, the Vice President of the United States dismissed it as “stupid social media activity” that shouldn’t “ruin a kid’s life.” The staffer was promptly reinstated into his role as a “special government employee.”

These echoes of Stevenson’s words might sound familiar, but they deserve careful scrutiny. Have a16z or the current administration ever invoked mercy as a broader goal? Not so far as I can tell. Beyond a handful of podcast episodes posted five years ago, Andreessen Horowitz’s engagement with criminal justice seems limited to investing in drones and surveillance technology. Their founding partner made such large personal donations to the Las Vegas police that he felt the need to write a petulant response when investigated by journalists. Regardless of how worthwhile it may be to buy drones and cappuccino machines for the police, I think it’s fair to say that these investments do nothing to advance the cause of building a merciful society. As for the administration, its tough-on-crime rhetoric speaks for itself.

So what’s really happening here? One obvious answer is that hiring a killer and refusing to accept the resignation of an unapologetic bigot are ways to sanction their behavior. We like to believe we maintain social norms against killing someone when it could be avoided and against racist public statements. Rejecting these norms requires some affirmative signal, and that’s what a16z and the administration are providing.

This reveals the first crucial distinction: Stevenson calls on society to recognize the rights of those who do wrong. In contrast, these recent cases are declarations that certain acts are not wrong at all, and even more troublingly, they suggest that those who still maintain longstanding social norms are themselves the wrongdoers.

But there is a second important difference, one hidden by rhetorical sleight of hand. When EJI takes a case, they fight for fundamental civil rights: the right to a fair trial, to representation, to be sentenced fairly, and to humane punishment. By contrast, in these other cases, the talk of “ruined lives” is a misdirection disguising what’s really happening: the loss of positions of extraordinary influence and privilege.

When the Vice President claims a racist’s life has been ruined, he’s talking about someone losing a powerful role in the federal government, treating an immense privilege as though it were a basic right. And if we take a16z at their word, they seem to be claiming that it would be unfair not to elevate a killer to the investing team at one of Silicon Valley’s biggest venture firms. They’ll have to forgive my skepticism that you or I would get very far with that approach if we applied for such a coveted role.

I’m reminded of the 2018 Brett Kavanaugh Supreme Court confirmation hearings, when supporters claimed that sexual assault allegations against him were intended to “ruin his life.” Obviously, they didn’t, but even if they had prevented his appointment to the Supreme Court, was that his right? Would his life have been ruined had he instead returned to his previous role as a federal judge on the DC Circuit Court of Appeals? I’d wager many people would gladly accept that kind of “ruined” life.

But of course, this is nothing more than a flimsy, bad faith attempt to cloak approval for violence and eliminationism in lofty language. If you spend your time, like Bryan Stevenson, ensuring that the poor and marginalized are afforded basic rights and dignities, then I believe in your commitment to mercy. If, on the other hand, you spend your time granting vast privileges to people who harm the poor and marginalized, then you’re not showing mercy—you’re showing your hand.

The Power Broker and the Complicated Work of Sympathy

A closeup of The Power Broker by Robert Caro sitting on a dark wooden table

One of the best things I did last year was to read Robert Caro’s classic 1974 biography The Power Broker: Robert Moses and the Fall of New York. I finally tackled all 1,162 pages of it (plus 80 more pages of notes), so it can be retired from the shelf of shame where I keep the massive books I want to read but never get around to. (Look out, Infinite Jest.)

I was inspired by the 99% Invisible podcast, which covered The Power Broker in a series of episodes that ran like a virtual book club. Now that all 12 episodes have been posted, you can follow along at your own pace, but I recommend taking your time with it, because there is so much to enjoy about the book.

Calling The Power Broker a biography doesn’t do it justice. More than a picture of one (admittedly significant) individual, it is an exploration of power, how power flows both through and around democratic institutions in America, and how power etches itself into the physical structure of our cities, highways, parks, and homes. It is also, in its way, a love letter to New York in all its multitudinous possibilities: the many faces of New York experienced by its residents as well as the many New Yorks that once existed or might have existed. It is a monumental work written with extraordinary grace.

Unlike readers in 1974, I approached the book already aware of Robert Moses’ reputation as a villain of urban planning. While I found ample evidence supporting that view, I also found something more profound: an invitation to understand a man who caused immense harm to the city he claimed to serve without excusing or minimizing that harm. Nowhere is this challenge more powerfully presented than in the book’s conclusion, where Robert Caro frames and reframes Moses, forcing readers to confront the complexity of this figure, contradictions and all.

The final chapter, simply entitled “Old,” finds Moses just after the end of his nearly 44-year-long career as a public official, a time during which he never once held elected office. By this point, readers have witnessed how Moses reshaped America’s largest city through an unprecedented campaign of public development. The New York we know today would be unrecognizable without his influence. But readers have also seen his utter contempt for many of the city’s people, including but not limited to his famous and flagrant racism. Again and again, Moses callously dismissed those he deemed unworthy simply for being in his way.

The cost New York paid to realize Moses’ vision is staggering. From the benighting of Sunset Park beneath the Gowanus Parkway to the way the Cross-Bronx Expressway chopped up East Tremont like a meat axe—Moses’ words, not Caro’s—the impact on these broken neighborhoods and displaced families is impossible to fully comprehend. The bill for all this so-called development has still not been fully paid. Today, it’s a cost paid by travelers and commuters wasting their time in traffic and by residents leading lives made shorter and sicker by pollution.

Yet in the final pages of the book, Caro achieves something remarkable. He presents us Moses at nearly 80 years old, stripped of power and fading from relevance. Thrust into retirement, Moses shrinks into a frustrated and disappointed figure. Despite receiving occasional recognition that falls short of his grandiose expectations, he finds himself increasingly criticized by the very public that once celebrated him. Somehow, Caro manages to inspire a flicker of sympathy for this vain, arrogant bully who deceived and mistreated so many for so long in so many ways.

And then, in the famous closing paragraphs of the book, Caro subtly, masterfully, fractures that sympathy.

In private, his conversation dwelt more and more on a single theme—the ingratitude of the public toward great men. And once, invited by the Church to speak at the dedication in Flushing Meadows Park of the Excedra, a huge, marble bench for reflection donated by the Roman Catholic Diocese of New York, he gave vent to his feeling in public. Turning to a high church official who was also an old friend, his voice booming out over the public address system, he said:

“Someday, let us sit on this bench and reflect on the gratitude of man.”

Down in the audience, the ministers of the empire of Moses glanced at one another and nodded in their heads. [Moses] was right as usual, they whispered. Couldn’t people see what he had done?

Why weren’t they grateful?

Caro spends the bulk of the last chapter reminding readers that, despite his posturing, Moses is merely a man, as pitiful and flawed as any. But this final anecdote is a warning that sympathy cannot excuse Moses. He is humiliated in his dotage, but unremorseful. He demands thanks, not forgiveness, for the damage he caused.

There is a powerful lesson here. It’s tempting to write off people who do harm as monsters, but at some level, this means falling into the same trap that enabled Moses’ worst acts: the failure to see others as fully human. Caro challenges readers to fully apprehend Moses—or, I’d argue, any historic wrongdoer—by maintaining moral clarity about the damage he did while resisting the urge to anathematize him as a caricature of evil.

In our current moment, when public discourse rewards superficial judgments that fit into tweet-sized declarations, The Power Broker is more valuable than ever. It demonstrates that embracing nuance does not demand surrender to moral ambivalence and shallow bothsidesism. Within this deeply researched and profoundly humane work, readers have room to stretch out and wrestle with complex questions about the public good while maintaining clear-eyed judgment about right and wrong. Even 50 years after its publication, it remains a unique and precious meditation on cities and the flawed humans who live in and shape them. I’ve thought about it every day since I finished it and will undoubtedly revisit it here in future.

If You're Looking for Inspiring Technology, Grab a Guitar

It wasn’t long ago that computers were considered “high technology.” The “high” modifier mostly goes unspoken these days. When people say “tech,” they usually mean computing technology: networks, hardware, software, and the companies that build them. Other technological domains need to be distinguished with special monikers: biotech, cleantech, medtech, fintech, and the like. And increasingly, when people talk about tech, they don’t have much positive to say. This growing disenchantment stems from two sources: the business practices of tech companies and tech products themselves.

Google’s recent decision to force Gemini AI tools into all Workspace accounts exemplifies the way tech companies prioritize their business interests over user needs. The saying, “If you’re not the customer, you’re the product” may not be completely true, but it captures how it feels when companies alienate (if not outright exploit) their users. Thanks to this contentious relationship, the term “enshittification” has entered the lexicon to describe the gradual degradation of tech products once they have an established user base.

But bad business practices don’t tell the whole story. Many modern tech products disappoint by design. With a focus on capturing the attention of distracted users, designers pursue simplicity above all else, creating experiences where all meaningful choice has been stripped away. As users, we find ourselves senselessly plodding through predetermined flows or endlessly scrolling across a sea of worthless content. We’re missing out on more than just enjoyment; we’re losing our ability to imagine something better.

We’re Asking Too Little of Our Tools

A particularly apt expression of our diminished technological aspirations can be found in a viral tweet by author Joanna Maciejewska, who wrote:

You know what the biggest problem with pushing all-things-AI is? Wrong direction. I want AI to do my laundry and dishes so that I can do art and writing, not for AI to do my art and writing so that I can do my laundry and dishes.

This tweet resonated with so many people because the sentiment at its core is correct. Technology—not just AI—should free us from drudgery. But if that’s all we aspire to achieve, we’re aiming too low. Truly powerful technologies don’t just mitigate the tedium of daily life. Great technologies help us live in ways we never thought possible.

The patent illustration on the application for the Gibson Les Paul electric guitar from 1955 showing the shape of the guitar head, neck, and body with detail views of the bridge
USPTO public domain

Of Guitars and Chainsaws

Some of the best examples of transformative technology aren’t “high tech” at all. Consider the guitar. It might not be the first thing that comes to mind as a form of technology, but that’s exactly what it is: a human-designed tool created to achieve human ends.

What makes a guitar special is that it does more than merely enhance its user’s capabilities—it creates new ones. Put another way, a guitar doesn’t just improve the human body’s natural music-making ability; it creates distinct new modes of musical expression. Generations of musicians have explored those modes without exhausting them. And, importantly, a guitar player and a piano player are not exploring a shared space of musical possibilities with different tools. Instead, each one is engaging with a distinct set of complex interactions between player and instrument. The music is shaped by the instrument, and that relationship expands the musician’s creative potential.

Another example may help illustrate this point. When you use a chainsaw to cut branches, it’s simply a better tool for an existing task. But in the hands of a chainsaw sculptor, it’s far more than a faster chisel. It’s a distinctly different way to sculpt, as reflected in both the creative process and the final work.

Modern Tools, Traditional Principles

Nothing prevents software and other “high tech” products from offering this kind of expressive range, and some do. A graphics editor like Adobe Photoshop isn’t an improved paintbrush; it’s an entirely distinct tool for visual creation. A spreadsheet like Microsoft Excel, far from being merely a better calculator, gives users entirely new ways to model, analyze, and express data. The integrated development environments (IDEs) used by software engineers don’t just make coding faster, they fundamentally change the relationship between code and coder.

The world of digital music, which dates back to the earliest days of computing, offers still more examples. Today’s digital audio workstations let musicians mix and edit tracks in ways that were impossible with the studio tools of yesterday. Audio programming languages allow artists to express music in mathematical terms. Synthesizers create entirely new instruments, free from the limitations of the physical world. It would be a mistake to consider these simply better versions of traditional music tools. They are better thought of as wholly new tools that open new creative possibilities for artists to explore.

Building Tools Worth Mastering

To create more transformative technologies, those of us in the industry must fundamentally reconsider our approach. The push to build simplistic, restrictive products for minimally engaged users is self-defeating. The tech industry serves neither itself nor its users by building every product as if it were a social media app or a shopping website.

This misguided approach was recently highlighted when an AI company’s CEO claimed that people don’t enjoy making music. Satisfying as it would be, I’m not going to spend a lot of time dropping the elbow on these shallow, foolish statements. I bring them up because they so clearly articulate how poorly many industry leaders understand their users’ needs.

Conventional wisdom in our industry would consider guitars “bad” products. They take time to learn, allow for mistakes, and can be frustrating to master. But these are not flaws; they are common characteristics of profoundly empowering tools. To be clear, I am not arguing against user-friendly design. Rather, I’m saying that too often, we build products with a feeble grasp of who the user is and what genuinely serves their interests. After all, I’ve never met a guitarist who complained that their instrument isn’t user friendly enough.

The tech industry, driven by social and commercial forces, puts ever-increasing investment behind products that are easy to pick up but have limited value. That’s the right approach in some cases, but it shouldn’t narrow our broader understanding of what technology can be. We risk forgetting that the most powerful technologies are those that grow with us and challenge us to do and be more.

The people of the future deserve tools that expand human potential. The goal shouldn’t just be to make life easier—it should be to make new ways of living possible.

Good Technology Doesn't Pretend to Be Human

The patent illustration on the application for the Lego minifigure from 1979 showing four perspective views of the figure in walking and seated poses
USPTO public domain

Confessions of a Self-Checkout Devotee

I like using self-checkout at the store. This comes as no surprise to my mother. As she tells it, when I was a kindergartener, any time I was asked what I wanted to be when I grew up, I’d happily declare that I would be a cashier at the supermarket. Years later, a summer behind the register at the Almacs in town cured me of whatever remained of that ambition, but even today, most of my grocery and pharmacy shopping trips end with me ringing myself up.

That’s not to say that I enjoy all self-checkout experiences. I particularly dislike those that slow down the process with clumsy and frankly insulting anti-theft measures. Despite retailers’ claims, I just don’t believe that self-checkout increases shoplifting risk. In fact, it’s well established that retailers lie about the amount and causes of theft they experience. It seems to me that the traditional approaches to shoplifting, like concealing items in your clothes, remain far more practical than trying to perform self-checkout sleight of hand.

Even accounting for that caveat, I accept I’m in the minority. I suspect media coverage overstates the case when they claim that self-checkout is a “failed experiment” (Tasting Table) that “nobody likes” (CNN) and “hasn’t delivered” (BBC). But I do accept that, on the balance, people prefer human cashiers. Incidentally, my own experience as a human cashier does not suggest that this preference manifests as kindness.

So be it—I don’t mind being out of step with the mainstream. As an introvert, I don’t see paying for groceries or toilet paper as an experience that demands the human touch. I feel perfectly comfortable interacting with a tool to scan my items, calculate the total, and pay. My father falls into the opposite camp. I don’t know if he’s ever used a self-checkout lane, and he avoids ATMs so he can chat up the bank tellers.

A Waiter is More Than a Talking Order Form

Both of us, I submit, have reasonable preferences. It should be no problem for some of us to prefer interacting with people and others to prefer interacting with tools. I also don’t think these preferences are fixed. I might prefer the self-checkout lane, but I still value recommendations from a knowledgeable butcher or cheesemonger.

But my father and I both prefer to know when we’re dealing with a person and when we’re interacting with a tool. Until recently, this distinction was obvious, but we now live in the post-Turing-test age. Large language models (LLMs) give product designers the power to build conversational interfaces that mimic human interaction, and I think we are only beginning to grapple with the most effective and responsible ways to use these technologies.

This problem isn’t completely novel. Even before computers, people developed ways to address some of the shortcomings of natural language as an interface. Consider humble technologies such as invoices or order forms, perhaps like those used at sushi restaurants. These tools work in contexts where structured data is superior to narrative, even without computers involved, and their nature as tools is transparent.

Beyond Preference: A Question of Trust

Maintaining that transparency is going to be the real challenge. Judging by the current crop of LLM-powered products hitting the market, it seems many designers assume that people who prefer human interaction will also prefer tools with human-like interfaces. I believe they are gravely mistaken. Even worse, I think this misunderstanding suggests that some designers would deliberately deceive their users into believing they are interacting with a human being when they are not.

Not only does this deeply misread users’ preferences, I contend as a rule that it’s unethical for product designers to mislead their users.

True, not every user cares whether they are interacting with a person or a tool. In fact, I must admit that I’m somewhat surprised by how many people don’t. But many care profoundly about that distinction, seeing it at the heart of ethical reasoning.

This isn’t just a philosophical question. It’s an emerging challenge that should prompt us to rethink the way we design and use technology. The traditional divide between preferring human or automated service may soon be less relevant than a new question: Do you want to know whether you’re talking to a human or a machine?

Ludography 2024

Tabletop gaming, mostly in the form of board and card games, is my biggest hobby. I’m also the kind of game nerd who keeps notes. This may sound unusual to outsiders, but it’s common enough within the community that several game logging tools have sprung up, including the one I use, Board Game Stats.

Armed with a year’s worth of data now that the last games of 2024 have been recorded—yes, I did get two plays in on New Year’s Eve—I’m looking back and reflecting on another year in the hobby.

A board game with colorful painted pieces spread out on a library tabletop extending out into the distance with shelves in the background
Photo by Christopher Paul High

Some Big Numbers

By my standards, I did a lot of gaming this year, logging 278 total plays. My busiest month for gaming was January, when I played 49 games, but I didn’t break 30 in any subsequent month. I was surprised to learn that I logged more games than a few of my convention-going friends just playing online, attending weekly game nights, and playing occasionally on the weekends.

I also played a wide variety of games: 129 different titles hit the table this year. I did most of my gaming in person, with the split around 60-40 between live and online. I did most of my online gaming on Board Game Arena (BGA) and Yucata, in roughly equal proportion.

Fives and Dimes

Gamers who log their plays often share lists of games they’ve played at least five times (nickels), ten times (dimes), or more. This year, I racked up one quarter, three dimes, and nine nickels. A few games stand out when I look at the list:

Game Play Count
Mottainai 28
Ticket to Ride Legacy: Legends of the West 12
Ark Nova 10
The Castles of Burgundy 10
Heat: Pedal to the Metal 8
Splendor 8
Las Vegas 7
Thurn and Taxis 7
Coloretto 6
Ra 6
Splito 6
Just One 5
Skip-Bo 5

I’m unsurprised to see Mottainai atop this list for the second year in a row. I’ve been encouraging people to try it for years, but it can be a tough game to teach, and that limits its appeal. I’ll write about it more some other time, because I think it’s underappreciated and deserves the attention. For now, I’ll just say that I think it shines as a fast two-player duel, and I’ve found a wonderful community of players on Yucata who share my enthusiasm for it. I played it less often than I did in 2023, but I fully expect it to be my top game again in 2025.

Ticket to Ride: Legends of the West is a legacy game based on Ticket to Ride. It took my group about six months to play the full campaign. I’ve only played one other legacy game (Betrayal Legacy), so my basis for comparison is limited, but I enjoyed the campaign overall. The game introduces different mechanics from session to session, some persistent and others transient, so there’s quite a bit of variety in the gameplay. I also appreciated the balance between hidden scoring and public scoring in the campaign. My group had a good sense for who was in the lead, but we really did not know how close we were, and everyone felt “in it” throughout.

After playing it 10 times last year, I feel like I finally “get” Ark Nova. I still don’t love it, but I believe I better understand its appeal. All 10 of my plays were online, hosted on Board Game Arena, against friends from my IRL game group. We played all of them asynchronously, meaning we took our turns slowly over the course of several days, and that’s definitely how I prefer to play it. I feel much better connected to what my opponents are doing when I can click over to their tableaus and see what they have going on, something you seldom get to do when you’re at the table together.

Taken together, these 13 games account for 118 plays, or about 42% of my total for the year. My group tends to play a lot of new games, which is wonderful, so it doesn’t surprise me to see that I have a very long tail of 83 games I only played once.

New (To Me) Games

Several games I played for the first time in 2024 left strong impressions. Aside from the already-mentioned Ticket to Ride legacy game, three others stand out: Heat: Pedal to the Metal, Arcs, and HUANG.

Heat was unquestionably the biggest hit of the bunch. It took me a while to get my hands on it, since it seemed to become completely unobtainable after Shut Up & Sit Down’s glowing 2022 review. In my experience, racing games tend to fall to extremes, either very uninteresting or very interesting. It took a couple of years, but I’m delighted to report that Heat is, in fact, very interesting. The design captures the feeling of pushing your car to the limit—requiring you to build up the eponymous heat—but it really makes you pick your spots. Perfectly safe driving is just as unlikely to result in a win as driving like a maniac. And you experience that tension in a streamlined package that’s easy to learn and fast to play.

Arcs is a mid-weight, card-based space combat game that was one of the most talked-about 2024 releases in the hobby board game world. I only played it twice, and I have not been able to play a campaign yet, so I know I haven’t seen everything it has to offer. Sadly, it didn’t catch on with my regular game group. It seems to benefit from multiple plays, as both action selection and scoring can be a bit tricky (pun intended), depending on both cardplay and resource tokens. I want to give it more chances, but it may be hard to get back on the table.

HUANG, on the other hand, was very well received by my game group. Most of us are big fans of Tigris & Euphrates, which HUANG’s design is based on (by way of Yellow & Yangtze, which I’ve never played). It took us a couple of plays to adapt to the differences between the two games, but both are quite accessible to new players without sacrificing the depth that makes them so fun to play again and again. Both games are highly abstracted, somewhat unorthodox civilization builders where players control a set of leaders spread across different dynasties. As they rise, go to war, experience internal conflict, and fall, players try to position their leaders to benefit themselves, even if that means having different leaders on both sides of a conflict. I don’t think HUANG will ever displace T&E from my collection, but it’s different enough that I am happy to have both.

Predictions for 2025

Looking ahead to the new year, I’m optimistic that 2025 will be another good year for games. It’s my great fortune to have a wonderful game group, not to mention non-hobbyist family and friends who are more than obliging when it comes to trying weird games. My plan is to play more of the games in my collection and continue drawing down how many new titles I acquire, something I did pretty well last year.

As I already mentioned, I expect Mottainai to top my list of plays again this year. Just before the new year, I started a campaign of the new Clank! legacy game, so I expect that to make an appearance in this year’s dime list. I’d also be delighted to play the Arcs campaign at least once, and I have a few other games, old and new, that I’d like to get to table at some point. (I’m eager to try Votes for Women and to see if we can’t make Dune happen some weekend.) Beyond that, I’m always hoping to be pleasantly surprised by something unexpected, whether it’s a new release or an overlooked gem. In the end, I’ll be happy as long as I get to spend quality time having fun with good friends around the (real or virtual) table.

My Advent of Code 2024

A photo of a laptop in a darkened room displaying the green character rain effect from the Matrix
Photo by Markus Spiske

I participated in Advent of Code this year.

If you’re not familiar with it, Advent of Code is a programming challenge that runs every year over the first 25 days of December. Each day, the organizer, Eric Wastl, posts a prompt. Each participant gets a unique bit of input and has to provide a solution generated using their unique input. Then, once you have provided the correct solution, a second phase of the problem is revealed. There’s never any new input, but a complication is introduced that requires more solving and generates a new solution. Each part of the problem earns you a “star,” for a total of 50 possible stars each year.

The two-phase design of each puzzle is the thing I find most interesting about AoC. Coding up solutions to little toy problems is fun (and the tougher coding challenges remind me of the undergrad problem sets I cut my teeth on, thanks Stan), but, as any working programmer can tell you, having to go back over working code and make it do something else is a much more realistic slice of coding life.

I’m no expert on AoC. 2024 was my first year, and there are people who have solved every problem for ten straight years at this point. But I did solve both parts of all 25 problems, so I wrote up these notes on my takeaways in general and my favorite 2024 problem in particular.

General Thoughts

Especially because of AoC’s surprise reveal structure, you’re generally better off taking a direct approach. Getting fancy, and especially trying to optimize prematurely, can land you in a world of regret. I fell prey to this a couple of times early this year.

However, once you get the second part of the problem, it is important to reconsider your approach. The closest I came to missing a second star was Day 13. My initial solution was a simple greedy algorithm, but it was unworkable for the second phase. I spent longer than I would like to admit trying to break the problem down into something that would still allow me to use my original solution. I had to step away and give myself a brain break before I realized that I was actually looking at a (quite simple) bit of linear algebra. Two equations, two unknowns, one embarrassed programmer.

I know a lot of people use AoC and other coding challenges as opportunities to learn new programming languages or to challenge themselves by using unconventional or even counterproductive tools and technologies. For example, bsky user Corvus completed AoC using GameMaker to generate some cool visualizations. I used Python, which is kind of easy mode, even if you restrict yourself to standard libraries, as I did. Maybe next year will be a good opportunity to venture into Go or Rust.

Honorable Mention - Swapped Ripple Carry Adder

Before I write about my favorite problem this past year, I want to give an honorable mention to Day 24. The first part of the problem involved computing the state of a network of binary logic gates (AND, OR, and XOR) based on a set of inputs. That’s a pretty straightforward setup.

Then came the twist. Part two revealed that the inputs were supposed to be interpreted as the binary digits (that is, the 1s and 0s) of two large numbers. The network itself was supposed to operate as an adder producing their sum (also in binary). However, somewhere in the network, five wires had been swapped, and the problem was to identify the five pairs which, when switched back, would make the adder work properly.

At this point, I noticed something interesting: there were only 222 gates in the network. That seemed small for a 45-bit adder, so I started working out how many gates you’d actually need. I found a five-gate module for handling each bit position with carries, and for the least significant bits, which don’t have a carry, two gates suffice. Adding it all up, 222 was exactly the right number. That couldn’t be a coincidence. Instead of searching blindly, I built a static analyzer that looked for that five-gate pattern for each cluster of input and carry bits and complained about the ones that didn’t match. I used that to swap the gates manually in the input file and ran it through my original solution to validate the results. Definitely not the fastest way to solve, but I’d like to think my old computer architecture professors would be proud.

My Favorite Problem - Imaginary Disassembly

The problem I enjoyed most this year was undoubtedly Day 17. The setup presented a simple machine language for a hypothetical 3-bit computer featuring eight instructions, three registers, and no addressable memory. The instruction set included:

  • A conditional jump
  • A modulo-8 operation
  • An operation to XOR two registers
  • A set of operations that divide registers by a power of 2
  • An output operation

The input consisted of the initial state for the machine and a sequence of numbers to be used as a program. Unsurprisingly, the first part of the problem involved writing a little emulator to generate the output stream for the program. As I was working on the first part, I couldn’t help thinking ahead to the second part. With no way to change the program or initial state, I honestly did not know what to expect until I submitted my solution (which, incidentally, would have made those computer architecture professors proud, because it worked on the first go).

Then came the reveal: the program was supposed to be a quine—a program that generates its own source code as output. However, one of the initial register values needed to be changed to get the desired behavior (which, if you’re being a stickler, is bending the rules a bit for a quine), and the task was to find the smallest working value. Of course, you could try to approach this by brute forcing the register value, but that’s going to break down pretty rapidly. So, I started by “disassembling” the program into assembly by hand. The resulting pseudocode looked like this:

B := A mod 8  
B := B XOR 6  
C := A / (2^B)  
B := B XOR C  
B := B XOR 4  
OUTPUT B  
A := A / 8  
IF A != 0 THEN JUMP 0

The code processes the value in register A three bits at a time. Each iteration, it’s doing some bit munging between A’s three least significant bits and some of its other bits. Then it outputs the result of that munging, shifts A right by three bits, and repeats the loop until there’s nothing left.

So, the solution turns out to be pretty simple. The basic plan is to work backwards, building up a solution three bits at a time. The first iteration looks at which values of A from zero to seven will yield the final number in the program. Then, those values get shifted three bits to the left and the process is repeated for the next-to-last number, and so on.

Of all the AoC problems this year, this was the one that put the biggest smile on my face. It was clever, challenging, and ultimately not all that complicated. Thanks and congratulations to the organizers for ten years of challenges!

I’ve provided my actual code below. As proud as I am of it, I want to note that my priority was speed and efficacy. Under other circumstances, I would structure this code differently. I stored the emulator state in global variables for Part One, and it would have been a pain for me to do the right thing for Part Two and move that state into a structure that could be passed into the emulator for each run. So, no points for beauty here, but it did get the job done.

import sys

src_reg_A = int(sys.stdin.readline()[12:])
src_reg_B = int(sys.stdin.readline()[12:])
src_reg_C = int(sys.stdin.readline()[12:])
sys.stdin.readline() # Skip blank line
txt_program = sys.stdin.readline()[9:].rstrip().split(',')
program = [int(x) for x in txt_program]
reg_IP = 0
output = []

reg_A = None
reg_B = None
reg_C = None

def resetState():
    global reg_A
    global reg_B
    global reg_C
    global reg_IP
    global output

    reg_A = src_reg_A
    reg_B = src_reg_B
    reg_C = src_reg_C
    reg_IP = 0
    output = []

def decode_combo(operand):
    val = None
    if operand < 4:
        val = operand
    elif operand == 4:
        val = reg_A
    elif operand == 5:
        val = reg_B
    elif operand == 6:
        val = reg_C
    return val

def div_A(operand):
    divisor = 2 ** decode_combo(operand)
    return reg_A // divisor

def execute(opcode, operand):
    global reg_A
    global reg_B
    global reg_C
    global output
    match opcode:
        case 0: # adv
            reg_A = div_A(operand)
        case 1: # bxl
            reg_B = reg_B ^ operand
        case 2: # bst
            reg_B = decode_combo(operand) % 8
        case 3: #jnz
            if reg_A:
                return operand
        case 4: # bxc
            reg_B = reg_B ^ reg_C
        case 5: # out
            output.append(str(decode_combo(operand) % 8))
        case 6: # bdv
            reg_B = div_A(operand)
        case 7: # cdv
            reg_C = div_A(operand)

def runSim():
    global reg_IP
    while reg_IP < len(program) - 1:
        new_IP = execute(program[reg_IP], program[reg_IP + 1])
        if new_IP != None:
            reg_IP = new_IP
        else:
            reg_IP += 2

base_vals = [0]
while base_vals:
    base = base_vals.pop()
    solutions = []
    for i in range(8):
        checkA = (base << 3) + i
        resetState()
        reg_A = checkA
        runSim()
        if output == txt_program[-len(output):]:
            if len(output) == len(txt_program):
                print(f'SOLUTION FOUND {checkA}')
            else:
                solutions.append(checkA)
    if solutions:
        base_vals.extend(reversed(solutions))

New Blog, New Rules

A photo of an empty notebook turned to a blank page with a pen resting atop it
Photo by Jessica Lewis 🦋 thepaintedsquare

It’s only a few days into 2025, and I’m starting to blog again. I’ve been preparing for a little while now to launch this blog, getting hosting set up, trying out different site generators, and assembling some initial version of a design. But today is going to be Stray Thought’s official birthday.

I’m starting with a handful of goals and guidelines for this blog. I may revisit them, but I’ll be deliberate about making changes.

Goals

Seasons of Intentional Activity

I have tremendous respect for people who blog continuously for years on end. But I know from experience that writing regularly can become a grind, and I know that I experience seasons in my life. Certain times lend themselves to activity and creation, and others lend themselves to rest and renewal.

To get this blog started, I plan to write at least one substantial piece each week through the end of May, then take a break. The break may take the form of a complete hiatus, or I may just post less frequently or regularly for a while. When I’m ready to pick up another season, I’ll share my plans.

Broad Subject Matter

One piece of advice I see for people starting to post content online is to pick a lane and stick with it. This makes sense: you can build an audience more reliably if that audience knows ahead of time what kind of material they’re going to see. However, I don’t have a singular topic I want to focus on. So, I’m choosing a different path.

You can expect me to cover topics I think about a lot, like technology, how groups of people work together, and how games work from the perspectives of both the player and the designer. I will almost certainly also write about things I know less about as a way to work through my thoughts. All I ask is that if I stray from subject matter you’re interested in, don’t give up. I won’t stay away for long.

Value for the Reader

Beyond just covering a breadth of topics, I aim to bring something worthwhile to each one. There may never have been more media options than there are right now, for better or worse. I respect the fact that anyone who bothers to read what I write is forgoing a plethora of alternatives. In return, I will do my best to bring something meaningful—new information, a source you may not have seen, or at least my own perspective—to everything I discuss here.

Guidelines

Thoughtfulness Over Timeliness

It’s going to be impossible for this blog not to touch on contemporary issues and events. But I don’t intend to write rapidly or responsively enough to be a source for news. The online information environment has evolved an expectation that everyone comment on everything. I want to be clear from the start that I will not participate in this, and this blog’s lack of commentary on any topic does not mean that I lack an opinion.

Communication Over Comments

There are no comments on this blog. That is not an oversight. Online communication has been shaped historically by what’s easy to build, not by what encourages healthy communities, genuine relationships, or a constructive exchange of ideas. Communities that have grown up around message boards and comment threads require extensive moderation to be even somewhat functional, and even then, I find them poor substitutes for real human interaction. If I write something that really touches you, feel free to reach out. Better yet, write about it in your own damn blog and let me know.

Creativity Over Slop

Any project like this kicking off in the year 2025 is going to have to reckon with “generative AI.” Here’s where I stand: I am the author of all content here that’s not attributed to someone else. I don’t use LLMs to write for me or do my research. I don’t use text-to-image or text-to-video systems to create graphics. I am experimenting with using LLMs as writing aids, in particular for proofreading and editing. I may also use image editing tools that include AI functionality.

I think the best way to sum up my approach is that I am open to using tools that allow me to express myself authentically, and I am opposed to putting more autogenerated slop into the world.

What Comes Next

I’m starting this blog with clear intentions, and I’m laying them out here to prepare both myself and my readers. But worthwhile projects tend to evolve over time. These goals and guidelines should be foundations, not constraints. If I find myself moving in a new direction—and I probably will—I’ll take the time to explain what’s changing and why. Consider this a commitment to transparency rather than a guarantee that I’ll never change course.

A view down a jetty looking toward a breakwater and the ocean beyond under a clear blue sky