One of my favorite board games is Wingspan - an engine building game
where you collect different species of birds. The game instilled an appreciation
for our avian friends in me, and was my introduction to the wonderful world of birding.
As anyone who loves something desperately, the flaws in the wingspan game were more
obvious to me than to most. The nest types were often incorrect. The clutch sizes capped
out at six. Some of the powers within the game were too much, others were too little. The
maps only showed their geographic proximity in terms of continents.
Most importantly, the birds were from all across the world, making them not very useful
for fine-tuning your skills on your local bird populations. I can’t tell you the number
of times I thought I saw a Dunnock in Colorado, only to learn much later that they’re only
found in Euorpe! I needed to have a wingspan deck that just had my local birds in it, so I
could become an expert at identifying at home.
So I coded.
And I coded.
And I coded.
Too.
Much.
Code.
I had to build infrastructure
for scraping sites which were hostile to it (sorry Cornell ornithology lab, All About Birds, Avibase,
and others). I built infrastructure for coorelating sources, only including a fact like a wingspan
in the deck if it could be corrobroated between two sources to within 10%. I built infrastructure
for finding creative-commons licensed images of the birds, AI to find the bird in the image and crop it
well, and build complicated infrastructure for
keeping detailed records of sources and methods, both for debugging, and appropriate attribution.
So far I’ve written 39k lines of code to tackle this problem.
I’ve now gone through three generations of these cards, and they’ve changed over time significantly
in response to play-test feedback from my friends and family.
In the third generation of the cards, I started to use AI to generate the images, both because finding good images in the creative commons is hard, and because the uniform style lended itself to it.
I expect this project will never be fully done. There are too many small things I’d like to improve.
Instead, I suspect I’ll continue to make small changes every six-ish months when I gift a deck to a
friend.