Are there any open source programming libraries, perhaps in Python or Lua for example, for modeling table top games to help with design and testing work?

  • 2
    Are you talking about making a computer playtesting version for people to play? Have you seen Vassal?
    – Cascabel
    Apr 27 '14 at 0:57
  • I was thinking more of a board game design tool where one could, for example, see how changes in the rule system affects game characteristics like balance or average play time. But I guess Vassal or similar board game engines could be used for that purpose even though they were not necessarily built for board game design and analysis but rather for board game remediation - i.e. representing a board game in a networked, computer-based medium.
    – wgajate
    Apr 27 '14 at 2:06
  • Hm, so... you'd need at least a rudimentary AI to play the game, in order to simulate it well enough to measure balance and play time? Or you want to just record data about what the human playtesters do with it? I'm not sure it exists either way, but...
    – Cascabel
    Apr 27 '14 at 4:55
  • 1
    I have published some open-source utilities for building hex-grid games here: hexgridutilities.codeplex.com Apr 27 '14 at 17:29
  • 3
    This sounds like it belongs on gamedev.stackexchange.com.
    – GendoIkari
    Apr 28 '14 at 13:54

If you're interested in testing the aesthetics and flow of the game (rather than fully automated simulation for balance purposes), then I'd look at Tabletop Simulator.

From their site:

Tabletop Simulator is the only simulator where you can let your aggression out by flipping the table! There are no rules to follow: just you, a physics sandbox, and your friends. Make your own games and play how YOU want! Unlimited gaming possibilities!


Currently, there are none.

You might be looking for Monte Carlo simulation tools, but this might be a very, very broad description of tools for your purpose.

I've been thinking about the subject for a while now, and I've come to believe that the tools that are the best fit to the job are the business process management (BPM) tools, in particular the BPM modeling and simulation tools. They allow you to describe a turn as a processes (i.e., a series of steps that a player should take when he is called to act) and simulate many matches to collect and analyse critical indicators. You should also take a look on business rules management systems (BRMS) that allow you to easily set rules that might help you emulate smart decision making.

A decent open source BPM tool is jBPM for BPM and Drools as the BRMS. There is also Activiti. Sadly, both tools lack simulation capabilities. If you use BPMN 2.0 to model your game as a process, you can try simulating with bpmn-simulator, but then you lose the BRMS integration that is important to simulate player decision making.

Anyway, I must emphasize that this is the best approach I could think of with today's open source software. This does not means that this is a good approach. In fact, I haven't tried it myself yet. Still it makes sense to me to model a game as a very complex process filled with rules that could be simulated with adequate tools.

  • 1
    Thanks Ramiro. You offered thoughtful insights into a possible solution. Perhaps I should just start an open source project to fill the void.
    – wgajate
    May 1 '14 at 2:23
  • very interesting from the theoretical point, but I'm loosing while trying to apply to a pratical task. This is a real white board syndrome case: wheres' to start?
    – Gabriele B
    Sep 18 '14 at 10:37

For what it's worth, this is actually a pretty difficult problem to solve. You might have a look at General game playing on wikipedia, and the things linked from there. There are a few engines that people have built that you could look into. For your purposes you don't need the AI to find optimal strategies, of course, but even just doing well enough to come close enough to human play to measure what you want to measure is tough - I'm not sure whether or not they'll be good enough.

I wouldn't count on much of anything existing beyond what you see there, and find searching for similar things. There's a reason they're still holding contests!

  • I don't know why anybody voted this answer down. This is the right answer, I have thought about this for years. I wish I could up vote you more. I appreciated your answer! Nov 4 '14 at 5:01
  • @JohnBurley Well, the top/accepted answer said basically the same thing (you're out of luck), then linked to some things that it sounds like are sorta halfway to what you'd need to do monte carlo type stuff, so... at least the ideas got upvoted.
    – Cascabel
    Nov 4 '14 at 16:34

You can model subsystems of a game for calculating probabilities using the Lea library for Python.

Not the answer you're looking for? Browse other questions tagged or ask your own question.