Untitled Goose Framework (not a trademark) is a Scala library that is able to run the definition of a board game. It enables the creation and rules automation of games similar to the classic Game of the Goose.
A CI system tests, builds and makes new releases of the framework.
- New releases are generated based on the master branch.
- The library is published on
Github packages andSonatype.
- Ability to create new games with the shortest, most readable syntax possible through a Scala DSL (Domain Specific Language) called GooseDSL. GooseDSL is natural language oriented, in English.
- Ability to play created games locally. Given that each game must be turn-based, one single device is enough to play with any number of human players.
- Possibility to extend game classes, objects or data structures to implement more complex behaviours or functionalities. This can mean both extend the framework functionalities or customize default game logic. For example, one can reimplement the graphical components to make their own visualization.
- Possibility to extend the GooseDSL with custom shortcuts, keywords and more.
This library works for Scala 2.12.
Note: <version>
is the latest version available.
Add in your build.sbt
file:
libraryDependencies += "com.github.ldeluigi" % "untitled-goose-framework_2.12" % "<version>"
Add, in your build.gradle.kts
file, inside the dependencies
block:
implementation("com.github.ldeluigi:untitled-goose-framework_2.12:<version>")
Create a class or object that extends GooseDSL (package: untitled.goose.framework.dsl
) and write your own game. Documentation on how to write a game can be found in the Wiki.
You can contribute to the project with Pull Requests or Issues about bugs or feature requests.
These are the official examples of projects that implement games using this framework: