Boardgames Example - Rationale
Why?
When it comes to rules, one single boardgame can vary greatly. Image the variations on the level of pawns, board setup, and rules. Building a boardgame for each and every set of rules is not feasible nor desirable. To this end we propose a board game configuration language.
Boardgames come in all sorts of variants. The board game rules were not tied to the boardgame, they are given to you, free to interpretation and free to be creative. We believe that computer boardgames can achieve the same amount of flexibility. Most of us would consider writing an application for the web, for the mobile phone, for your touch pad, but learning how to program is quite a challenge. Even if one would obtain basic programming skills programming on knowledge of different programming languages and paradigms, libraries, deployment etc. Even a simple application like a boardgames is rapidly becoming a huge endeavor.
Examples
Checkers, chess, goose, mill game, battle ships.
What
New language constructs are implemented as a library to easily define a board, define the initial positions of the pawns and specify the valid moves
The Board Game DSL is a domain-specific programming language targeted for the construction of computer boardgames. With the language, users without technical expertise and with a minimal amount of training can write down the layout of board, initialize it with the necessary board pieces and define the rules of the game.
How?
Layer hiding the underlying library for implementing board games.
The language is implemented on top of a home grown library for implementing boardgames. The language hides technicalities involving the need to construct and initialize objects, and hides the implementation protocol governing calls to the api of the library. For example, the board game and its initial pawn setup are defined by a rectangle of tiles and pawns. Games rules are context sensitive and executed when the target of the move matches the position indicated by the user.
Benefit
Power-users can now simply adjust the boardgame on the fly by specifying a board layout, position the pawn, and specify some rules.
For users there is no longer a need to buy, search or even wait for the appropriate game. Game developers can now offer the flexibility users requires and excel in game design and new features.
Homepage // Motivation // Our Services // Examples // Design Tools // Contact
© Copyright 2011, Sebastian Günther & Thomas Cleenewerck, Software Languages Lab, All rights reserved