The card database I created for Miss Mary Mack was an invaluable tool for myself and my team. The spreadsheet's functionality was devised entirely by myself, most of which I learned as I was creating it. While this database was a great way for us to manage our cards, the primary purpose was to implement cards into Tabletop Simulator easily. I achieved this by learning a separate program called nanDeck that creates cards from spreadsheet data. The cards in the current Steam Workshop download use this program.
You can follow along with the embed below or view the database copy in Google Sheets here.
Overview
Let's first go over the notable details of the Master List and how it interacts with nanDeck:
Elemental Family tells nanDeck which symbol to put on the card.
Type dictates how the card is formatted; if it says "Spell, " the card won't have the Attack and Health areas that come with "Summon" cards.
Elemental Cost Formatting uses a concatenation formula that checks if there are any numbers in the 5 elemental cost columns (Air, Earth, Fire, Water, Any) and creates a string in the format "#(element)". The element name in parentheses is important for nanDeck so that the correct symbol can be used on the card.
Description had to be in HTML using tags as that is the easiest way for nanDeck to format the text on a card. The Keywords didn't need HTML because all the information in those cells would be bolded automatically. An easy addition would've been a column with the descriptions without the HTML for easier legibility.
The Starter columns at the end of the sheet allowed us to denote which cards would be in the starter decks that we would use in the onboarding process with our playtesters. The starter decks were also helpful in maintaining a baseline balance of the cards and the overall rules.
This covers the functionality required for the pipeline to Tabletop Simulator. The rest of the spreadsheet was created to simplify and increase efficiency in our design process. The Count, Stats, and Stats(Graphs) pages were the most used areas of the spreadsheet outside of the Master List. The Count page holds heatmaps based on the number of cards in a certain set. It doesn't come across well in the example I've provided, so here is a screenshot from the actual database that better shows that functionality.
This was a great tool when we were designing new cards as we could reference where we wanted the balance of a card to fall on the heatmaps. The Stats and Stats(Graphs) pages show useful statistical information like minimum, maximum, and average power of cards at a given value. The remaining pages were there to filter our ever-expanding pool of cards into more manageable lists.
Interactivity for Playtesters
Due to this being a trading card game starting with over 250 cards, when we conducted playtests we needed to make the most of the time and feedback playtesters gave us. For a majority of our playtest sessions, we ran tournaments that allowed for multiple iterations of tests with different board states, opponent skill levels, and deck layouts. When it came to our playtesters choosing their cards, I wanted to maintain the workflow we had designing the game. I created another spreadsheet that had an up-to-date copy of our Master List so that they could pick their cards and quantity and I could then take that custom list and interface it with nanDeck. This essentially worked with a combination of the IMPORTRANGE (for providing the updated Master List) and FILTER (creating the custom card list from the playtesters' choices) functions.
Post Mortem
As I stated before, this was an invaluable tool in the game's development as a prototype. There are, however, a few things I wish I had done differently. I briefly mentioned that the Description had to be written with HTML tags for nanDeck to correctly format the text. This made reading card descriptions difficult especially for newer cards we were unfamiliar with and for our playtesters when they saw the imported Master List. Having a plain text version of the descriptions would've made it easier for everyone involved. I tried devising a way to create a function that would remove the HTML tags by looking for the "< >" symbols to automate the conversion to plain text, but I wasn't successful and would've had better success manually changing them and then keeping with that practice moving forward. Another change I would've appreciated would be an additional page similar to Count and Stats specifically for playtest feedback. It would have heatmaps for how often a card is chosen to be in the custom decks, how often a card was part of a winning/losing deck, and if a card was in play at the conclusion of a game. We didn't have enough playtest sessions for much of this information to be helpful, but in the event the project continued after 15 weeks, it would've been one of the first additions to the spreadsheet's functionality.