Asteroids game simulation environment for ML and AI applications
Project description
# Kessler
## Getting started
Kessler is a simulation environment loosely modeled after our internal project PsiBee and the external project [Fuzzy Asteroids](https://github.com/xfuzzycomp/FuzzyAsteroids). The game features ships that can shoot bullets, or drop mines to destroy asteroids and gain score. Ships can also be destroyed by colliding with asteroids or getting caught in mine explosions, causing them to lose lives. When a ship runs out of lives, the game ends. In multi-ship scenarios, they can’t shoot one another, but they can drop mines or crash into the other ship to take each other’s lives.
This game is used for the [Explainable Fuzzy Competition](https://xfuzzycomp.github.io/XFC/)
Kessler can be used as a local Python package by copying the src/kessler_game directory into your project, or installed as a Python extension via pip. It is available on PyPI and can be installed with: ` pip install KesslerGame `
Both pure Python wheels (e.g. KesslerGame-1.2.3-py3-none-any.whl) and compiled wheels built with [mypyc](https://mypyc.readthedocs.io/en/latest/) (e.g. KesslerGame-1.2.3-cp310-cp310-win_amd64.whl) are provided on [PyPI](https://pypi.org/project/KesslerGame/#files) and on the [GitHub releases page](https://github.com/ThalesGroup/kessler-game/releases).
pip install will automatically select the compiled version if it is compatible with your system. You can also install a wheel manually by downloading the wheel file and running: ` pip install <path to wheel file> `
The compiled version can be 4X+ faster than the pure Python version and can simulate the game at 1000X+ real-time speed. It is especially recommended for performance-sensitive use cases, such as reinforcement learning. All releases (on PyPI and GitHub) now include:
Pure Python wheels
Compiled wheels (for supported platforms)
Source distributions
If you prefer, you can compile your own .whl file using:
` python setup_mypyc.py bdist_wheel `
This requires a compatible Python version, mypyc, and a compatible C compiler (e.g., MSVC on Windows). If successful, the generated wheel will be located in the dist/ directory.
Kessler has two primary graphics modules. The first uses Python’s Tkinter UI library to display the game. The second utilizes a separate executable process called kessler_graphics made in Unreal Engine 5. Data is sent to the kessler_graphics instance using UDP protocol on a local machine.
## Using the UE5 graphics engine Under kessler_graphics is an Unreal Engine 5 project for receiving simulation data from the Kessler Python process and displaying it in a 3d environment. To contribute to the UE5 project, you will need to do the following. - Install Visual Studio 2019 v16.11.5 or later with “Game Development with C++” selected on install - Install the .NET Core 3.1 Runtime from [here](https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-3.1.30-windows-x64-installer?cid=getdotnetcore) - Install Unreal Engine 5.0.x from the [Epic Games Launcher](https://store.epicgames.com/en-US/download) - Grab the latest release of the UDP-Unreal plugin from [here](https://github.com/getnamo/UDP-Unreal/releases) - Follow installation instructions for UDP-Unreal from its included README - Right click kessler_graphics.uproject under the kessler_graphics directory and select “Generate Visual Studio Project Files” from the context menu - Launch the project by double-clicking on kessler_graphics.uproject, and select “Yes” if prompted to rebuild engine modules NOTE: UE5 graphics currently do not support the display of mines, and it also has other bugs. It is not currently recommended to be used.
## Documentation
See docs/ for a guide to the game’s API, and how to instantiate, configure, and run Kessler!
## Contributing
If you are interested in contributing to the Kessler project, start by reading the [Contributing guide](/CONTRIBUTING.md).
## License
Kessler is licensed under the Apache 2.0 license. Please read [LICENSE](LICENSE) for more information.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kesslergame-2.4.0.tar.gz.
File metadata
- Download URL: kesslergame-2.4.0.tar.gz
- Upload date:
- Size: 64.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0cbca6e00bbe82b3cc5998bee106cb9175df567fa38063cb6c21bf98d337b1c
|
|
| MD5 |
4440814e9d9d6e662ef17661ed10fd71
|
|
| BLAKE2b-256 |
7d6b1e32c3a78669220f4402f6ea2c74eb0ac512ce2c13a80a200cad735c795e
|
File details
Details for the file kesslergame-2.4.0-py3-none-any.whl.
File metadata
- Download URL: kesslergame-2.4.0-py3-none-any.whl
- Upload date:
- Size: 73.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62730c9c671fa47d05fe5636cb23fd90249931f2cd2483f565977516d92e37fb
|
|
| MD5 |
21d37e88a9d4c68ebfd572cb5480b8fb
|
|
| BLAKE2b-256 |
58403b7c3ffe1f8f16e9b323b8c6420facd54d4c80b0bceafdf9464fd6496dfd
|
File details
Details for the file kesslergame-2.4.0-cp314-cp314t-win_amd64.whl.
File metadata
- Download URL: kesslergame-2.4.0-cp314-cp314t-win_amd64.whl
- Upload date:
- Size: 491.6 kB
- Tags: CPython 3.14t, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5fa4b818d786a14b4fffeb12a4d44dd8abfb32f6d0f883ab4197eef974f9d46c
|
|
| MD5 |
ac86270b6a7388fde76976f659e87269
|
|
| BLAKE2b-256 |
a0cc5372fb8753a7c480e2b4fcb25a23148aa2dae0281e55700f287fcbb20336
|
File details
Details for the file kesslergame-2.4.0-cp314-cp314t-win32.whl.
File metadata
- Download URL: kesslergame-2.4.0-cp314-cp314t-win32.whl
- Upload date:
- Size: 432.3 kB
- Tags: CPython 3.14t, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9f7218f4d91ff45b0a977ee2e5dbf549c6c888f682b44670e5bdc4dbed3eb2b3
|
|
| MD5 |
acf0041f8a42e8d3c2c1fce3a5e2b78a
|
|
| BLAKE2b-256 |
8d39a934e9e0769e8eebf784bef4a65b159934bb08f05b79cb6924b18011b279
|
File details
Details for the file kesslergame-2.4.0-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: kesslergame-2.4.0-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 456.6 kB
- Tags: CPython 3.14, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
639344276f4cfc5fe15cf2e98a3910720e718b82ec14bb5ff298d645817a810c
|
|
| MD5 |
a3c61db140764a74ec40f83aae373eb3
|
|
| BLAKE2b-256 |
55679253caa0f8470690b94a71a4c748d8876623f0ead0aae827e0a7a09fb9e2
|
File details
Details for the file kesslergame-2.4.0-cp314-cp314-win32.whl.
File metadata
- Download URL: kesslergame-2.4.0-cp314-cp314-win32.whl
- Upload date:
- Size: 404.5 kB
- Tags: CPython 3.14, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d1e38475cd46feb0c2622845e502d2e309a38c9217456ba0ae32f6f9894a5b44
|
|
| MD5 |
4641ccba53cddc430410b2480332d63e
|
|
| BLAKE2b-256 |
e0fd93fd32c7e4feab0cec889ebd2f02752aada37df647ab4c7647c3430cf2b9
|
File details
Details for the file kesslergame-2.4.0-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: kesslergame-2.4.0-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 448.7 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
590bdb82cac54015c66e1807a8019b9792e479c8e6f89afd05a5a9317021ab4c
|
|
| MD5 |
e09d3ccb512f09a06517161993f457a3
|
|
| BLAKE2b-256 |
18f472d4bc101915f696c0b3f144f626e27ac45ac7b1237d056845272e3f95dc
|
File details
Details for the file kesslergame-2.4.0-cp313-cp313-win32.whl.
File metadata
- Download URL: kesslergame-2.4.0-cp313-cp313-win32.whl
- Upload date:
- Size: 399.3 kB
- Tags: CPython 3.13, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b75358a87c7d1e442d0a1396003a26d268d1708c0c2a86f02cb6f2987aedb9ae
|
|
| MD5 |
b0b78744849c5b825d93161f348fe88f
|
|
| BLAKE2b-256 |
6caf46e0b07c69967227dba52df3c96a284b4386d8e7a51208059eea5439dd2b
|
File details
Details for the file kesslergame-2.4.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: kesslergame-2.4.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 448.4 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
088be144cb159c1afcb04be93aeb87105e8d9beea6c3810ff381513b20940d21
|
|
| MD5 |
0d24296444c62ff8e3dede7987d1d50e
|
|
| BLAKE2b-256 |
c544c7c3b42f8ada9a028087519fa8142e589db1eab69fdfc7fb38cf96864210
|
File details
Details for the file kesslergame-2.4.0-cp312-cp312-win32.whl.
File metadata
- Download URL: kesslergame-2.4.0-cp312-cp312-win32.whl
- Upload date:
- Size: 399.6 kB
- Tags: CPython 3.12, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
159c003195cced92b6565705fc4aa116bc03c697f6556a3087a694e309c2b368
|
|
| MD5 |
a21a67c425c0fb7334925a846b2ff315
|
|
| BLAKE2b-256 |
bcd6efab783ed2474f7edba8c65d79479eb801785f7ff82b4d65f0b94b3597ba
|
File details
Details for the file kesslergame-2.4.0-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: kesslergame-2.4.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 444.7 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
845f7009c1c098a349504e37dde45ba184eadef9fa2233292022688c6705cf40
|
|
| MD5 |
258f9531f81cdb7bee37a0f3318149b9
|
|
| BLAKE2b-256 |
955e72133d4622951ff0de427b886ebde07fcc868b9e62b63e92bdd141b78877
|
File details
Details for the file kesslergame-2.4.0-cp311-cp311-win32.whl.
File metadata
- Download URL: kesslergame-2.4.0-cp311-cp311-win32.whl
- Upload date:
- Size: 395.5 kB
- Tags: CPython 3.11, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ce936dfccd48c1e03c2ac493bf22a374c0ac66f338e833a3674fbc0a6f81c4ad
|
|
| MD5 |
51ca77343e9023b822efe9e2806935b0
|
|
| BLAKE2b-256 |
348a3d7f73b4d24bfcd33d36bf68ba6672e1b48a93afe330b4320fce84a99f37
|
File details
Details for the file kesslergame-2.4.0-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: kesslergame-2.4.0-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 445.1 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
192ba25f853954228138475f564ad31b9e756cfe6016eb80cb790e59e51b3805
|
|
| MD5 |
7e19e2ff4a9c88d20af38b45fe24a1c4
|
|
| BLAKE2b-256 |
9a292f0e0113dff391c0da1a3f55fc4d83cd25c04facac535a3e2410eb9522fc
|
File details
Details for the file kesslergame-2.4.0-cp310-cp310-win32.whl.
File metadata
- Download URL: kesslergame-2.4.0-cp310-cp310-win32.whl
- Upload date:
- Size: 396.0 kB
- Tags: CPython 3.10, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
35e7a56a1981e46f0bf636ec07ae91e7b0d1d12228372276a72e93591a5f2ec6
|
|
| MD5 |
0fabd8c7d96269cefdc234bf121bcf92
|
|
| BLAKE2b-256 |
5dde0dd1ecc69a5269cd653853063cedb110fa50672f5158f790e0df2483bc9a
|