How to prototype Unique Cards quickly

Hi, Nico here. My two previous posts about game design were about theory. For today, I thought I’d share something more practical. I will give a step-by-step tutorial on how to quickly prototype different unique cards using a spreadsheet program (in this case Google Sheets) and the Variables feature of Photoshop.

Note: In the context of this blog post, what I mean by “prototype” is to come up with playable version of your game as quickly as possible so you can go right into testing it. This is not about making a mock-up of what your final game will look like.

I’ll be sharing the files I used in this tutorial so you can try them out yourselves.

Why even?

Have you ever designed a game with 30+ cards? Did you notice how much time you’d spend scribbling all those details into each and every card? Even with the help of computers, you’d have to edit each and every file for each unique card. All this time spent could have been used testing your game instead. Hopefully after reading this blog, you can drastically reduce your prototyping time and spend more time testing.

Though this method might take time to setup at the start, it pays off when you start making changes. Instead of manually having to type in new changes, this system allows for changes in your spreadsheet to be automatically applied to all your cards.

Step 1: Create your Spreadsheet

The first step is to list down all the details of your game in your spreadsheet. For starters, make a Database sheet. In the Database sheet, make a column for the names of each unique card in your game. Next, make columns for each of the important attributes of your cards. Finally, fill-up your spreadsheet. Don’t worry about formatting for now.

Screen Shot 2016-06-30 at 4.44.43 PM.png
The Database sheet of my new game: Animals TCG!

Step 2: Create the Photoshop Template

You’ll need to make a Photoshop template of your card layout.

A word on using Variables/Data Sets

Later, we will be using data sets to automatically edit the layers in your template. Data Sets can alter layers in 3 different ways:

  1. Visibility – whether the layer is visible or not
    • Useful for setting “Types” and “Icons” in your cards. Basically, you can set some layers to be visible in some cards while invisible on others.
  2. Text Replacement – replace the text in a Text Layer
    • Useful for the “Name”, “Abilities”, “Stats”, and all text variables of your cards. The text will be replaced by the data in your spreadsheet.
  3. Pixel Replacement – replace the image of a Layer

For now, we will only be using Visibility and Text Replacement since we’ll assume artwork isn’t integral to testing your game.

Create your Card Layout

Open Photoshop and make a new document. Set the size to the card size you want (typical poker and Magic cards are 2.5″x3.5″) then layout the important parts of your card. To help you in the layout, choose the card in your database with the most attributes and use it as your sample. For Animals TCG, I used Crocodile.

Crocodile: both Land AND Water type!

Text Variables

Create a single Text layer for each of your text variables. For my Animals TCG, I made a text layer for “Animals” and “Feet”. Make sure these layers are Paragraph Text and give them ample space to fit the longest text from your database.

Visibility Variables

Make a layer for each of the images you want to toggle visible or not. For my Animals TCG, some animals have one type while others have two. In my layout, the image of the first type is to the left while the image of the second type is to the right. I made two layer folders for Type1 and Type2 and placed overlapping logos of each type in them.

Screen Shot 2016-06-30 at 4.33.30 PM
No need for Land2 since none of the Animals have that type

For the “Color”, I just made overlapping border layers for each color.

Don’t forget to make your layer names clear or you’ll have problems later finding them.

Create the Variables

Go to Image>Variables>Define…

Screen Shot 2016-06-30 at 5.13.59 PM.png
A pop-up window should appear

From here, we will define our variables and their types. Under the Layer dropdown menu, select a layer which you want to add a variable to. Here, I select the “Animal” layer then check the “Text Replacement” option. I then name the variable “Animal”.

Screen Shot 2016-06-30 at 5.15.56 PM.png
On hindsight, maybe naming the layer and variable both “Animal” wasn’t a good idea.

Similarly, in the “Land1” layer, I check the Visibility Variable option and name the variable “IsLand1”.

Screen Shot 2016-06-30 at 5.17.56 PM.png
At least I named the variable different this time. ‘Is’ is a typical prefix for boolean variables.

Do this for all your variables. Take note of your variable names as they will be important in the next step.

Step 3: Make a CSV of your Spreadsheet

We will have to format your data to make it easy for Photoshop to read.

  1. Visibility Variables need TRUE or FALSE to know if it will toggle the visibility or not.
  2. Text Replacement Variables need a string of the replacement text.

Making the CSV Sheet

Screen Shot 2016-06-30 at 6.34.05 PM
The CSV Sheet describes the changes to the Photoshop Template

Go back to your spreadsheet and add a new sheet and name it the CSV sheet. Make a column for each of the Photoshop Variables you created in Step 2. Fill in this new sheet using values from the Database sheet. For example, I set the “Animals” column of my CSV sheet to the “Animals” column of my Database sheet.


Screen Shot 2016-06-30 at 5.26.48 PM
The CSV referencing the Database

For Text variables, you just have to equate it to the corresponding cell on the Database sheet. However, for the Visibility Variables, you will have to use IF statements and other spreadsheet functions to get TRUE or FALSE.

For Example, if my animal’s first type is Land, I want my Land1 layer to be visible. Therefore, for my IsLand1 variable I will set the IF statement to give me a true if Type1 is Land.

Screen Shot 2016-06-30 at 5.26.54 PM.png
Sample IF statement

Depending on your card game, these logic equations can get pretty complex. It could be worthwhile to read up on spreadsheet functions and logical operators like OR and AND.

Once the CSV sheet is setup, you don’t have to worry about it as you make changes to your game. When you do make changes, just edit the Database sheet. Since the CSV sheet is dependent on it, it will automatically update.

Download your CSV file

Once you’re done, download the CSV sheet’s CSV file. In Google Sheets, it’s File>Download As>Comma-Separated values.

Step 4: Input the CSV to Photoshop

In Photoshop, go back to the Variables window. On the top left corner, change the setting from Define to Data Sets. Click the Import… button at the right side. In the new window, select your CSV file and import it. Make sure to check ‘Use First Column For Data Set Names‘.

Tada! Your data has just been imported into your template! You can now preview each and every card through the Variable window.

Screen Shot 2016-06-30 at 5.33.27 PM.png
Tada! Bird is correct!

If there’s a mistake in one of your cards, it’s most probably a mistake in the spreadsheet that can easily be corrected. You can now even move stuff in your layout template and the data will still be there.

Step 5: Exporting each Data Set

Go to File>Export>Data Sets as Files….

Once you’ve selected a folder and fixed all your naming conventions, you can export each unique card into it’s own PSD file.

Step 6: Layout your Print Sheets

Create another PSD file to the size of your printing paper.

Create guides and cutting lines

Create guides so that you can easily snap the images of your cards onto that template. If you’re printing Poker Size cards on Short Bond Paper, I recommend you use these guides:

  • Horizontal: 0.25″, 3.75″, 7.25″, 10.75″
  • Vertical: 0.5″, 3″, 5.5″, 8″

(Actually, the link to the file is below so you don’t need to make a new one…)

Trace your guides with a 1px pencil. This will help you later when cutting out your cards. The guides are especially useful if the border colors of your cards are the same.

Place the PSDs

Copy the PSD files you generated into this printing template by simple dragging your PSD files into it. Snap your files in their slots. Rinse and repeat depending on the number of cards you need to print.

Screen Shot 2016-06-30 at 5.51.08 PM.png
Without the cutting lines, you won’t be able to see the borders between the Monkey, Bird, and Dog cards.

Step 7: Printing and Sleeving

Export your print sheets to PDFs and get to printing. I don’t have to tell you how to cut and sleeve the cards. Anyone whose designed a card game has already lots of experience doing that.

Additional Automation

If you have scores of cards, laying them out on a print sheet can take up a lot of time and it’s a very menial chore. I wrote a program to automate this but it’s not yet user friendly so I can’t share it yet. Maybe some day I will share it once I’ve had time to work out the kinks. For now, it’s one of Balangay’s secret weapons hohoho

The Files

As promised, here are my files so you can experiment with your own data sets 🙂

Card Game sample Spreadsheet

Card Game Photoshop Template

Printsheet Template

Let me know if this was useful and if any of the instructions aren’t clear. Hope this helps you in your game dev cycles 😀

P.S. There’s no Animals TCG…

Follow Nico Valdez:

Game Designer

Nico is a game designer, programmer, songwriter, ex-audio engineer, amateur fiction writer, and president of Balangay Entertainment®. One of the less competitive members of Balangay, Nico only wins against 2k, Marx, and Aya when he's played the game before and they haven't. Nico always wins against Aa. He'll play almost anything as long as it's not loud. He likes euro games for their strategy and thematic games for their roleplaying. He doesn't like party games that much because they get too noisy for his ear disability.

Comments are closed.