Simon McGregor on Tue, 27 Jul 2010 09:45:22 -0700 (MST)

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

Re: [game-lang] review of GDL

First off: great summary, Joel! Thanks for doing this.

I'll take the liberty of snipping without indication, since it was a long post.

On Tue, Jul 27, 2010 at 3:06 PM, Joel Uckelman <uckelman@xxxxxxxxx> wrote:
> 2. GDL is designed for "finite, discrete, deterministic, multi-player
> games of complete information" [2, p.1]. We unambiguously hit "game"
> and "multi-player". We clearly don't satisfy "complete information"
> and "deterministic"

Yup, agreed.

> The remaining two properties, "finite" and "discrete", I'm not so sure
> about.

I'll try a different angle here from yours. Given that we presumably
want to model arithmetic in our language, are there compelling reasons
not to model the integers and the reals?

>From a purely pragmatic point of view, if we restricted ourselves to
finite models of arithmetic, then whenever we defined a game involving
numbers we'd presumably have to specify the cardinality of the model.
This strikes me as both tedious and inelegant.

Similarly, suppose we modelled miniatures wargames boards as
hi-resolution grids. Then if we started writing the game, and partway
through decided that the resolution wasn't fine enough, we'd have to
go back and change any integer coordinates we'd mentioned. (I can also
see circumstances where an AI would want to internally re-model the
integer grids as the continuous fields they are pretending not to be.)

I'm not a logician or declarative language programmer, so there may be
good reasons not to, but in the absence of solid counter-arguments I
think we should use good ol' integers and reals.

> 3. Turn-taking: [1] defines the game model so that every player moves
> simultaneously at every choice point, but then provides for turn-taking
> by letting players other than the turn-taker have a no-op as their only
> legal move. (See [1, p.7] for an example.)

This is an unfriendly default case, agreed.
Incidentally, we are all agreed that we're not (currently) aiming to
model games with real-time elements (e.g. Snap), right?

> 4. Language features and warts:

I agree that "now(\phi)" is far better than "true(\phi)", and that
ordinal goal values would be desirable. The ability to write malformed
rules seems undesirable, unless the semantic properties represented by
malformedness are acceptable for our purposes.

Some of the more technical points (implicit current state, conjunctive
heads, semantic conditions) went a bit over my head, but they probably
don't need further explanation for the moment.

And I emphatically agree with all the points you make about syntax.
Just looking at the GDL code makes me grimace. It's one of those
languages which looks like it was designed for compiler writers rather
than programmers.

game-lang mailing list