About FlexibleRules
FlexibleRules aims at supporting the design and editing of computer board games by introducing
a simplified programming model and set of software tools.
Motivation
In our opinion mixed reality board games should combine the best of the
purely physical and purely digital worlds. Both the rules of the game and the
graphical representation should be simple to define at design stage, and easy to
change before or even during a game session. For that reason we propose a
framework allowing the implementation of all aspects of a board game in a fully flexible
and decoupled way. FlexibleRules combines both a model driven and an aspect oriented design
of computer enhanced board games.
FlexibleRules in action
The FlexibleRules framework consists of different tools: a programming language and execution environment, a visual editor for
the graphical user interface, etc. As in physical games, the game itself (i.e. its rules) can be modified
even during gameplay. Additionally,
during gameplay, each aspect of the game can be monitored and analyzed.
|
|
|
Graphics Editor
|
Logic Editor
|
Code Editor
|
|
|
|
Mappings Editor
|
Message Logger
|
Properties Registry
|
Games logic consists of a number entities that communicate by exchanging messages. Development of games follows the aspect oriented paradigm: all the different concepts of a board game (interaction with the user, rules, logic) are modeled separately using the FlexibleRules domain specific language.
What follows is a short video demonstrating the creation of the
Tic-Tac-Toe game using the FlexibleRules framework.
Click
here to download the high-resolution video... or click
here to get more information about the game (and play it too!).
Additional Information
FlexibleRules has been developed at the
Pervasive and Artificial Intelligence research group,
Department of Informatics, University of Fribourg, as PhD Thesis by
Fulvio Frapolli.
This research has been partially supported by the Swiss Hasler Foundation, project Nr. 09090-0630-011.
Contact:
Fulvio Frapolli (
fulvio . frapolli //at// gmail . com),
Amos Brocco (
amos . brocco //at// gmail . com)
* Remove spaces and replace //at// with @