Simon McGregor on Thu, 22 Jul 2010 15:24:16 -0700 (MST)

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: [game-lang] a survey of previous work

Hi Joel,

Thought I'd put my 2p in,.

> * GDL:

I don't know much about logic programming, and GDL looks like it comes
from this stable. I like the declarative aspect to GDL, but it really
really needs to incorporate some basic spatial and arithmetical
concepts. These could conceivably be in the form of a library, but I
suspect GDL is not very extensible.

> * RGL:

This is a stab at formalising spatial relations for games. The idea is
that pieces sit on a directed labelled graph, and that a regular
language can be used to specify relevant board concepts (e.g. a line
of 3 in noughts-and-crosses). I'll say right away that I am a bit
skeptical of this specific regular language approach (as a
foundation); it's not clear to me that it's general enough to
encompass ideas like surrounding a group of spaces or forming a

That said, most boards are indeed just graphs (and usually planar
graphs, at that), and the proposed RGL has some merit as a simple (if
incomplete) description.

A few games are played on continuous boards (e.g. miniatures
wargames). I know this it's ambitious, but I'd like to keep cases like
this in mind and try to make the language general enough to deal with
them if possible.

> * Extended General Gaming Model

I can't make sense of this yet.

> * Drools:
> Dave, you mentioned this. Could you point us to where we can read about
> it?

Drools is a framework which, among other things, provides a rule
engine (I suspect it uses the Rete algorithm).

Dave can tell us more about it...

What do we want our game representation language to do?
I'd like the following features: -

1) A playable GUI version of a game can be automatically generated
from its description, assuming that the game is composed of standard
generic components (e.g. dice, cards, counters, tiles, board, etc.).
If the game features some weird component like a card which changes
appearance depending on the polarisation of ambient light, it should
be possible to write a plugin for it.

2) The description of a game is sufficient for appropriate AI
algorithms to play the game, prove things about the game, assess the
dynamics of the game, and so on. (Given appropriate plugins for
nonstandard components, obviously).

3) Any existing turn-based game which a computer could conceivably
play can be represented in the language. Personally I'd prefer this to
include games with continuous boards (although I don't play any games
like this!) but I'm not too bothered if we don't model games which
have real-time gameplay.

4) The description of a game is sufficient in principle to
automatically generate printed rules for the game in any supported
language. (Perhaps badly written rules, but formally correct ones.)

This is a colossal, ambitious undertaking. I think one good way to
start would be to propose specific games which might pose a challenge
to represent. Then we can ask, do we want to be general enough to
handle all of them, or do we want to start off with a restricted
subset and worry about the harder stuff later.

Poker: patterns which make poker hands
Schotten-totten: proof that a hand can't be beaten
Scrabble: English words

Chess: lines, diagonals, forwards, backwards
Go: surroundedness
Hex wargames: line-of-sight, range

Scrabble: make any English word from your letters

game-lang mailing list