Many games use customized card decks. On inspection, one will notice that the structure and layout of the cards (or within subsets of them) follows a regular pattern. Using a standard graphics program to construct each card individually from the source graphics (and text) would be a tedious, time consuming process—something best left to a computer. Your job is to design a script-driven card generator (SDCG) system.
ASAP, familiarize yourself with the resources listed below. Meet with your team: ensure that you share a common understanding of how SDCGs work and identify the functionalities your platform will need to provide (i.e., develop the requirements specification). You will need to consider aspects of the physical card —
— and its representation —
— so they will be reflected in the system's capabilities.
After you have finalized the the system requirements, begin designing the system. Study the pattern catalog (including those we have not yet covered) and identify appropriate design patterns. You will need to have a good justification for why you did (and did not!) chose a particular pattern to solve a design issue.
Please do not research how others have designed (and implemented) SDCGs. Obviously you need to understand what they do and how they work so you can apply your design skills to that domain. (To help understand where the proverbial line is drawn: if the project were to design an accounting system, one would need to understand the fundamental concepts and principles of accounting—but one would not need to study how others have implemented such systems.)
One can spend a lot of time exploring the galleries at BoardGameGeek (and you are encouraged to do so). Here is a small sampling of card images that illustrate the kinds of things your SDCG should be able to produce:
The system that inspired this project is called nanDECK (homepage). Had I stumbled upon it's homepage first, I would have quickly moved on, not realizing its potential for generating beautiful cards (when supplied with a suitable script and images, of course). Be sure you download the manual, as it describe more commands than appear on the homepage and in the tutorials. You may also find the nanDECK Yahoo! group a useful resource.
I discovered nanDECK via I Don't Know, What Do You Want To Play?. Visit the page and pay particular attention to the forums articles on using SDCGs, the gallery for samples cards, and the files section for sample scripts.
Design (notimplement) a system that takes as input:
and outputs appropriately named, rasterized bitmaps (one per card). The underlying engine should be modular and (nicely) extensible.
While you may design a system that interprets the nanDECK scripting language, I would strongly urge you to design your own scripting language (I find nanDECK'S can be cumbersome with large, complex scripts).
Design a WYSIWYG tool for laying out a card-style template. The tool shall output the corresponding script.