{"id":13593358,"url":"https://github.com/wiringbits/scala-js-games","last_synced_at":"2025-06-26T03:36:15.059Z","repository":{"id":40359407,"uuid":"507476088","full_name":"wiringbits/scala-js-games","owner":"wiringbits","description":"Simple games ported to Scala.js (Scala 3)","archived":false,"fork":false,"pushed_at":"2023-02-05T22:31:35.000Z","size":82,"stargazers_count":66,"open_issues_count":2,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-06T10:43:17.862Z","etag":null,"topics":["hacktoberfest","scala","scala3","scalajs"],"latest_commit_sha":null,"homepage":"https://scalajs-games.wiringbits.net/","language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wiringbits.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,"roadmap":null,"authors":null}},"created_at":"2022-06-26T04:23:01.000Z","updated_at":"2024-09-17T14:27:21.000Z","dependencies_parsed_at":"2024-01-14T04:37:32.811Z","dependency_job_id":"e9272194-5fe5-4c05-8b4b-f24a7171addf","html_url":"https://github.com/wiringbits/scala-js-games","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/wiringbits/scala-js-games","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wiringbits%2Fscala-js-games","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wiringbits%2Fscala-js-games/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wiringbits%2Fscala-js-games/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wiringbits%2Fscala-js-games/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wiringbits","download_url":"https://codeload.github.com/wiringbits/scala-js-games/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wiringbits%2Fscala-js-games/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261995849,"owners_count":23242204,"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","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":["hacktoberfest","scala","scala3","scalajs"],"created_at":"2024-08-01T16:01:19.580Z","updated_at":"2025-06-26T03:36:14.916Z","avatar_url":"https://github.com/wiringbits.png","language":"Scala","funding_links":[],"categories":["Scala"],"sub_categories":[],"readme":"# Scala.js Games (Scala 3)\n\nThis is a collection of games ported from Scala 2 to Scala.js (Scala 3): the [source](https://github.com/wiringbits/scala-js-games) for each game is written in Scala, and [Scala.js](https://scala-js.org) cross compiled to run in the browser targeting the [HTML5 Canvas](https://developer.mozilla.org/en-US/docs/HTML/Canvas). The original games can be found [here](https://github.com/lihaoyi/scala-js-games) and targeting Scala 2.\n\n[Live demo](https://scalajs-games.wiringbits.net)\n\nThe games are, in order:\n\n\u003cul\u003e\n    \u003cli\u003e\u003cb\u003eAsteroids\u003c/b\u003e: shoot down the asteroid swarms and avoid getting hit!\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003eAstrolander\u003c/b\u003e: bring your lander to a a gentle landing on flat ground before you run out of fuel.\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003eSnake\u003c/b\u003e: eat apples to grow long and don't crash into walls!\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003ePong\u003c/b\u003e: outsmart your AI opponent to get the ball past his paddle (right) to score points!\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003eBrick\u003c/b\u003e: use your paddle to bounce the ball up, destroying all the bricks before you run out of balls.\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003eTetris\u003c/b\u003e: collect points by clearing rows and don't let the screen fill with blocks.\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cp\u003e\n    The controls are generally up-down-left-right and spacebar; they\n    aren't very complex games. Click on a game to start playing and click\n    somewhere else to pause it.\n\u003c/p\u003e\n\n## How to build\n- Install [sdkman](https://sdkman.io) - or, make sure to pick the correct java version (see [.sdkmanrc](.sdkmanrc)).\n- Install [nvm](https://github.com/nvm-sh/nvm) - or, make sure to pick the correct node version (see [.nvmrc](.nvmrc)).\n- Install [sbt](https://www.scala-sbt.org/).\n- Clone the repo.\n- Run `sbt fastLinkJS` (just to make sure the app compiles).\n- Run `npm install` to install the js dependencies.\n- Run `npm run dev` to launch the dev server, then, open `http://localhost:3000` to load the app.\n- Run `npm run build` to prepare the production build.\n\n## Scala.js bundle size\n\nThe bundle size is ~600kb, ~100kb compressed:\n\n![sjs-games-code-size](./docs/images/sjs-games-code-size.png)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwiringbits%2Fscala-js-games","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwiringbits%2Fscala-js-games","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwiringbits%2Fscala-js-games/lists"}