{"id":16314676,"url":"https://github.com/ldeluigi/untitled-goose-framework","last_synced_at":"2025-07-29T01:08:24.852Z","repository":{"id":57720979,"uuid":"278098183","full_name":"ldeluigi/untitled-goose-framework","owner":"ldeluigi","description":"A framework that allows to write a game like The Goose Game entirely in few LOC with a DSL, in Scala.","archived":false,"fork":false,"pushed_at":"2021-01-19T20:03:17.000Z","size":3106,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-21T16:48:03.579Z","etag":null,"topics":["board-game","boardgames","dsl","framework","games","goose","goosegame","library","scala","scalatest","vertx3"],"latest_commit_sha":null,"homepage":"","language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ldeluigi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-07-08T13:33:52.000Z","updated_at":"2021-08-26T13:24:53.000Z","dependencies_parsed_at":"2022-09-04T18:20:10.413Z","dependency_job_id":null,"html_url":"https://github.com/ldeluigi/untitled-goose-framework","commit_stats":null,"previous_names":[],"tags_count":48,"template":false,"template_full_name":null,"purl":"pkg:github/ldeluigi/untitled-goose-framework","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ldeluigi%2Funtitled-goose-framework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ldeluigi%2Funtitled-goose-framework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ldeluigi%2Funtitled-goose-framework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ldeluigi%2Funtitled-goose-framework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ldeluigi","download_url":"https://codeload.github.com/ldeluigi/untitled-goose-framework/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ldeluigi%2Funtitled-goose-framework/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267613414,"owners_count":24115623,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-28T02:00:09.689Z","response_time":68,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["board-game","boardgames","dsl","framework","games","goose","goosegame","library","scala","scalatest","vertx3"],"created_at":"2024-10-10T21:54:51.967Z","updated_at":"2025-07-29T01:08:24.821Z","avatar_url":"https://github.com/ldeluigi.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"# untitled-goose-framework\nUntitled 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](https://en.wikipedia.org/wiki/Game_of_the_Goose).\n\n## CI/CD\n### Continuous Integration\nA CI system tests, builds and makes new releases of the framework.\n- __master__ branch:  \n![Continuous Integration](https://github.com/ldeluigi/untitled-goose-framework/workflows/Continuous%20Integration/badge.svg?branch=master)\n![Periodic Integration Checks](https://github.com/ldeluigi/untitled-goose-framework/workflows/Periodic%20Integration%20Checks/badge.svg?branch=master\u0026event=schedule)\n- __develop__ branch:  \n![Continuous Integration](https://github.com/ldeluigi/untitled-goose-framework/workflows/Continuous%20Integration/badge.svg?branch=develop)\n### Continuous Delivery\n- New [releases](https://github.com/ldeluigi/untitled-goose-framework/releases) are generated based on the [master](https://github.com/ldeluigi/untitled-goose-framework/tree/master) branch.  \n- The library is published on ~~[Github packages](https://github.com/ldeluigi?tab=packages\u0026repo_name=untitled-goose-framework) and~~ [Sonatype](https://search.maven.org/artifact/com.github.ldeluigi/untitled-goose-framework_2.12).  \n[![Maven Central](https://img.shields.io/maven-central/v/com.github.ldeluigi/untitled-goose-framework_2.12.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22com.github.ldeluigi%22%20AND%20a:%22untitled-goose-framework_2.12%22)\n\n## Features\n- Ability to create new games with the shortest, most readable syntax possible through a Scala DSL (_Domain Specific Language_) called **GooseDSL**.\n  GooseDSL is natural language oriented, in English.\n- 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.\n- 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.\n- Possibility to extend the GooseDSL with custom shortcuts, keywords and more.\n\n## Installation\nThis library works for Scala 2.12.\n\n### Declaring the library as dependency\nNote: `\u003cversion\u003e` is the latest version available.\n#### SBT (suggested)\nAdd in your `build.sbt` file:\n```scala\nlibraryDependencies += \"com.github.ldeluigi\" % \"untitled-goose-framework_2.12\" % \"\u003cversion\u003e\"\n```\n#### Gradle Kotlin DSL\nAdd, in your `build.gradle.kts` file, inside the `dependencies` block:\n```kotlin\nimplementation(\"com.github.ldeluigi:untitled-goose-framework_2.12:\u003cversion\u003e\")\n```\n\n## Usage\nCreate 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.\n\n## Contribute\nYou can contribute to the project with [Pull Requests](https://github.com/ldeluigi/untitled-goose-framework/pulls) or [Issues](https://github.com/ldeluigi/untitled-goose-framework/issues) about bugs or feature requests.\n\n## Examples\nThese are the official examples of projects that implement games using this framework:\n- __[The Game of the Goose (Goose Game)](https://github.com/ldeluigi/goose-game)__\n- __[Snakes and Ladders](https://github.com/ldeluigi/snakes-and-ladders)__\n- __[Quiz Race](https://github.com/ldeluigi/quiz-race)__\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fldeluigi%2Funtitled-goose-framework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fldeluigi%2Funtitled-goose-framework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fldeluigi%2Funtitled-goose-framework/lists"}