Wednesday, May 30, 2007

Introducing KitchenTable

Most likely because we've finally hit warm weather here in my hemisphere and Cicada Watch 2007 is in full swing, my desire to work on designs has slowed down. So I'm taking a break for awhile.

However, I've got a new project keeping my lunchtime busy.

Everyone on at BGDF seems to want a prototyping engine, something to easily playtest boardgames on. But, as one can expect, noone has really done anything about it, except to talk about what kind of features they want.

Sure, there are some amount of game playing engies out there; notably Vassal, Thoth, and Cyberboard. They all have their strengths, but for quick prototyping, based on my quick looks into their packages, they don't work very well. Since you actually have to "program in" the rules somewhat, it requires some amount of programming logic, and you really need to have a good sense of how the game operates before you even start getting into the meat of making a game for these systems. And so, making changes to rules as you go is VERBOTEN!

So, I've embarked on trying to come up with this application. And first passes at it have been promising. It works with a very simple mindset. Imagine a kitchen table where there are a bunch of game pieces strewn about. You can manipulate these in any way you wish, making up rules on how they are manipulated, or changing the rules, as you go.

This is pretty much what the software does. It's a "dumb" graphics engine, where users (through a network, local or online) can manipulate graphic objects in real-time on a shared visual table. And since it's simulating the above mentioned kitchen table, I'm eschewing all the fancy suggested names, and going with "KitchenTable" as it's name.

As a real-time example, imagine you want to play a game of chess. You simply load up all of the chess graphic objects, and your friend in another part of the world does the same. KitchenTable doesn't understand the rules of chess, but it allows you and your friend to play chess, in real-time, or whatever rules you want to use with those chess pieces.

You define want you want in your game by editing a simple .txt file (at this point, future plans would call for a drag-and-drop design module that creates the .txt file), which defines objects, and what type of object they are, and the graphics that you want associated with them.

You want to add some dice to your game? Go ahead, and create a die object in the game file. Your die object is simply a list of images that you want on each face of the die, so you can easily define how many sides you want on a die.

This is all being done in the almost-obsolete world of Shockwave. Actually, KitchenTable is a standalone executable program that is stored locally, and is not used in a browser. Why Shockwave? This is what we prototype games in at work, and I have become very fluent in it. Also, there is this thing called the Shockwave Multiuser Server (near the bottom of this link), also pretty much obsolete-d by Flash stuff, that handles a ton of the multi-user stuff. So it's fairly qucik and easy to send messages back and forth between multiple users.

As I've said before, initial tests have proven promising. So I'm now in the stage of cleaning things up from those tests and moving forward.

We'll have to see how long this diversion lasts, since this will most likely keep me busy at lunchtime for a while.

Labels: , ,


Post a Comment

<< Home