{"id":32383716,"url":"https://github.com/jacadzaca/monopoly","last_synced_at":"2026-05-09T16:14:42.638Z","repository":{"id":192368700,"uuid":"275096277","full_name":"jacadzaca/monopoly","owner":"jacadzaca","description":"A Monopoly (the game) server","archived":false,"fork":false,"pushed_at":"2021-06-25T22:51:10.000Z","size":865,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-09-04T13:25:02.315Z","etag":null,"topics":["game","kotlin","monopoly-game","server","vertx"],"latest_commit_sha":null,"homepage":"https://jacadzaca.github.io/blog/monopoly.html","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jacadzaca.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,"governance":null}},"created_at":"2020-06-26T07:16:12.000Z","updated_at":"2023-09-04T13:25:38.022Z","dependencies_parsed_at":"2023-09-04T13:41:58.067Z","dependency_job_id":null,"html_url":"https://github.com/jacadzaca/monopoly","commit_stats":null,"previous_names":["jacadzaca/monopoly"],"tags_count":1,"template":null,"template_full_name":null,"purl":"pkg:github/jacadzaca/monopoly","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacadzaca%2Fmonopoly","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacadzaca%2Fmonopoly/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacadzaca%2Fmonopoly/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacadzaca%2Fmonopoly/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jacadzaca","download_url":"https://codeload.github.com/jacadzaca/monopoly/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacadzaca%2Fmonopoly/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280893612,"owners_count":26409280,"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-10-24T02:00:06.418Z","response_time":73,"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":["game","kotlin","monopoly-game","server","vertx"],"created_at":"2025-10-25T01:59:59.441Z","updated_at":"2025-10-25T02:00:01.563Z","avatar_url":"https://github.com/jacadzaca.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"## About\nThis repository contains code for a simple [Monopoly](https://en.wikipedia.org/wiki/Monopoly_(game\\)) server. The server's written in [Kotlin](https://kotlinlang.org/) using the [vert.x](https://vertx.io/) framework.\n\n## What's missing?\n- a sane looking frontend\n- a (Go to jail)/Jail tile\n- the free parking tile\n- the chance/Community Chest cards and tiles\n- train stations\n- multiple rooms support (not as an big of an issues as it sounds)\n- some win condition; the game will go on as long as their is someone who is not bankrupt\n\n## Building\n```bash\ngit clone https://github.com/jacadzaca/monopoly.git \u0026\u0026 cd monopoly \u0026\u0026 ./gradlew shadowJar\n```\n\n## Running\n```bash\njava -jar build/libs/monopoly-1.0.0-SNAPSHOT.jar run com.jacadzaca.monopoly.HttpServer --launcher-class=io.vertx.core.Launcher -Dstarting_balance=2000\n```\n\n## The 'Protocol'\nSee [GameStateController.js](https://github.com/jacadzaca/monopoly/blob/master/resources/GameStateController.js) for an example implementation and [Delta.kt](https://github.com/jacadzaca/monopoly/blob/master/src/main/kotlin/com/jacadzaca/monopoly/gamelogic/Delta.kt) for the 'protocol definition'\n\n## The program's flow\nFirst there is a request that's intercepted by the [Web socket server](https://github.com/jacadzaca/monopoly/blob/master/src/main/kotlin/com/jacadzaca/monopoly/WebSocketGameServer.kt), validate by one of the [validators](https://github.com/jacadzaca/monopoly/tree/master/src/main/kotlin/com/jacadzaca/monopoly/requests/validators) and then either converted into an error message or an [command](https://github.com/jacadzaca/monopoly/tree/master/src/main/kotlin/com/jacadzaca/monopoly/gamelogic/commands).\nThe command is then executed and a [change](https://github.com/jacadzaca/monopoly/blob/master/src/main/kotlin/com/jacadzaca/monopoly/gamelogic/Delta.kt) [is propagated](https://github.com/jacadzaca/monopoly/blob/master/src/main/kotlin/com/jacadzaca/monopoly/gameroom/GameRoomVerticle.kt).\n\n## Disclaimer\nThis project is in no way affiliated with, authorized, maintained or endorsed by Hasbro or any of its affiliates or subsidiaries. This is an independent and unofficial project. Use at your own risk.\n\nThe code is licensed under an GPL license. Refer to the [LICENSE](https://raw.githubusercontent.com/jacadzaca/monopoly/master/LICENSE) file for more information.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacadzaca%2Fmonopoly","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjacadzaca%2Fmonopoly","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacadzaca%2Fmonopoly/lists"}