Mondfest in den Garten der Welt, 2014

Across the lake, Teehaus zum Osmanthussaft Strawberry white tea Jasmine Chang'e valuing her privacy

(Nothing makes me feel the age of my phone so much as its camera.)

Benjanun Sriduangkaew's The Archer Who Shot Down Suns: Scale-Bright Stories,1 and Scale-Bright itself, gave me a new appreciation for the holiday.

  1. Or skip to the most appropriate, and I think best, one Woman of the Sun, Woman of the Moon

GamerGate and Male Feminist Bullshit

There's a thing happening right now called GamerGate, and it's too complicated — maybe more accurately, too long — for me to summarize here. Brendan Keogh tries and Garrett Martin writes about why it's difficult to write about. (I usually prefer to link to women writing about issues like this, but in this issue most of the summaries are coming from men, and women are too busy making the actual arguments being summarized and ensuring their personal safety.) If you're confused as to why destroying 'gamers' is important, I recommend Leigh Alexander at Gamasutra, Ian Williams at Jacobin, and as usual, Liz Ryerson is incisive and right about everything. 'Gamer culture' devalues games, developers, critics, and players. It's a PR and marketing tool used to delineate and manufacture a demographic, then encourage them to spend lots of time and money doing, well, exactly what they're doing now.

There is massive corruption in games and games journalism. The actual corruption is stuff like taking $750k from the company you're supposed to be covering or trying to call out Ubisoft's bad practices but then participating in its drip feed of PR junk anyway or that one of the biggest publications is literally owned by GameStop or how videogame developers fund arms manufacturing or how YouTube reviewers (including ones backing GamerGate) are directly paid by developers for coverage etc. There's no end of real corruption and effectively none of it involves the few women and other people fighting marginalization in journalism or development.

I'm also not going to write more about that, because it is actually complicated, in a way that takes skilled journalists and writers and editors providing them with sufficient resources (& that last bit is the missing part now) to sort out. I'm not that.

Instead I am going to write about the bullshit most men get away with when things like this happen. That's something I am familiar with, because it's how I spent much of my life.

Plenty of mainstream male press and developers publicly lament the harassment and other toxicity associated with GamerGate. But their lamentation is quiet, and out of the way (mostly on Twitter, not on their sites or their games), and above all irrelevant to what they're doing with the rest of their life.

What exactly "standing up for feminism" is can be debated but it's surely not accusing a woman of lying about sexual assault because your friend is too "nice" to have done it. Rather the opposite - a key idea in most feminisms is that we currently live in a culture which lets misogyny run rampant even among "nice" people. (And no, it's not even close to 100% - plenty of people posting earnestly in the hashtag, and even more straddling the fence of false equivalency, are developers.)

It's hard to take pushback like that seriously when he runs an all-dude site. It's harder to take it seriously when he passed over several excellent women to hire a guy who doesn't know what Dungeons & Dragons is. The vitriol of GamerGate's sexism is more visible, but overall less damaging, than the structural sexism he's perpetuating.

But things can stay the same, as they have for a long time now. They can even get worse. And these people are responsible for the fact they've stayed the same for so long. They hire, work with, write, publish, and defend articles about how we're just too mean to racists or articles without an iota of basic empathy and journalism, the writers failing upwards until they can be taken seriously claiming (now deleted with no redaction) that offense is "always a choice".

Their outrage may not be fake, but their commitment sure seems to be. This change doesn't magically happen, it happens because people in influential positions make material and structural changes to their real life and environment. Fuck petitions. Put women and minorities in your games. Don't buy, don't praise, don't talk uncritically about games that can't even get basic humanity right. Don't make vague statements like "everyone should be nice" when your buddy used a slur and didn't like the tone of the person telling them to stop. Fire your friends and hire some women. (I'd say "be friends with women" but I'm not sure how many men are ready for that yet.)

Most men find it difficult to be patriarchs. Most men are disturbed by hatred and fear of women, by male violence against women, even the men who perpetuate this violence. But they fear letting go of the benefits. They are not certain what will happen to the world they know most intimately if patriarchy changes. So they find it easier to passively support male domination even when they know in their minds and hearts that it is wrong. bell hooks, Feminism is for Everybody

In one way the misogynists behind GamerGate have a better grasp of feminism than "most men" mounting a weak defense of it: They understand that feminism does involve discomfort as men lose something. That "something" is hard to see, and much of the ground-work of feminism is trying to identify and describe it. It's the combination of assumption and complacency and situatedness and expectation usually wrapped up the terms "privilege" and "patriarchy." It's something men should not have because it comes from the exploitation of women. But we do have it, and it does no good to be upset about misogyny without being willing to actively work against it.

I try not to talk about how great a feminist I am, because I'm often not. (Even this essay is too grounded in the one emotion made comfortable to me by hegemonic masculinity, anger.) But I have walked away from friendships and job opportunities and communities because I refused to work with bigots and the people who defend them, explicitly or tacitly. That doesn't make me great, because that 'sacrifice' is the baseline, not the brass ring, for male feminism. And yes it hurts. It's stressful. It sucks.

But it also sucks a lot less when other people, other cisgender white men, make those same sacrifices. And as much as it sucks for us, it sucks even more for all the people who can't walk away because they were never invited inside to begin with.

Our medium and the culture surrounding it is still in its adolescence and we’ve been experiencing a lot of growing pains lately. Those of us in the games community who are a part of marginalized groups have been going through hell lately. You can help us. You can do more than just express sympathy.

"The arc of the moral universe is long, but it bends toward justice." You have a chance, right now, to shorten that arc. You are in positions of power and privilege. You have the luxury of being able to effect change at a level that we can only dream about.

Samantha Allen, An Open Letter to Games Media - 15 months ago

That arc was not shortened. If anything, we have lost the few gains made at the time. Allen praised Stephen Totilo for working to dispel conspiracy theories. A year after that she was forced into silence by harassment, and now Totilo has no qualms about capitulating to similar nonsensical demands, with plenty of questionable editorial decisions in the interim.

What men in those positions need to understand is that this doesn't end when GamerGate is "over." It's not like Adam Baldwin or Milo Yiannopoulos or even Davis Aurini are going to suffer from this altercation at all. We don't "win" when this group of jackasses inevitably gets bored and moves on. They have already caused emotional distress; financial issues; driven some people out entirely; they have already won this round. Our chance to win starts when things like GamerGate stop happening because we refuse to countenance them in the first place. We don't win until we see equitable treatment inside games and outside in the communities that make and talk about them — and even that is a state we'll need to work to maintain, not a fixed point.

So I'm past the point I can tolerate those who aren't putting their hand-wringing into daily practice. You are as harmful and reactionary, in your own ways, as the loudest elements of GamerGate. And unlike them — and me — some of you have enough power in the community to speak loudly, clearly, and effect immediate and long-term positive change. But you're not, and you haven't been, and yet you still want to act like you're somehow separate from this.

Fuck you guys.


The original RoboCop by Paul Verhoeven and Edward Neumeier is a great film. It is about a robot police officer, but it's also about a city ruined by privatization and corporate malfeasance. The police officer - an object both human and a public resource - is literally ripped apart and put back together as neither. His new form is optimized for capital and private military-industrial ends. It succeeds as action, body horror, dark comedy, and allegory.

The new version is awful. To begin, RoboCop somehow suffers fourth-degree burns everywhere but his ruggedly handsome face. The original RoboCop was disquieting even in full gear and hideous without. This is RoboCop, Designed in Cupertino and Assembled in China.1 Usually he just looks like a guy in a suit; even disassembled his viscera remain safe (not from medical complications, but from us having to confront them) behind spotless Gorilla Glass. The closest it gets to frightening is a subplot about free will and determinism which is completely ignored during the second half - maybe for the better, because it's introduced in a way that could only lead to pop cogsci retreads of "what is free will anyway?"

Beyond the visual design, though - the original was a story of systems, specifically capital forcing its way into civic law enforcement. RoboCop was the narrative focus, but he wasn't a character so much as the battleground. In the new film, RoboCop is brought back with his humanity fully intact, only to have it stripped, then magically regained. The focus is on him as a (frankly boring) person. It's framed like a story of a disabled person overcoming adversity, except even his "disability" only lasts for a short time, and he's still super-strong and super-fast. If you want a film where a superhero grapples with mundane personal demons his superpowers cannot solve, Iron Man 3 covers much more ground.

The personal focus loses the transhumanist aspect as well. At the end of the original film it's difficult describing RoboCop as human, as it is saying he's an unfeeling machine. That RoboCop recovers autonomy and purpose, but never humanity. The new one is a human with expensive prostheses.

And whatever this film is trying to say about militarism, colonialism, or law enforcement, it says too little, or too late, or both. America already uses drones to terrorize civilians - that they're not human-shaped doesn't matter or is even an "advantage" - and civilian law enforcement is already buying them for domestic use. A speculative dystopian future could stand as its own commentary, but a slightly-tweaked view of our current policy needs some push-back to be considered critical rather than dangerously complacent.

Screenshot from the 2014 RoboCop film. Pat Novak (a Glenn Beck / Bill O'Reilly 'parody' played by Samuel L. Jackson) is showing fictional magazine covers, anti-domestic-drone in The Atlantic, pro-domestic-drone in Scientific American.

The short version is, here's the smartest scene in it. It lasts a few seconds and it's the only thing in a nearly two hour film that has the zing of the original - "he said, she said" journalism; the subtle complacency of popular science and scientism in supporting American neo-conservatism; the fact our civic choices are often between an ineffectual and ironic centralized populism versus a rich man who might let us borrow his toys.

  1. Literally, he wakes up in a Foxconn-esque factory. 

Building Icons with GNU Make

Desktop icon formats are a mess. No platforms share formats - Windows uses .ico (and for various reasons so does the web), Mac OS X uses .icns, and desktop GNU/Linux doesn't even have an icon format, you just throw PNGs into the air and pray.

But let's say you are foolishly trying to write a cross-platform application, yet intelligently want to automate creating most of these from source data.

A reasonable "source data" for icons is a directory full of PNGs.1 Apple uses a format called .iconset for this, with filenames like example.iconset/icon_64x64.png. Since it's just a directory of images, it'll serve for making Windows/website icons as well, and GNU/Linux build scripts can copy files out of it directly.

To convert this to the desired formats, you'll need GraphicsMagick, and either build on a Mac OS X system or install libicns.

Now for the Makefile:

ICONUTIL := $(word 1, $(shell command -v iconutil icnsutil) iconutil)
%.icns: %.iconset $$(wildcard $$(@D)/$$*.iconset/icon_*.png)
        $(ICONUTIL) -c icns -o $@ $<

%.ico: %.iconset $$(wildcard $$(@D)/$$*.iconset/icon_*[0-9].png)
        convert -background transparent -colors 256 $(filter-out $<,$^) $@

(You'll need to replace those spaces with tabs. Sorry. Complain here.)

This uses a couple unusual tricks.

First, the ICONUTIL assignment figures out whether you've got the genuine iconutil from Mac OS X, or the compatible icnsutil from libicns. If you don't have either, it picks iconutil so you get a sensible error.

Second, it uses GNU Make's secondary expansion feature. This specifies a wildcard dependent on the pattern and target name when generating the list of source names.

Third, it depends on the source directory. This is uncommon in Makefiles because directories update when contained files are added or deleted, not when files are modified. The modification case is covered with the .SECONDEXPANSION trick but we also need to handle the case where an icon size was removed, because the target files need to be rebuilt without the removed file.

Finally, please note the slightly different glob patterns. .icns files support high-DPI ("Retina") icons using the format icon_WxH@2.png - so icon_16x16@2.png is actually 32 pixels on each side. .ico files, as far as I can determine, have no such feature; they will use the 32x32 icon instead. So @2x files should not be included when building the .ico.

Assigning a .ico to a .exe

I've not found a good cross-platform tool for doing this.

GitHub's Atom project has produced a Windows tool called rcedit (compiled binary here) which does nothing but poke icons and version numbers into Windows executables. Because it is so minimal it runs perfectly in Wine, and it has an MIT-style license.

wine rcedit.exe --set-icon example.ico example.exe

Assigning a .icns to a .app

Mac OS X .app files are directories. The usual place to put an icon would be Contents/Resources/Icon.icns, and you may simply need to copy it over the file already there.

If you're building the package from scratch, you'll need to create the Info.plist file referencing the icon in the first place. This can be done on any platform with Python's plistlib.

  1. Another reasonable source format is one or multiple SVGs. Turning an SVG into a directory of PNGs is left as an exercise for the reader. 

Stanisław Lem on Big Data

[Is Big Data] necessary? A member of the French Academy, writing in Le Monde, said that it was inevitable, it had to appear. This civilization of ours, he wrote, which measures everything, counts everything, evaluates everything, weighs everything, which breaks every commandment and prohibition, desires to know all. But the more populous it becomes, the less intelligible it is to itself. It throws itself with the most fury at whatever continues to resist it. There was nothing strange, therefore, in its wanting to have its own portrait, a faithful portrait, such as never existed, and an objective one – objectivity being the order of the day. So in the cause of modern technology it took a photograph like those done with a reporter's flash camera: without touch-ups.

... I would substitute for it another, more modest question: Does [data science] truly show all of humanity? The statistical tables are a keyhole, and the reader, a Peeping Tom, spies on the huge naked body of humanity busy about its everyday affairs. But through a keyhole not everything can be seen at once. More important, perhaps, is the fact that the observer stands eye to eye, as it were, not merely with his own species but with its fate.

Stanisław Lem, "One Human Minute"

PDF.js, Sausages, and Numeracy

How fast is PDF.js? purports to tell you how fast Mozilla's PDF renderer, PDF.js, is - and therefore presumably also why Opera will be choosing it. What it actually tells me is that someone thinks it's important to get an "Opera and Mozilla, open web together!" puff piece on a Mozilla development blog.

Let's say you're a software engineer from San Francisco visiting Berlin. You're hungry, and stop to grab lunch. Berlin's street specialty is currywurst, which they're offering with fries and a drink for €7. Is that a good deal? How can you tell?

Opera and Mozilla say, look at the other items on the menu. If you see a €10 kebab - well, that's more expensive, so €7 must be a good deal. Maybe do a quick conversion in your head - that's about $10, which compares to ever-gentrifying SoMa prices, and you were told to expect things being a bit more expensive in Europe anyway.

How cheap is this restaurant? Well, 80% of its menu items cost less than what's in my wallet, which is cheaper than the other 20%.

Of course you don't do that. You check the prices at the place next door, and see that things should cost at least 30% less. You'd be a sucker to buy lunch at the first place!

You can't benchmark something against itself. The post describes largely unspecified PDFs (guessing a target of "about 4x as bad as this one PDF is OK" as if the measurement were linearizable to begin with), on an unspecified machine, with no points of comparison with the half dozen other PDF readers doing the same thing. Then shows off a graph that doesn't tell me anything beyond the complexity of PDFs approximate a Zipfian distribution, which, no shit.1

How fast is PDF.js? Well, 80% of the time, it's not terrible, which is faster than PDF.js the other 20% of the time.

This answer is great if you're trying to befuddle Opera users into not worrying about their new PDF reader, developers into not worrying about platform consolidation and ever-taller stacks of leaky abstractions, investors into remembering Opera exists at all.

But how much of my phone's battery (née milliliters of dead dinosaur and cm³ of greenhouse gasses) does it take to render it? How many weeks/months/years of median salary does it take to afford a computing system that lets me read it "fast enough"? How far can we lower those numbers? These are the kind of questions you need to answer if you want to show you care about high-quality software for sustainable and broadly-available computing.2 To answer them, you need to do actual benchmarks. In the absolute, and relative to other software, but never against yourself - after all, you're cheating.

  1. I'm not saying PDF.js is too slow. It feels slower than other readers to me, but all that means is that someone should run a benchmark. A real benchmark. 

  2. Or in the rhetoric of Mozilla, which obfuscates the actual concerns so they feel good publishing worthless articles, "the open web." 

I died: rymdkapsel

rymdkapsel (Android, iOS, PlayStation Mobile, soundtrack) by grapefrukt is a minimalist space strategy game that takes most of its cues from the tower defense genre. It takes 60-90 minutes per game.

I came out of the protein vats right before wave 8. Back then we were still counting. We had just discovered the first monolith and needed as many hands as possible: to run the generators, to decipher the ancient messages, to guard the path to the slab itself... And to run the kitchens. That was my job.

Up into the early 'teens it was a good deal. Central Planning had the foresight to make it a short walk. I'd fill up a bag of vege-goo and drag it across the hall to the kitchen. By the time I got there the last bag I dropped off would be fully processed into a chem-cake. Sometimes a construction worker would drop by and requisition it to patch up the bio-interface somewhere else. If not, I took it to one of the birthing quarters and watched the vats do their work. It was always great to help someone new learn their way around the kapsel.

Everything changed mid-14 when the researchers came back from the monolith crowing. During a routine scan the artifact had forced a signal back along the EM freqs they were using to examine it. It fried their scanners and shook the whole station, but within minutes they'd re-jiggered our extractors to work twice as hard. They couldn't explain how they did it - or they could, but no one else could understand the explanation.

They also told us about the other three they'd found on the map.

Backed by our new processing facility we started expanding outwards. We strip-mined the local system and when the well ran dry we ripped apart the well itself. Everything, all the matter, fashioned into ad-hoc corridors, weapons arrays, and more vats for more workers. Endless workers. Anything to get the secrets of the ancients before someone else did. My job? The same as always. Goo from the garden to make cakes in the kitchen to fill vats in the quarters. Hell, in the rush sometimes it didn't even make it to the vats - techs would run by and snatch it from the hopper without even asking. Even when they didn't, by the time the worker popped out I was off to the next room. There was always more goo, more cakes, more vats.

With the remaining extractors spread out our defensive network was weak in some areas of the kapsel. Old weapons were decommissioned, old soldiers re-garrisoned closer to the most important research. We started taking casualties. It didn't matter. Goo to cakes, cakes to vats, just this time it was the second, third, fifth time we'd fill them. More room for people; more weapons for people; more work for people; more people.

The next monolith we reached gave us the schematics for a signal jammer. The next, a new program for our laser targeting systems. Finally the last one unlocked its secrets - a retrovirus, giving us legs that keep running, arms that don't tire. Relentless efficiency.

Those damned rocks. They weren't libraries. They weren't weapons caches. They were waste disposal. The ancients fashioned them as locks to keep us out, not puzzles to solve. Prisons to hold science no one could use responsibly.

It's 27 now. Or maybe 28? They're coming too fast to keep track, alarms never-ending. I'd thank the stars we don't need to sleep anymore, but there aren't any stars left. We turned them all into goo. Goo to cakes, cake to vats. Vats to people. No more weapons for people - now it's people for weapons. Even I can't make them fast enough. And now they're all gone. Now the alarm. It's finally my turn in blue.

A game over screen in rymdkapsel. The kapsel survived for 72 minutes / 29 waves. Missiles are converging on a single weapons room.

I've played rymdkapsel several times now, and no matter how I build the station - sprawling with several production areas or tightly-packed fortified center, a caution extension towards the monoliths or a mad approach and retreat in the open - the game ends the same way.

Two ╻s holding the line, and one running desperately from the garden to the kitchen to an empty room, making more doomed soldiers as fast as its experimentally-modified appendages can. And eventually, that one must stop as well.

In most RTS/TD games, your loss is marked by the destruction of your base or some critical buildings. But often the game continues on, and you can use your hero avatar or your remaining units to make a futile but narratively satisfying last stand. In rymdkapsel only you can destroy your buildings. At the end of the game you will probably start destroying the outer ones en masse. You will do it to make more minions, with full knowledge they are soon doomed. So the game, for me, becomes a story about growth and (un)sustainability and how we handle its eventual collapse.

Pacific Rim & Attack of the Friday Monsters!

Yesterday I watched Pacific Rim1 and played Attack of the Friday Monsters.2 It's not likely I'll write more about either specifically but they're both fun and worth engaging if you think you might like them. Pacific Rim is about if giant monsters were real in today's world; Friday Monsters is about if they were real in the 70s when the genre was new.

What I want to point out is how both do one important thing that's also becoming rare in nerd culture - they're tightly-focused-genre works that are actually new works! I've grown tired of most things of this kind because they end up being mostly in-jokes, callbacks, or worst, incompetent aping. This pushes me to more avant-garde things, which I enjoy, but I also want to see more work in the areas I'm comfortable with and know about.

Both of these works are about basically the same thing, and both are not derivative. I mean, yeah, they're derivative in the sense they are obviously in the same space as Godzilla, Ultraman, Gundam, and so on. But they are not loaded down in a way that requires "nerd literacy" to enjoy nor do they break your focus by making references to things outside themselves. They stand as quality works in the genre rather than the most recent/egregious self-back-patting. They remind me of why I like those things instead of just reminding me that I like them.

  1. Quick review: Needs more women, and the women need to say more things. 

  2. Quick review: Actually near-flawless? 

Going back through Problem Attic

Liz Ryerson put together a list of some writing on Problem Attic (graciously including my own piece).1 I'd read Chris Priestman's article before writing mine (even before finishing the game - when I was stuck a bit over halfway through) but the rest were new to me.

Kim's piece4 drew my interest because her tone and conclusion match mine closely (or that's how I read it, at least). She has the same inability to find words to describe the base elements. But her interpretation of the "contents" of the game is the exact opposite. I saw a world of complex "accreted details"; she saw "decay" and "collapse".2

First, I think that particular symmetry is interesting - that the same material reads as overbuilt and collapsed is itself worth some reflection. But it also points to two fundamental ways to make sense of the game. As it relates to Problem Attic specifically we might also be focusing on the two halves of the game.

To make sense of an overly-complicated system, you need to strip it down. As a programmer I know that the rules of any given level of Problem Attic can be expressed as a dozen or so lines of code. I played the game trying (mostly unconsciously) to see the rules at that level.

The approach Kim suggests is an alternative I didn't see (likely because I am a programmer). If the world is in a state of decay you make sense of it by finding and mentally inserting the parts that are missing. We understand the function of the the Roman Forum not because we can strip it down to constituent marble and grass with well-understood physical properties but because we can add imagined orators and produce stalls.

And this isn't exclusive to Problem Attic. All game mechanisms are in some way reducible to something formally "simpler" than they are visible as in the game. A rule book is easier to understand than just watching a game, or it's failed as a rule book. And all game mechanisms are in some sense incomplete with regards to the richness of objects and interactions in the real world.3

What might be special about Problem Attic is the way it resists explanation from both sides. Nothing in our daily experience prepares us for Tetris or Pac-Man but we grasp and can re-explain a sufficient set of rules quickly. At the other end games like Animal Crossing or The Last of Us have rule systems that contain so much code they're beyond formal explanation by any one person but we can understand them via their presentation, even when it bears only a cursory resemblance to the real-world objects we are using to understand them. Problem Attic admits neither straightforward instruction manuals nor analogies - as I half-described before, it's only "comfortable being a videogame".

  1. For a game I struggle to find words for, I'm sure writing a lot about it. 

  2. This different frame extends even to Liz's music. I've described the sound as "excessively layered" to a friend. 

  3. Or even their virtual worlds. It makes perfect sense to ask something like "what's Isabelle's favorite song?" but the formal systems in New Leaf prohibit this even though Isabelle, songs, and favorite songs are all things in the game. That doesn't stop us from understanding the game through analogy with the real world though. 

  4. Since removed from any site I can find. :( 

Review: Dungeon Heroes

I played Dungeon Heroes, by Gamelyn Games (which seems to be mostly Michael Coe). It's a one- or two-player boardgame which takes 10-30 minutes per play; I've played it twice with my wife (who Kickstarted it) and four times solo.

The back of the box promises a "roguelike strategy game" and I admit I scoffed when I heard it. I have played many games - board and video - that self-described as "roguelike" but didn't deliver anything close to the tactical-puzzle feel associated with the genre.

This one, though, works. Nothing in the game feels over-designed, my usual first objection to dungeon-crawl boardgames. Somewhat like FTL the characters play out as resources to expend and extensions to the space of possible actions. Unlike FTL but like other roguelikes these actions are mostly non-fungible - only the rogue can disarm traps; only the cleric can heal. Randomness plays a small but critical role, as incomplete information demanding contingency planning rather than variable small-scale outcomes. In the two-player version, there's an added element of bluffing on the dungeon player's side.

There's some hints of zugzwang; rare in "classic" roguelikes but common in some of the more recent minimalist ones (Ending, Bump by Aaron Steed; Zaga-33 and 868-HACK by Michael Brough); entirely unknown to me in other boardgame dungeon crawls. Most of the time it's not relevant to the game - and the cleric can burn two actions if necessary - but the dungeon player can sometimes force very bad moves on the hero player near the end of the game.

The material quality is great. We have several Kickstarted games in our house and the quality varies a lot. This one has a high-quality box reminiscent of Fantasy Flight's Silver Line and beautifully cut wooden figures.

This acted as a flashpoint for my disappointment at the amount of latent sexism in themed boardgame design. I don't want to take it to task specifically right now because it's not uniquely or especially gross in any way. But several parts are troubling.

« Page 3 / 6 »