diff --git a/README.md b/README.md index 89fafd7b..caadd6ae 100644 --- a/README.md +++ b/README.md @@ -2,34 +2,33 @@ [![PyPI version](https://badge.fury.io/py/luxai_s2.svg)](https://badge.fury.io/py/luxai_s2) -Welcome to the Lux AI Challenge Season 2! +Welcome to the Lux AI Challenge Season 2! (Now at NeurIPS 2023) -The Lux AI Challenge is a competition where competitors design agents to tackle a multi-variable optimization, resource gathering, and allocation problem in a 1v1 scenario against other competitors. In addition to optimization, successful agents must be capable of analyzing their opponents and developing appropriate policies to get the upper hand. +The Lux AI Challenge is a competition where competitors design agents to tackle a multi-variable optimization, resource gathering, and allocation problem in a 1v1 scenario against other competitors. In addition to optimization, successful agents must be capable of analyzing their opponents and developing appropriate policies to get the upper hand. The goal of the NeurIPS 2023 edition of the competition is to focus on scaling up solutions to maps and game settings larger than the previous competition. Key features this season! - GPU/TPU optimized environment via Jax - Asymmetric maps and novel mechanics (action efficiency and planning) -- $55,000 Prize Pool +- High quality dataset of past episodes of game play from hundreds of human-written agents including the strongest humans have been able to come up with thus far. -Go to our [Getting Started](#getting-started) section to get started programming a bot. The official competition runs until April 24th and submissions are due at 11:59PM UTC on the competition page: https://www.kaggle.com/competitions/lux-ai-season-2. There is a **$55,000** prize pool this year thanks to contributions from Kaggle, and our sponsors [QuantCo](https://quantco.com/), [Regression Games](https://www.regression.gg/), and [TSVC](https://tsvcap.com) +Go to our [Getting Started](#getting-started) section to get started programming a bot. The official NeurIPS 2023 competition runs until November 17th and submissions are due at 11:59PM UTC on the competition page: https://www.kaggle.com/competitions/lux-ai-season-2-neurips-stage-2. Make sure to join our community discord at https://discord.gg/aWJt3UAcgn to chat, strategize, and learn with other competitors! We will be posting announcements on the Kaggle Forums and on the discord. -Season 2 specifications can be found here: https://lux-ai.org/specs-s2. These detail how the game works and what rules your agent must abide by. +Environment specifications can be found here: https://lux-ai.org/specs-s2. These detail how the game works and what rules your agent must abide by. Interested in Season 1? Check out [last year's repository](https://github.com/Lux-AI-Challenge/Lux-Design-2021) where we received 22,000+ submissions from 1,100+ teams around the world ranging from scripted agents to Deep Reinforcement Learning. -If you use the Lux AI Season 2 environment in your work, please cite this repository as so + +If you use the Lux AI Season 2 competition/environment in your work, please cite as so ``` -@software{Lux_AI_Challenge_S1, - author = {Tao, Stone and Doerschuk-Tiberi, Bovard}, - doi = {https://doi.org/10.5281/zenodo.7988163}, - month = {10}, - title = {{Lux AI Challenge Season 2}}, - url = {https://github.com/Lux-AI-Challenge/Lux-Design-S2}, - version = {1.0.0}, - year = {2023} +@inproceedings{luxais2_neurips_23, + title = {Lux AI Challenge Season 2, NeurIPS Edition}, + author = {Stone Tao and Qimai Li and Yuhao Jiang and Jiaxin Chen and Xiaolong Zhu and Bovard Doerschuk-Tiberi and Isabelle Pan and Addison Howard}, + booktitle = {Thirty-seventh Conference on Neural Information Processing Systems: Competition Track}, + url = {https://github.com/Lux-AI-Challenge/Lux-Design-S2}, + year = {2023} } ``` @@ -52,6 +51,9 @@ pip install --upgrade luxai-s2 ``` +This will install the latest version of the Lux AI Season 2 environment. In particular, the latest versions default game configurations are for the NeurIPS 2023 competition. For those looking for the [competition prior to NeurIPS 2023](https://www.kaggle.com/c/lux-ai-season-2/) (smaller mapsizes and scale), see this [commit](https://github.com/Lux-AI-Challenge/Lux-Design-S2/tree/a96161ad51aaf6ae430b12c14bf81c37ff09dbd7) for code or do `pip install luxai_s2==2.2.0`. + + To verify your installation, you can run the CLI tool by replacing `path/to/bot/main.py` with a path to a bot (e.g. the starter kit in `kits/python/main.py`) and run ``` diff --git a/kits/README.md b/kits/README.md index c0c70e90..df14c395 100644 --- a/kits/README.md +++ b/kits/README.md @@ -89,12 +89,12 @@ The general observation given to your bot in the kits will look like below. `Arr } }, "board": { - "rubble": Array(48, 48), - "ice": Array(48, 48), - "ore": Array(48, 48), - "lichen": Array(48, 48), - "lichen_strains": Array(48, 48), - "valid_spawns_mask": Array(48, 48), + "rubble": Array(64, 64), + "ice": Array(64, 64), + "ore": Array(64, 64), + "lichen": Array(64, 64), + "lichen_strains": Array(64, 64), + "valid_spawns_mask": Array(64, 64), "factories_per_team": int }, "teams": { diff --git a/kits/python/lux/config.py b/kits/python/lux/config.py index 1ea9ef1b..08d540c1 100644 --- a/kits/python/lux/config.py +++ b/kits/python/lux/config.py @@ -36,7 +36,7 @@ class EnvConfig: ### Variable parameters that don't affect game logic much ### max_episode_length: int = 1000 - map_size: int = 48 + map_size: int = 64 verbose: int = 1 # this can be disabled to improve env FPS but assume your actions are well formatted @@ -46,8 +46,8 @@ class EnvConfig: ### Constants ### # you can only ever transfer in/out 1000 as this is the max cargo space. max_transfer_amount: int = 10000 - MIN_FACTORIES: int = 2 - MAX_FACTORIES: int = 5 + MIN_FACTORIES: int = 4 + MAX_FACTORIES: int = 10 CYCLE_LENGTH: int = 50 DAY_LENGTH: int = 30 UNIT_ACTION_QUEUE_SIZE: int = 20 # when set to 1, then no action queue is used diff --git a/kits/rl/sb3/lux/config.py b/kits/rl/sb3/lux/config.py index 1ea9ef1b..08d540c1 100644 --- a/kits/rl/sb3/lux/config.py +++ b/kits/rl/sb3/lux/config.py @@ -36,7 +36,7 @@ class EnvConfig: ### Variable parameters that don't affect game logic much ### max_episode_length: int = 1000 - map_size: int = 48 + map_size: int = 64 verbose: int = 1 # this can be disabled to improve env FPS but assume your actions are well formatted @@ -46,8 +46,8 @@ class EnvConfig: ### Constants ### # you can only ever transfer in/out 1000 as this is the max cargo space. max_transfer_amount: int = 10000 - MIN_FACTORIES: int = 2 - MAX_FACTORIES: int = 5 + MIN_FACTORIES: int = 4 + MAX_FACTORIES: int = 10 CYCLE_LENGTH: int = 50 DAY_LENGTH: int = 30 UNIT_ACTION_QUEUE_SIZE: int = 20 # when set to 1, then no action queue is used diff --git a/kits/sample_env_cfg.json b/kits/sample_env_cfg.json index 35d4803f..b117e11b 100644 --- a/kits/sample_env_cfg.json +++ b/kits/sample_env_cfg.json @@ -1,11 +1,11 @@ { "max_episode_length": 1000, - "map_size": 48, + "map_size": 64, "verbose": 1, "validate_action_space": true, "max_transfer_amount": 3000, - "MIN_FACTORIES": 2, - "MAX_FACTORIES": 5, + "MIN_FACTORIES": 4, + "MAX_FACTORIES": 10, "CYCLE_LENGTH": 50, "DAY_LENGTH": 30, "UNIT_ACTION_QUEUE_SIZE": 20, diff --git a/luxai_s2/luxai_s2/config.py b/luxai_s2/luxai_s2/config.py index a9e346fe..8ded000c 100644 --- a/luxai_s2/luxai_s2/config.py +++ b/luxai_s2/luxai_s2/config.py @@ -36,7 +36,7 @@ class EnvConfig: ### Variable parameters that don't affect game logic much ### max_episode_length: int = 1000 - map_size: int = 48 + map_size: int = 64 verbose: int = 1 # this can be disabled to improve env FPS but assume your actions are well formatted @@ -46,8 +46,8 @@ class EnvConfig: ### Constants ### # you can only ever transfer in/out 3000 as this is the max cargo/power space. max_transfer_amount: int = 3000 - MIN_FACTORIES: int = 2 - MAX_FACTORIES: int = 5 + MIN_FACTORIES: int = 4 + MAX_FACTORIES: int = 10 CYCLE_LENGTH: int = 50 DAY_LENGTH: int = 30 UNIT_ACTION_QUEUE_SIZE: int = 20 # when set to 1, then no action queue is used diff --git a/luxai_s2/luxai_s2/version.py b/luxai_s2/luxai_s2/version.py index 1f8197ce..e845d641 100644 --- a/luxai_s2/luxai_s2/version.py +++ b/luxai_s2/luxai_s2/version.py @@ -1 +1 @@ -__version__ = "2.2.0" \ No newline at end of file +__version__ = "3.0.0" \ No newline at end of file