Sopio Card Creator


The Sopio Card Creator is a Windows Forms application developed over a small period of time in 2012. It also features a very basic digital version of the Sopio card game. Both were written in C#.

You can download and run the executables from here (6MB zipped).

Card Creator Images

A "Dual" card, created in the Sopio Card Creator. Both points and an effect are displayed.

A "Points" card, created in the Sopio Card Creator. Only points are displayed.

Game Images

The main menu of the Sopio game.
Selecting a card.

Placing a card - the player can choose to place on themselves, or the AI.


The Sopio Card Creator was started in June 2012, after introducing my friends at University to the card game, Sopio. At the time, a group of programmers decided we'd make an online multiplayer version of the game so we wouldn't have to gather together to play it.

The plans for the multiplayer version never materialised, partially due to the complex nature of what initially seemed like a simple game, so I began to work on a Card Creator to let us create our own cards. I had already created over 100 custom cards with my cousin, shortly after discovering Sopio, but being made on flimsy bits of paper with felt tips didn't really look professional. This was an attempt at making them look more professional.

While encountering a few problems, adding titles, points and effects to cards was successful. I also included a random name bank to spawn random names and effects. Next I added the ability to add images. The only problem, at this point, was that the user could create the card but not save it. The card saving feature was then added.

Also added was a very basic text database consisting of all cards, and booster packs, up to Deck 4 (at the time of writing, Deck 5 and several more boosters have been released). I also attempted to revive the idea of the game and included it with the Card Creator.

The game only recognises points cards, or the points that are present on dual cards, since the effects are quite complicated and would need a lot of work putting into to get working correctly (which I did not have). A very basic server-client connection was made with a console application that I wrote, with all the moves being made by the player being sent to the server (console), which could then potentially be sent to another client.