avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • Sunday May 9, 2021, 12:47 pm
  • Proudly celebrating 15+ years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - ZwodahS [ switch to compact view ]

Pages: [1]
I have look at VASSAL and i feel that the need to learn a programming skill to code a new board game may not appeal to many. So I thought about it and i come up with an idea.

i didn't have time to really analysis how it can be done but here is a quick draft of what i think is possible to do.

To describe my idea, i shall first focus on card games as an example.

In all the card games, we can first break them down into smaller components that are part of the games.

1) Zones : Zones defines the places that the card can be in (Hand, Remove from the game, etc)
2) Counters : Life , any form of counter. Counter can be put on cards in any zones (more on that later), or on any players.
3) Cards : Cards are just encoding for "sequence of actions".
4) Actions : Define a sequence of "system action".

Zones : Zones can be of many types. The first few that i can think of are
  1) Private (Only you can see and do action on the cards)
  2) Team    (Only your team can see and do action on the cards)
  3) Personal_Team(Your team can see but only you can do action on it).
  4) Personal(Everyone can see but only you can do action on it).
  5) Global(Everyone can see , and everyone can do action on it).

We probably need to define how each zones are duplicated for each players or if the zone is unique.
We also need to define if the zone is a Piled zone(meaning all the cards are hidden) or a open zone where all the cards are revealed to all.
Counters : Counters are just numbers , but we need to be able to define whether it is a global counter, or personal counter or specific counters for a card etc.

Cards & Actions :

Most of the cards games are just manipulating Cards(moving from zones to zones), increasing/decreasing counters and providing actions for cards in different zones.

So the simplest System action that i can think off would be

Move ___ To ___
Increase ___ By ___

So Actions can be defined by user. For example, we want to allow players to "play"(Action_Play) their cards from their hand(Zone_Hand).

Then we can define an Action call Play, that only can be "triggered" by the player who own the Zone (Hand), and the card have to be in the Zone.

The action (Action_Play) does nothing but defining the Action that can be done on a card from which zone.
What the action does for each card is defined in the card.

It is probably unclear regarding what i say so lets use Magic the gathering as an example, since it is probably one of the most hard to define card games.

In MTG , the zones are defined as

Remove From the game(Personal),


Then we define the counters
Mana_Blue,Mana_Red etc etc.

Actions :
Play[Only from Hand]
Discard[Only from Hand]

So for example, lets take summoning a creature in mtg as an example.

A creature card would have a cost , defined in term of counter, so if the creature have a cost of 2 blue mana, the requirement would be Mana_Blue >= 2.

The action for [Play] for this card can be defined in the following manner.
Mana_Blue - 2
Move This to Zone_Play.

A card that let the player choose one cards from opponent hand can be defined as

Owner Choose 1 Player(as plist)
Foreach p in plist
   Owner Choose 1 Card(as cards) from p.hand
   Move cards To p.Graveyard

I probably over simplified things for this case but you get my point(hopefully).

The next think would be to define the game flow.

Game flow would be broken up into stages , each stages contains turns and each turns contains phrase.

For MTG the stages would be

StartGame would define the steps for mulligans and drawing of starting hand, In game will be the game itself. The phrases for MTG is defined clearly, such as Draw phrase, combat etc etc.

In each Phrase/Turn/Stage, we can also define a action that we want to do. Etc.

So you may think , All this are still programming, so we are still back to square one. Not really.
These are just low-level designs that we can implements in the engine, and the developers can be provided with a good tool that allow them to choose the sequence of action they want to do.

The engine can then provide small systems actions, that can be combined into actions that mimic the effects of cards.Note that what i posted here is just the rule set portion and i probably oversimplify a lot of things here. I believe the UI and networking portion would not be as hard as compared to defining a good engine backend for developer to design and prototype their game.

After we do this for card games, we might be able to define a bigger set of ruleset for board games as well but doing that will take a slightly longer time.

The hard part ? analyzing enough card games to find all the small actions that we needs to define. I don't have time at the moment as i am still schooling to start on such a big project. I might work on it during my breaks but in the mean time i hope we can brainstorm :P and perhap one day someone might pick it up and start on the project.

(sorry for the long post)

vassal connects to a central server which is not what i was looking for. I am looking for something that have p2p connection instead.

I was looking through the list but most of them doesn't support rule enforcement. Do anyone know of such a good tool ? I have an idea of how to do it for cards(and perhaps extend it to board) but i don't really want to reinvent the wheel.

If you are finding tool to synchronizing 2 folder, Syncless is definitely not the choice as our algorithm is not optimized for 2 folder. However for n-way synchronization, you could take a look at all-way sync and perhap syncless. I didnt do a test on 46gb of files, but the highest i went was 200,000 files around 11gb, and it took like 2~3 hours =/. The time taken is not for indexing,but for writing the metadata , and we are currently looking at how to optimize it =P.

General Software Discussion / Re: n-folder syncronizing
« on: May 11, 2010, 11:39 AM »
The Syncless discussion group is at
One guy actually suggested a workaround for network drive support.
you could take a look here :

in summary, what he did was to map a network drive letter to the network drive and it would appear to work for him. Perhap you could try if it helps =).
I kind of know where the problem lies , just need a computer to test =)

General Software Discussion / Re: n-folder syncronizing
« on: May 11, 2010, 12:54 AM »
Hi I am developer for syncless and Does not have a network drive to test some stuffs before I try to add a network support for syncless. If you are interested to help me test some stuffs, could you drop a MSG at the syncless discussion group or email me at ericnjf+syncless AT gmail DOT com
thanks in advance =P

Hi , you might want to check out a open source project that my team have been working on at

Pages: [1]