Skip to Content

Rapid prototyping on your computer—anyone interested?

7 replies [Last post]
Rick-Holzgrafe's picture
Joined: 07/22/2008

For some months I've been working on a computer program that allows me to quickly build a "digital prototype" of a game. I call it GameTable: it more or less simulates having a table with a board and a lot of bits on it. You can push the bits around on your screen as if they were real. There are different kinds of bits that provide useful functionality, such as "supply" objects that act like piles of identical bits or like grab-bags of dissimilar bits, and "banks" for money and VPs that simplify the transfer of arbitrary amounts among the game and the players.

GameTable is not yet complete, and is not yet ready for distribution. I'm posting this to gauge the level of interest others have in it. If there is enough interest, I'll spend some effort trying to make it a bit more friendly and well-documented than I would if it is just going to be me using it. Please reply to this post if you have interest, or if you need questions answered in order to decide if you're interested. If you think the whole idea is silly, please don't bother saying so. I expect many people will have no interest.

Tell me more, Rick. What does GameTable do? What is it for?
GameTable is not like VASSAL or Sun-Tzu or other tools that enforce rules and let you play with others on-line. GameTable does not enforce rules, and does not network with anything or anybody. It is intended for use during the earliest development of a game design, before you are ready for other people to see it, and when you are still playing it by yourself and pretending to be multiple players. Its only purpose is to save you the following hassles:

- Building a real prototype for a design that may turn out not to be worth the effort
- Setting up and putting away a game
- Making space to lay out a game (clearing the table, chasing the kids away, etc.)
- Making frequent changes to an early prototype
- Telling everybody not to disturb the bits when you have to stop work but need to keep the game set up.

What are the system requirements for GameTable?
GameTable is written in Java 1.5. This means that it will run on any computer (Windows, Linux, Mac) that has Java 1.5 or later installed.

What do I have to do to make a GameTable prototype of my design?
Creating a game for GameTable requires using a text editor to write a (possibly lengthy) config file in XML format, and making a folder to contain any image files your game needs: at minimum, a board image. Image files can be PNG, JPG, GIF, or TIFF (possibly others as well: it's up to your Java installation.)

Writing a config file for your game may not be easy. Although GameTable is intended to save you time and effort, it isn't magical: it will still cost you time and effort to make a GameTable prototype. The more different kinds of bits your game has (unique cards and tiles especially), the harder it will be to make a GameTable prototype.

Also note that some games have rules that GameTable can't emulate (or at least, not yet). For example, you can have a shuffled deck of tiles or cards in GameTable, but there's no way to just peek at the top card or cards, and no way to return a card to the top of the deck. GameTable is flexible, but I can't guarantee that it will be able to emulate your particular game.

Am I man (or woman) enough to use GameTable?
Read the following list. You shouldn't try to use GameTable unless all of these statements are true for you:

- You must be able and willing to install Java 1.5 if you don't have it yet. (Java is free, and I can tell you where to get it.)
- You must not be afraid to use command-line tools. (GameTable is not a double-clickable app.)
- You must be willing to learn XML if you don't already know it. (You only need the basics, and I will include instructions.)
- You must be willing to learn how to code up a game for GameTable using XML. (You gotta read the manual.)
- You must be willing to think for yourself if something doesn't work.

That last one is important, for several reasons. First, GameTable is not very good about reporting errors in the config file. You will often have to figure out what's wrong on your own. Second, I will not hold your hand. I will likely not respond to pleas for help. I have too many other things to do. Third, if there's a feature you'd like that GameTable doesn't offer, you're going to have to figure out how to get along without it. I haven't time to spend coding up everyone's wish list.

I will not be polite to anyone who finds it easier to email me with their questions than to read the manual. You can risk mailing me if you've read the manual carefully and you think I've left out something important, though.

Well, that's not very friendly. How much do I have to pay to get support like that?
Nothing. If I release GameTable at all, I will do so under some version of the LGPL. That means it won't cost you anything (except your own time and effort), and you won't owe anything to me (except the obligation to include my copyright notice if you give GameTable to somebody else).

When will you release GameTable?
Sorry, I don't know. Right now it's missing one hugely important feature: the ability to save its state and resume play later. I hope to have that done soonish, but GameTable is a totally spare-time project and I don't have much spare time these days.

If interest is strong, I'll release it without the save-game feature. It just means that if you quit a session, you have to start over from the beginning of a game the next time.

Say, I'm a Java programmer! Want some help?
I'll probably be willing to release the source code to anyone who's interested. That way you can add your own hacks and improvements to it.

Okay, that's it. Anybody interested?

Joined: 08/03/2008
I'm interested...


This sounds like quite an undertaking, but I commend you for putting in the effort.

I've used Zun Tzu quite a bit for solo playtesting, and it works quite well for that purpose, and can do most of the things you'd like to be able to do -- roll dice, shuffle cards, flip cards over, rotate cards, etc. The one thing it can't do is resource tracking. Whenever I playtest a game with an economy, I always have to use a pencil and paper or an Excel spreadsheet; it's just too tedious to use Zun Tzu for that kind of thing (you can make "money" counters and move them around but it's horribly slow). If your program can do resource tracking and transactions, that's certainly appealing. The other limitation in Zun Tzu is that you can't group objects by shift-clicking them. You can form a stack by dragging them on top of one another, but in a game with a lot of multiple-piece movement, this is slow and tedious.

What other differences are there between your program and Zun Tzu? For me, I know how to use Zun Tzu and it mostly does what I need. So there'd definitely be some inertia to switching over to a new platform, particularly if it's less easy to use than Zun Tzu. One thing that would be slick is if you could use your Zun Tzu game folder as a Game Table folder as well.

I look forward to hearing more about your program as it gets closer to completion.

Rick-Holzgrafe's picture
Joined: 07/22/2008
Quote:This sounds like quite

This sounds like quite an undertaking, but I commend you for putting in the effort.

Thanks. So far it's been surprisingly easy. I started this project almost a year ago as an investigation into JavaFX, which I eventually abandoned. I started over in just-plain-Java and it hasn't been tough at all.

I've used Zun Tzu quite a bit for solo playtesting

I've never used Zun Tzu. It only runs on Windows.

The one thing it can't do is resource tracking.

There is probably more than "one thing" that GameTable can't do right now. But you might like it for resource tracking. For example, create a "bank" object for the game and one for each player. To transfer $15, click on the paying bank and type "15" into a dialog; a $15 "cash" item appears. Drag that to another bank and drop it to make the deposit: the "cash" item vanishes and the balance on the target bank goes up. Banks can go negative: if you like, you can start the game bank at $0, and the highest (absolute value) balance it hits represents the maximum amount of cash circulating at one time in the game.

The other limitation in Zun Tzu is that you can't group objects by shift-clicking them.

You can do that in GameTable, although the feature needs work: I'm not entirely happy with the way items respond to clicks. I may add a "rubber-band" selection feature. The only thing you can do with a multiple selection is drag it to another location. I'm pretty sure that currently you can't effectively drop a collection onto a supply or a bank; only the first-selected item would go in. I'll have to look into that one.

Again, I haven't looked at Zun Tzu because I can't use it. I gather it's fairly mature at this point, and might well be better for prototyping than GameTable.

If/when I release GameTable I'll include a pseudo-game that shows off all the major features, so that you can evaluate it quickly. Then you need only invest the time to learn it if it looks like it's worth the effort to you.

InvisibleJon's picture
Joined: 07/27/2008
Count me in, please...

Nifty! Thanks for offering to share your work with us.

I meet all requirements and am interested. I'll happily test / use Game Table when you make it available.

Rick-Holzgrafe's picture
Joined: 07/22/2008
Correction, and a link

Rick-Holzgrafe wrote:
I'm pretty sure that currently you can't effectively drop a collection onto a supply or a bank; only the first-selected item would go in.

Couldn't remember, so I checked. You actually can drag a multiple selection to a supply and drop them all in. (Yay, me!)

I mentioned that I began this project in JavaFX, then switched to just-plain-Java. For those who are interested, here's the first of three blog posts discussing the JavaFX version:

(I never got around to blogging about abandoning JavaFX, but for the record, I never solved all the problems it was giving me and eventually gave up trying. I've been surprised at how easy it actually was to get the results I wanted in pure Java.)

Redcap's picture
Joined: 07/26/2008
I already do everything you

I already do everything you say with Zuntzu.

Zuntzu doesn't enforce rules, you can play it by yourself, and the code for making game boxes is really easy.

So I appreciate your efforts but just curious of how it will be different from Zuntzu?

Rick-Holzgrafe's picture
Joined: 07/22/2008
Redcap wrote:So I appreciate

Redcap wrote:
So I appreciate your efforts but just curious of how it will be different from Zuntzu?

Rick-Holzgrafe wrote:
I've never used Zun Tzu. It only runs on Windows.

Please read Jeff Warrender's response above, and my reply, to see some differences that Jeff pointed out. And no offense, Red, but this is the sort of thing I was talking about in my initial post: if you won't read what I've already written about GameTable before asking questions, you won't like using it because I won't support you.

And of course, if you're happy with Zun Tzu, you have no need for GameTable.

Joined: 05/11/2010
Having a program not tied to

Having a program not tied to that odd .net distribution would be a boon over zuntzu. I do like zuntzu, it's the simplest of such programs I've used, but if yours is easier to use I would consider it. It would be cool if you could support zuntzu files, since they are basically xml + images, but that might take a bit of time to do that.

Anyway, I'm not really thrilled by any of the other such programs, so would be willing to play around with one more. And it's a lot easier to remember how to say "gametable" then sun-zoo or vasseline.

Syndicate content

forum | by Dr. Radut