Skip to content
Find file
Fetching contributors…
Cannot retrieve contributors at this time
150 lines (111 sloc) 5.33 KB

Vice is a portable, open source, modular framework for both creating and playing trading card games.

Getting ViCE


The current version of ViCE is suitable for developers only. A version suitable for designers will be made available next, then finally, one that will cater to players. If you are unsure which category you belong to, read my blog post on


In it's current state, ViCE has few dependencies:

In the future, some or all of the following depenencies will also be required:


ViCE is made available through stable and unstable releases. For those wanting to experiment with new features, feel free to try the unstable release with the understanding that things are expected to break. For those who are patient enough to wait until such features are complete, it is recommended that you stick to the stable versions.

Stable Version

Unstable Version

The unstable version of ViCE may downloaded from the command line:

git clone git://

If git isn't installed, the repository is also available as a compresed archive:


ViCE is installed like most other python packages::
python install
If you'd like to have the ability to easily uninstall, we recommend using pip:
pip install -e .
Later, you can then uninstall as follows:
pip uninstall vice


ViCE's test suite can also be run using the script::
python test


ViCE comes with extensive documentation. If it isn't documented, it isn't a feature.


The offline documentation is only updated after each release. If you are using an unstable version of ViCE, either consult the online documentation, or build a new pdf from souce by descending into the doc subdirectory and executing the appropriate make target:

make latexpdf


If you have any questions about ViCE, or would like to contribute, there are plenty of options.


This section identifies the different branches of development and their purpose. In cases where this file doesn't document a branch, the general rule of thumb is that the master branch represents the main development branch of development, where as the others are feature branches[2] where experimental concepts are worked on.

As stated already, this is where a majority of work on ViCE happens. When concepts developed in other branches are completed, they are merged here. It should be noted that already agreed upon concepts are developed directly within this branch, so at no given point is it guaranteed to be stable. If you want to ensure that a checkout is stable, you should checkout a tag instead.
This is where the cli frontent is being developed. At present, I'm experimenting with an interface similar to what a lot of web frameworks provide which generate code stubs for you by passing relevant commands. I would also like to experiment with a REPL-style interface for ViCE. The interface is mostly geared toward developers and designers. If time permits (or there is a demand), I might try and develop an ncurses (through urwid) interface for players. Vim bindings +TCG = PWNAGE? Maybe...
This is where the qml frontend is being developed. While Kivy seemed better suited to touch interfaces as well as android development initially, it seems that QML is more mature and less buggy. That said, I'm an infrequent contributor to Kivy, so don't be surprised if work here ceases and a kivy branch appears.
This is where the generated documentation goes. Changes to documentation should occur in other branches, not here! At present, it is necessary to first delete the doc and vice directories and check them out again before running make gh-pages, but once issue #12 is resolved, this will not be so.
This is not a branch for packaging for different operating systems, but rather a branch that maintains distutils2 (or in python 3.3 "packaging") scripts. The result is far less clumbsy than distribute, and so I'm hoping to replace that entirely once it becomes stable.
Jump to Line
Something went wrong with that request. Please try again.