{"id":48096909,"url":"https://github.com/mkrtchian/foobartory","last_synced_at":"2026-04-04T15:36:52.175Z","repository":{"id":36959488,"uuid":"385974650","full_name":"mkrtchian/foobartory","owner":"mkrtchian","description":"Factory management game.","archived":false,"fork":false,"pushed_at":"2026-03-30T08:59:36.000Z","size":7271,"stargazers_count":0,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-30T10:31:01.067Z","etag":null,"topics":["game","real-time-strategy"],"latest_commit_sha":null,"homepage":"https://mkrtchian.github.io/foobartory/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mkrtchian.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,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-07-14T14:45:20.000Z","updated_at":"2026-03-30T08:59:34.000Z","dependencies_parsed_at":"2024-09-16T09:54:38.705Z","dependency_job_id":"73497469-364b-44bd-9e8c-858ba1bdc3a4","html_url":"https://github.com/mkrtchian/foobartory","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mkrtchian/foobartory","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkrtchian%2Ffoobartory","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkrtchian%2Ffoobartory/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkrtchian%2Ffoobartory/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkrtchian%2Ffoobartory/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mkrtchian","download_url":"https://codeload.github.com/mkrtchian/foobartory/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkrtchian%2Ffoobartory/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31403959,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T10:20:44.708Z","status":"ssl_error","status_checked_at":"2026-04-04T10:20:06.846Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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","real-time-strategy"],"created_at":"2026-04-04T15:36:50.112Z","updated_at":"2026-04-04T15:36:52.104Z","avatar_url":"https://github.com/mkrtchian.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Foobartory\n\nFoobartory is a game of factory management. The goal is to buy 20 robots in the factory the fastest possible.\n\n[A live version of the game is available on github pages](https://mkrtchian.github.io/foobartory/), it is redeployed at each PR that gets integrated.\n\nIt is responsive so it can also be played on mobile.\n\n# Features\n\nThere are 4 locations where actions can be done:\n\n- The foo mine where a robot ca mine foos (takes 1 second).\n- The bar mine where a robot ca mine bars (takes 0.5 to 2 seconds).\n- The assembling factory where a robot can build 1 foobar from 1 foo and 1 bar (takes 2 seconds).\n- The shop where a robot can buy immediately another robot for 3 foobars and 6 foos.\n\nFor each robot, the game chooses randomly to move (any move will take 5 seconds) or to stay at the current location and do an action if possible. When deciding to move, it decides also randomly where to move.\n\nThe player can change the probability to move, and the relative weights of the 4 locations to influence how often they are chosen.\n\n# Install and run locally\n\nThis app has been bootstrapped with `create-react-app` using the typescript template.\n\n- To install you need Node.js, preferably 16+.\n- Then you can install yarn if not already installed with `npm install -g yarn`.\n- The installation is done by simply typing `yarn` in the cloned repository.\n\n## Run the tests\n\nTo run the linter and the tests:\n\n```bash\nyarn lint\nyarn type\nyarn test\n```\n\nTo run also integration tests, you need to set `INTEGRATION_TESTING` environment variable to true.\n\n## Run the app\n\n```bash\nyarn start\n```\n\nThis opens the default browser automatically to display the app.\n\n# Code details\n\nThe code is separated in 2 parts: the domain using pure Typescript and the UI using React.\n\nThe UI has an instance of the domain, and calls methods on it, or subscribes to get updated.\n\nThe main game logic is run in the domain with `requestAnimationFrame`. On each frame the Strategy decides what to do next with all the freezed actors.\n\n# Enhancements\n\nThe possible enhancements are listed in [the issues](https://github.com/mkrtchian/foobartory/issues).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmkrtchian%2Ffoobartory","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmkrtchian%2Ffoobartory","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmkrtchian%2Ffoobartory/lists"}