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. Simon _______________________________________________ game-lang mailing list game-lang@xxxxxxxxx http://lists.ellipsis.cx/mailman/listinfo/game-lang