{"id":22771896,"url":"https://github.com/stonet2000/dimensions-halite3","last_synced_at":"2025-06-22T14:06:51.352Z","repository":{"id":44849902,"uuid":"251733620","full_name":"StoneT2000/dimensions-halite3","owner":"StoneT2000","description":null,"archived":false,"fork":false,"pushed_at":"2022-12-12T17:25:55.000Z","size":2379,"stargazers_count":2,"open_issues_count":5,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-05T13:52:55.987Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/StoneT2000.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-03-31T21:15:48.000Z","updated_at":"2020-07-23T06:39:36.000Z","dependencies_parsed_at":"2023-01-27T22:46:22.086Z","dependency_job_id":null,"html_url":"https://github.com/StoneT2000/dimensions-halite3","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StoneT2000%2Fdimensions-halite3","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StoneT2000%2Fdimensions-halite3/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StoneT2000%2Fdimensions-halite3/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StoneT2000%2Fdimensions-halite3/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/StoneT2000","download_url":"https://codeload.github.com/StoneT2000/dimensions-halite3/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246314150,"owners_count":20757463,"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":[],"created_at":"2024-12-11T16:17:41.027Z","updated_at":"2025-03-30T12:15:17.266Z","avatar_url":"https://github.com/StoneT2000.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dimensions - Halite 3 Design\n\nThis is a typescript implementation of the [Halite 3 AI competition](https://halite.io) using the [Dimensions AI competition framework](https://github.com/stonet2000/dimensions). This simulates the original Halite 3 game quite closely, including features such as inspiration, mining, dropoffs and more!\n\nYou can run most bots that adhere to the [Halite 3 starter kits](https://github.com/HaliteChallenge/Halite-III/tree/master/starter_kits). At the moment, C++, C bots don't really work due to no support for CMake and Make at the moment. Out of the box, Java, Python, Javascript / Typescript, PHP, Go should work, as long as a `install.sh` file isn't used. More will be added as Dimensions supports more options.\n\nTo start, first install it\n```\nnpm install dimensions-ai @dimensions-ai/designs-halite3\n```\n\n\nTo run a single match, run\n```js\nconst Dimension = require('dimensions-ai');\nconst Halite3Design = require('@dimensions-ai/designs-halite3').default;\n\nlet halite3Design = new Halite3Design('Halite 3 Design');\nlet halite3Dimension = Dimension.create(halite3Design, {\n  name: 'Halite 3', \n  loggingLevel: Dimension.Logger.LEVEL.DETAIL\n});\n\nlet starterBotJS = './starter-kits/js/MyBot.js';\nlet starterBotPY = './starter-kits/python/MyBot.py';\nhalite3Dimension.runMatch(\n  [starterBotJS, starterBotPY],\n  {\n    name: 'my-halite-match',\n    loggingLevel: Dimension.Logger.LEVEL.INFO,\n    replayDirectory: './replays',\n  }\n).then((res) =\u003e {\n  console.log(res);\n});\n```\n\nTo run a trueskill ranked leaderboard like tournament, akin to the actual Halite 3 tournament, run\n\n\n```js\nlet Tournament = Dimension.Tournament;\nlet simpleBots = [\"pathToBot.js\", \"pathToSomeOtherBot.java\", \"anotherBot.cpp\", \"anotherOne.py\"];\nlet halite3League = halite3Dimension.createTournament(simpleBots, {\n  type: Tournament.Type.LADDER, // specify ladder/leaderboard tournament\n  rankSystem: Tournament.RankSystem.TRUESKILL, // specify to use trueskill for ranking\n  loggingLevel: Dimension.Logger.LEVEL.INFO,\n  defaultMatchConfigs: {\n    replayDirectory: './replays',\n    loggingLevel: Dimension.Logger.LEVEL.ERROR,\n  },\n  agentsPerMatch: [2, 4], // specify that only 2 or 4 players can compete at the same time\n  resultHandler: Halite3Design.trueskillResultHandler // use the trueskill result handler\n});\nhalite3League.run();\n```\n\nFor full details on how to run custom matches and tournaments, make sure to check out https://github.com/stonet2000/dimensions for details on how to run them.\n\nReplays are automatically saved to the root folder. You can specify the `replayDirectory` field to give a directory to store replays in. To watch them, you can upload them to the online Halite 3 client at [https://2018.halite.io/watch-games](https://2018.halite.io/watch-games)\n\nThere are only a few features left out (that I know of at least). Error logs are not saved anywhere at this time, they are only printed to console if you set logging to a level of `Logger.LEVEL.WARN` or higher\n\nI'm open to any contributions if you would like to fix/add something to this! Just open an issue or a PR\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstonet2000%2Fdimensions-halite3","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstonet2000%2Fdimensions-halite3","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstonet2000%2Fdimensions-halite3/lists"}