An application that generates graphics via data sources.
Clone or download
nhmkdev Massive changes related to outline handling as related to opacity. If…
… the opacity is anything but 255 regions are used to clip and draw correctly. Prior functionality resulted in outlines that drew over the main element (text/shape) resulting in an intersection of the colors. Shapes still technically support this as they have their own outline functionality. Background color now overrides shape color as opposed to rendering a color for the entire element rectangle.
Latest commit 234e247 Sep 3, 2018


CardMaker is an application that generates graphics via data sources. It has a graphical user interface for designing layouts and offers scripting functionality.

This application was created to help me generate components for a board game. You can put all of your variable data into a CSV or Google Spreadsheet and then create layouts in CardMaker. This separates your layout and data so you do not have to manually re-create each card.


Latest stable (I hope) release binary: Download

Download The Game Crafter templates for CardMaker


The above image was generated by the following input data row from a CSV:

Count Name image skill1 skill1value skill2 skill2value ability
1 Siani Malia che.png T 3 B 4 Ranged Battle: +1 on all die Rolls @[opt]

While there is some interpretation of the data by CardMaker to generate the final result, many of the values are direct references. The layout configuration in CardMaker controls the details of how to actually present the data.

Further Details on how the Elements for this Layout are configured

Guides / Help

Note: The code that is submitted may not match the latest binary.

Code Status

Compiles with Visual Studio Express Desktop Edition / Visual Studio 2012

See more details in the Developers Section

TODO / Wishlist

Toxicity Level: Medium-High

  • Needs more comments
  • Needs warning cleanup
  • Needs some shuffling to allow for more narrow and focused unit testing
  • Needs more unit tests!
  • Every method should be implemented based on an interface and classes should implement hundreds of interfaces (just kidding!!!)

The Google Issue

If you plan to outright copy the parts of the code that operate with Google Spreadsheets please be aware that the source currently uses the client id that is associated with my CardMaker application. Code File

You will need to modify this code to correctly use your application.

Games Developed with CardMaker

CardMaker played some role in the development of these games (not necessarily the final product though!). If you have a game that should be listed here let me know.

Cave Paintings


2009 - First created and publicly released CardMaker

20XX - Lots of bug fixes and features

2015 - CardMaker goes open source

2017 - CardMaker is finally marked as for no specific reason.

The Name

"CardMaker" and "Card Maker" are both references to the same application. I just never standardized the name.

Special Thanks

  • Eric Raue
  • Kolja Geldmacher
  • Everyone that has contributed to the project through emailing bugs and requesting features

Original Author

CardMaker was originally created in 2009 by Tim Stair.