Tuesday, September 22, 2020

Black Lives Matter And Tabletop Games

I support everything that black people and allies are saying right now and have been saying for centuries (except for the few who say things that are anti-Israel or antisemitic). Change is a long time coming and hopefully permanent changes will eventually (and soon) make all people equally welcome, equally safe, have equal opportunities, and be equally empowered and protected in all areas of society. Black lives damn well matter.

Board gamers tend to be a bit less toxic than players of some of the other gaming cultures, such as video games, roleplaying games, and collectible card games. These latter cultures notoriously attract vocal racists, sexists, homophobes, etc etc. "Gamergate" is all I have to say about that. Board gamers tend to be more gender-mixed, more family-friendly, and older (but not as old as miniature war-gamers and the like).

Unfortunately, like every subculture, the board game culture is set within the real world, and so there is plenty of racism, sexism etc in it (it's just not generally a seething wretchedness, like it is in video games or certain sports). The more fanatic the gamers, the more racist, etc they tend to be. Fanatics don't want anything messing with their hobby, especially when the messers point out problems with their privilege. In my casual estimation, there is a tendency toward racism among certain hardcore game fanatics on BoardGameGeek, and probably other, similar websites.

As for the game designers and publishers, there are plenty of tone-deaf tabletop games (and of course video games), steeped in white privilege. Last year, for example, a board game called Scramble for Africa was canceled after complaints that it presented the colonization and pillage of Africa as a means of obtaining points. It even used events, such as causing local "uprisings", as a game mechanic to further your position, without addressing the native population and the effects that the colonization had on the continent. Similar complaints have been leveled at any conquest game, including such abstracts as Catan; not because Catan represents a particular oppression, but because the very act of conquering and transforming a supposedly uninhabited territory is a kind of whitewashing.

Plenty of other games have whitewashing problems, such as the well-loved Puerto Rico (with brown "colonists" working in the plantations of San Juan) and Endeavor (where slavery cards are a cheap tool for points, and freeing the slaves is another one).

As I mentioned, collectible card games attracts some real bigots, probably because the same population that plays it tend to play video games. As a result, there is a dearth of black Magic players. Wizards of the Coast was taken to task, not only for not doing enough to address the racism of its conventions and game groups, but for its unsafe work environment and even the artwork on its cards. After Zalem Beg, a former editor-in-chief for major Magic: The Gathering retailer and several other top sites, recently wrote a scathing attack on the company's culture as well as some of its cards and web site choices, yesterday Wizards finally responded by banning some old cards and racist artwork.

I know that TSR and then Wizards of the Coast also had a history of racist portrayals and/or exclusion of minorities in their Dungeons and Dragons products, and I know that they have included more minorities, with less stereotypes, in some artwork in recent years, but they still have a ways to go. Some people object to the very idea of D&D as a cultural appropriation and glorification of killing the "other", and others to how orcs seem to represent the other in a racist way (a problem that they say originated from Tolkein).

In April, world Chess champion Magnus Carlsen marked a U.N. international campaign against racism by playing a game of Chess where the black pieces moved first. In Chess, both sides play with the exact same pieces, just different colors (sometimes not even black and white), and every other classic abstract game, including Checkers and Go, has the black pieces moving first. Meanwhile, the Chess world, like every other world of fanatic hobbyists, is pretty white, for the various reasons you might expect, including lack of, or thwarted, opportunities and microaggressions in Chess groups and culture.

Same goes for other games with single-minded devotees, such as Scrabble. Speaking of Scrabble, years ago some people objected to racist terms being in the Scrabble dictionary (it took years before these terms were even labeled as offensive in the dictionary); they were removed, but remain valid for tournament play on a special sheet handed out to tournament players, and you can still play them online if you select the tournament dictionary.

Tom Vasel recently interviewed designer Eric Lang to get his take on being black in the board game community. Eric Lang is a notable and successful game designer, unfortunately one of the few who are black.



The Game Manufacturers Association who run the Origins convention was taken to task for NOT saying anything about black lives matter. As a result, Eric Lang and many other invited speakers pulled out of the convention. Yesterday, GAMA finally put out a statement about black lives matter and canceled the event. People continue to take them to task for canceling the event as if it had been their decision, and not the result of their previous lack of statement.

And of course, on the flip side, people can create tabletop games that teach about racism and how we can deal with it. Not that many, exist, however.

Saturday, September 12, 2020

Pathfinding Diagram Improvements, Part 2

In the last post I described improving the diagrams on my Tower Defense page. Once I finished that, I moved on to my other pathfinding pages, starting with the A* page.

inline legend
inline legend

Frontier expansion diagram: I didn't find a good way to put labels on the dynamically generated diagram so I created a static state transition diagram and placed it in the text. I using inline legends, which describe in the text the shapes that I'm going to use the in the diagrams. The above is example showing some frontier nodes, unexplored nodes, and reached nodes. I also used colors that match the colors in the diagrams.

I used the inline legends to describe the state transitions:

state transition
state transition

I think it serves a separate purpose from directly showing labels on the diagram. These are meant to prepare you for the animation, whereas the labels would serve to annotate the animation.

Frontier expansion diagram: I had implemented all the diagram animations to match the code. However early in the explanation, the reader hasn't seen the code yet. The frontier expansion diagram should show the concept of an expanding frontier, not the implementation of it.

I decided to change the slider from number of loop iterations to distance from start. The new animation feels smoother and easier to understand. I posted a comparison of the animations in this tweet.

frontier diagram
frontier diagram

Early exits: I was planning to add a few more examples of what you could do with early exits. This ended up longer than I wanted to include on the A* page, which is already pretty long, so I put it on its own Early Exit page, and linked to it from the A* page.

first 3 of 5 goals
first 3 of 5 goals

All pairs: This was an incomplete page from back when I was writing all the pathfinding pages. The A* page was meant to be one source one destination. The Tower Defense page was many sources one destination, or one source many destinations if run in reverse. And the All Pairs page was meant to be many sources many destinations.

I had implemented the Floyd-Warshall algorithm for all-pairs shortest paths. I had one example problem: find all pairs of paths and then see which tiles are used most often. However, it ran too slowly for this page to work well.

This is one of the struggles I have with making everything interactive. Some algorithms just won't run fast enough to demonstrate effectively.

Since I had good luck with Breadth First Search in mapgen4, with the code running at over 1 million nodes per second, I decided to try it here. Running Breadth First Search hundreds of times was far faster than I expected. The calculation time went from 400ms to 14ms!! It now runs at interactive speeds!

all pairs tile count
all pairs tile count

Now that I'm no longer blocked by the algorithm performance, I want to work on this page. Try the first diagram and let me know if you have ideas for more diagrams to add.

Miscellaneous improvements: Lots of my experiments didn't work out, but I kept a few:

  1. I changed most of the sliders to use a dynamic range. Ideally the slider minimum should be 0 and the maximum should be the last time when something changes on the diagram. The problem is that I implemented the search algorithms to exit early. That means I don't know the last time when something might change. Fortunately for most diagrams I can calculate this in a different way. There's one diagram where I can't easily calculate it without running search twice, once without early exit and once with, so I didn't implement the dynamic range there.
  2. I've long wanted to add faces to my blobs. I've been experimenting with procedurally generated cartoon faces since 2011 or maybe earlier. In my most recent experiment from 2018, I got the mouth working nicely, and I used that in 2019 to regenerate my blob logo. I still haven't worked on the eyes though. I'd like to make blinking attentive eyes. I decided I should put static faces in now instead of waiting until I have everything working.
  3. One reason I generally use SVG instead of Canvas is that many effects are much easier to implement. One of those is cursor feedback. I can update a tiny part of the SVG, and the browser will figure out what to redraw. Sometimes I don't even need an event handler, such as when I use CSS :hover to add a drop shadow. When I rewrote these diagrams into Canvas, I lost the visual feedback, so I went back and implemented a visual feedback system in code instead of in SVG+CSS. It's a lot more work in Canvas but for this page it was worth it.

The new diagram class has been a joy to work with. It has so much easier to work on diagrams than with my old code. The old diagram class was premature abstraction. I wrote it and then wrote the diagrams to fit the abstration. The new diagram class is based on my experience making the diagrams. The abstraction fits the needs of the project.

Abstract Paintings Black Grey Yellow

Continue Reading »

Friday, September 4, 2020

Staying Busy During These Times

The world is crazy right now. COVID, civil injustice and the unrest that follows.

My work has kept me busy, and there've been some household changes with the grandkids going back to their parents for the summer. That impacted the gaming routine.

I did have two successful seminars at the recent Con of Champions for Tabletop Events, as well as running my Heist game and Delve the Deeps game. Both were interesting and everyone seemed to enjoy themselves.

More recently, I've taken to streaming my podcast recordings! I try to do that every two weeks and the next session is this Thursday at 7pm. I'm going to finish up talking about Unearthed Arcana's classes and get into some miscellanea before getting to spells! You can join me here: https://twitch.tv/chgowiz

I've also found myself in a very fun self-improvement project - learning Python by recreating the very first dungeon crawler I ever played. Did you know that there is a graphical/top-down dungeon crawler that predates unix's rouge?

Yep, the program DUNGEON from Cursor Magazine (issue #15) for the Commodore PET. I played this game in 1979 or 1980 and I was hooked.

Right now, the game is very basic, but I'm getting there! You can follow along to some degree on this r/commodore thread on reddit, or see the code as I update it on my github repository here: https://github.com/Chgowiz/PyDungeon/

 

My version is on the left - a completed game of DUNGEON from a PET emulator on the right.

Funny coda, after 40 years, I finally finished the game and won! I collected all the gold. I guess knowing the source and how the game works was a huge help. That's something my 13 year old self would have liked to have known... damn wyverns!

I hope that you all are well, safe and hanging in there.