• Graeme Devine

Metropolis Origins is Born

It’s been a while and I’m about to set out to drive to Texas. The computers (well GPUs actually, since you can’t buy them) are packed up so no more building much tonight or tomorrow and tomorrow is packing up for the transit. We are selling our house in Texas, hopefully quickly, and then coming back here to California but I’ll be offline this week.

So. I wrote an online web card game for Metropolis that lets you buy decks and packs via NFT over the WAX blockchain. You can go check out the foundation (which is NOT PLAYABLE AND BUGGY and I really shouldn’t show you because it’s NOT PLAYABLE AND BUGGY, click on the cards, move them, but there is NO GAME TO PLAY HERE). This is a web assembly card platform written in C++ leveraging 10 years of card game knowledge and a year I spent porting it to web assembly.


Here’s what the test cards look like. This is programmer art. Beware programmer art.


There’s a design doc, but to walk you through the thing, it’s basically “what’s a card game like when the goal is to complete a story?”, in the card game you have properties and characters. The properties have tiers (like bronze, silver, gold) and the characters have ranks (like normal playing cards). The character cards also have abilities that are a) based on their rank and b) depend on the property they are used at.

You start the game by buying a deck of cards with WAX which is a crypto currency, https://wax.atomichub.io is a good place for that. Why WAX? Well turns out that very few crypto currencies are made for trading cards with the idea of decks and packs and so forth built into the blockchain, the idea that the card itself can have attributes (like rank, name, abilities) and for that to be immutable in the blockchain is also unique to WAX, and it’s earth friendly. So there’s all that. The WAX SDK is also WASM based (that’s Web Assembly) so it’s readily compatible with the card engine I’ve written. Most SDK’s are Java / Javascript so there’s a translation layer so this is great.

Anyway, random starter deck in hand, you start you first game, your goal is to achieve a story result. Draw five cards face up. The game is played is turns and you can play up to TWO cards per turn, a property card and a character card or just a character card. If you play a property card, the story moves to that property, and the character card plays the ability at that rank at that property. An ability might be “Joe can sense surveillance equipment at any property” and depending on Joe’s rank, he can remove more or less bugs in a room.

Extra packs get you a chance at better locations, better and rarer characters, and higher level characters (like any trading card game).

The computer plays the role of the GM, and advances the story. I suppose here is a good point to mention all the work I’ve been doing on quest generation for Metropolis using GPT-3. GPT-3 is wonderful at generating text for stories (but cannot replace authors and writers, I cannot stress that enough) but ESPECIALLY good at filling in blanks and connecting pieces and being a GM and then translating that to a story especially if you’ve seeded it with text describing the abilities and properties.

The interesting thing about crypto is inventory, when I was testing buying decks it was really odd I couldn’t test a second time because I had purchased the one deck I had made. I either had to make a second deck or buy the deck back from myself I had just sold myself (from wallet to wallet). It’s very weird to have digital items actually have inventory. BTW, You test in crypto on a test blockchain so you aren’t actually spending money, I’m rich on the test blockchain.

Hope you are all well.

Graeme.