m. c. de marco: To invent new life and new civilizations...

The 504 Almanac

My interest in boardgame systems like The Decktet (a different deck of cards with which you can play lots of new card games) led me inevitably to 504, an unusually modular board game by Friedemann Friese, the creator of Power Grid. Most boardgame systems are open-ended like a traditional deck of cards, where anyone can come up with a new game by inventing a new set of rules, but 504 is instead fixed at 504 different games, or “worlds”, by the modular rule system which requires the use of three different mechanics, or “modules”, from a set of 9 possibilities.

I don’t own this game yet—it sounds wonderful, but I have enough trouble getting new games to the table (as they say) when I snag one off my Scottish-themed games wishlist. So far I’ve only been reading about 504 at BoardGameGeek and thinking about it as an information science problem.

I have an old game in my collection called 56 Games, a compilation of well-known traditional games (on light pieces of cardstock) or simple inventions for children—not modern board games like 504 aims to be. The Decktet wiki lists about 200 Decktet games invented by various contributors, and Pagat only lists about 900 non-solitaire traditional card games from around the world and across the card-gaming ages. Yet one man (and his computer) are responsible for creating all 504 games of 504.

This makes the rulebook big and complicated; in fact there are two rulebooks plus an unofficial rules site which boils one of the rulebooks down somewhat to a particular world (but you still need the other one). This boiling is not a simple process; I debugged an iOS issue with the rules website that turned out to be just too much complexity for an old iPhone processor to handle. Yet despite the difficulty of the task and the cryptic results, 504rules is the best-organized resources for 504 out there, generating a neat, printable page of rules for every possible world.

Next in order of disorganization is the official 504 website; it has individual pages for rating each world, but they’re just posts in Wordpress. Two long sets of dropdown menus allow you to navigate to your desired world one module at a time—two sets because one set is in German and the other in English. So there’s no quick way to get directly to the world you want. I believe the ratings system (which I haven’t used because I haven’t played) is an off-the-shelf widget that doesn’t track your ratings or associate your widget rating to any comments you might have made. (Don’t even think about tracking your plays.) Much has been made of these deficiencies (including an erstwhile alternative ratings site, 504worlds.com and an even less useful BGG poll), but collecting ratings and logging plays is not usually the province of a board game designer or publisher; they’re not the ones who have fallen down on the job here.

That would be, of course, BoardGameGeek. BGG has a history of handling boardgame systems in a tacked-on way; many games for the Decktet appear as their own full entries, while those that don’t merit such consideration have no home at BGG at all. BGG doesn’t even list 504 as a game system, so discussion of all 504 individual games has to go on in the 504 forums, and the games can’t be rated separately.

As is inevitable in these situations (all across the web, not just at BGG), users misappropriate other tools to take the place of the ones that ought to be there but aren’t: a couple of polls for rating 504 have sprung up at BGG as well as a discussion geeklist—that perennial catch-all for everything that ought to be its own feature at BGG. It’s a tough call to say whether it’s more ironic that someone made and deleted a redundant poll of all 504 (presumably manually-entered) items because the existing poll wasn’t discoverable, or that the 504 discussion geeklist is composed of unrelated games instead of the 504 games they’re trying to discuss, because that’s how geeklists work at BGG—if you want to list something that isn’t a game in the database, you have to pick some other, random game and then type in some text about your own game.

GeekDo (the parent brand) isn’t just sitting back raking in the advertising dollars; they’re running a beta that may (finally, this time, cross your fingers) bring the BGG user interface into the current decade and onto mobile devices. So it’s understandable that they can’t address a corner case like 504 well, or at all. Still, a wealth of discussion of individual 504 worlds is buried tragically deep in the BGG forums, so I misappropriated another tool to make it more accessible: tags. I thought the raw world numbers (123, etc.) wouldn’t make particularly distinctive tags, so I prepended them with 504’s: 504:123, 504:456, etc. This made at least the content that I’d tagged searchable.

I spent some time thinking about a good interface for looking up the 504 worlds. I was inspired by this React Motion PathMenu demo to have child modules shoot out of the parent module, but it turned out to be a bit too flashy and hard-coded for my purposes. However, I was independently interested in using React, so I switched to another React Motion example, the draggable balls demo, for my world navigation. I added a randomizer as well as simple URL navigation. (For example, the almanac for world 123 can be reached at mcdemarco.net/504almanac/#123.)

The 504 Almanac knows the names of the world and modules, but otherwise all information is off-site and unknown. It does not know whether there are ratings for a particular world at the official site, or tags for it at BGG; it provides the links either way. The rules link always leads to rules.

The code is available on bitbucket, under the MIT license. The moving bits are based on the draggable balls demo for React Motion by Cheng Lou, also available under the MIT License.