Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kesslergame-2.4.0.tar.gz (64.8 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

kesslergame-2.4.0-py3-none-any.whl (73.4 kB view details)

Uploaded Python 3

kesslergame-2.4.0-cp314-cp314t-win_amd64.whl (491.6 kB view details)

Uploaded CPython 3.14tWindows x86-64

kesslergame-2.4.0-cp314-cp314t-win32.whl (432.3 kB view details)

Uploaded CPython 3.14tWindows x86

kesslergame-2.4.0-cp314-cp314-win_amd64.whl (456.6 kB view details)

Uploaded CPython 3.14Windows x86-64

kesslergame-2.4.0-cp314-cp314-win32.whl (404.5 kB view details)

Uploaded CPython 3.14Windows x86

kesslergame-2.4.0-cp313-cp313-win_amd64.whl (448.7 kB view details)

Uploaded CPython 3.13Windows x86-64

kesslergame-2.4.0-cp313-cp313-win32.whl (399.3 kB view details)

Uploaded CPython 3.13Windows x86

kesslergame-2.4.0-cp312-cp312-win_amd64.whl (448.4 kB view details)

Uploaded CPython 3.12Windows x86-64

kesslergame-2.4.0-cp312-cp312-win32.whl (399.6 kB view details)

Uploaded CPython 3.12Windows x86

kesslergame-2.4.0-cp311-cp311-win_amd64.whl (444.7 kB view details)

Uploaded CPython 3.11Windows x86-64

kesslergame-2.4.0-cp311-cp311-win32.whl (395.5 kB view details)

Uploaded CPython 3.11Windows x86

kesslergame-2.4.0-cp310-cp310-win_amd64.whl (445.1 kB view details)

Uploaded CPython 3.10Windows x86-64

kesslergame-2.4.0-cp310-cp310-win32.whl (396.0 kB view details)

Uploaded CPython 3.10Windows x86

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

Hashes for kesslergame-2.4.0.tar.gz
Algorithm Hash digest
SHA256 f0cbca6e00bbe82b3cc5998bee106cb9175df567fa38063cb6c21bf98d337b1c
MD5 4440814e9d9d6e662ef17661ed10fd71
BLAKE2b-256 7d6b1e32c3a78669220f4402f6ea2c74eb0ac512ce2c13a80a200cad735c795e

See more details on using hashes here.

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

Hashes for kesslergame-2.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 62730c9c671fa47d05fe5636cb23fd90249931f2cd2483f565977516d92e37fb
MD5 21d37e88a9d4c68ebfd572cb5480b8fb
BLAKE2b-256 58403b7c3ffe1f8f16e9b323b8c6420facd54d4c80b0bceafdf9464fd6496dfd

See more details on using hashes here.

File details

Details for the file kesslergame-2.4.0-cp314-cp314t-win_amd64.whl.

File metadata

File hashes

Hashes for kesslergame-2.4.0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 5fa4b818d786a14b4fffeb12a4d44dd8abfb32f6d0f883ab4197eef974f9d46c
MD5 ac86270b6a7388fde76976f659e87269
BLAKE2b-256 a0cc5372fb8753a7c480e2b4fcb25a23148aa2dae0281e55700f287fcbb20336

See more details on using hashes here.

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

Hashes for kesslergame-2.4.0-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 9f7218f4d91ff45b0a977ee2e5dbf549c6c888f682b44670e5bdc4dbed3eb2b3
MD5 acf0041f8a42e8d3c2c1fce3a5e2b78a
BLAKE2b-256 8d39a934e9e0769e8eebf784bef4a65b159934bb08f05b79cb6924b18011b279

See more details on using hashes here.

File details

Details for the file kesslergame-2.4.0-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for kesslergame-2.4.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 639344276f4cfc5fe15cf2e98a3910720e718b82ec14bb5ff298d645817a810c
MD5 a3c61db140764a74ec40f83aae373eb3
BLAKE2b-256 55679253caa0f8470690b94a71a4c748d8876623f0ead0aae827e0a7a09fb9e2

See more details on using hashes here.

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

Hashes for kesslergame-2.4.0-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 d1e38475cd46feb0c2622845e502d2e309a38c9217456ba0ae32f6f9894a5b44
MD5 4641ccba53cddc430410b2480332d63e
BLAKE2b-256 e0fd93fd32c7e4feab0cec889ebd2f02752aada37df647ab4c7647c3430cf2b9

See more details on using hashes here.

File details

Details for the file kesslergame-2.4.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for kesslergame-2.4.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 590bdb82cac54015c66e1807a8019b9792e479c8e6f89afd05a5a9317021ab4c
MD5 e09d3ccb512f09a06517161993f457a3
BLAKE2b-256 18f472d4bc101915f696c0b3f144f626e27ac45ac7b1237d056845272e3f95dc

See more details on using hashes here.

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

Hashes for kesslergame-2.4.0-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 b75358a87c7d1e442d0a1396003a26d268d1708c0c2a86f02cb6f2987aedb9ae
MD5 b0b78744849c5b825d93161f348fe88f
BLAKE2b-256 6caf46e0b07c69967227dba52df3c96a284b4386d8e7a51208059eea5439dd2b

See more details on using hashes here.

File details

Details for the file kesslergame-2.4.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for kesslergame-2.4.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 088be144cb159c1afcb04be93aeb87105e8d9beea6c3810ff381513b20940d21
MD5 0d24296444c62ff8e3dede7987d1d50e
BLAKE2b-256 c544c7c3b42f8ada9a028087519fa8142e589db1eab69fdfc7fb38cf96864210

See more details on using hashes here.

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

Hashes for kesslergame-2.4.0-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 159c003195cced92b6565705fc4aa116bc03c697f6556a3087a694e309c2b368
MD5 a21a67c425c0fb7334925a846b2ff315
BLAKE2b-256 bcd6efab783ed2474f7edba8c65d79479eb801785f7ff82b4d65f0b94b3597ba

See more details on using hashes here.

File details

Details for the file kesslergame-2.4.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for kesslergame-2.4.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 845f7009c1c098a349504e37dde45ba184eadef9fa2233292022688c6705cf40
MD5 258f9531f81cdb7bee37a0f3318149b9
BLAKE2b-256 955e72133d4622951ff0de427b886ebde07fcc868b9e62b63e92bdd141b78877

See more details on using hashes here.

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

Hashes for kesslergame-2.4.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 ce936dfccd48c1e03c2ac493bf22a374c0ac66f338e833a3674fbc0a6f81c4ad
MD5 51ca77343e9023b822efe9e2806935b0
BLAKE2b-256 348a3d7f73b4d24bfcd33d36bf68ba6672e1b48a93afe330b4320fce84a99f37

See more details on using hashes here.

File details

Details for the file kesslergame-2.4.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for kesslergame-2.4.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 192ba25f853954228138475f564ad31b9e756cfe6016eb80cb790e59e51b3805
MD5 7e19e2ff4a9c88d20af38b45fe24a1c4
BLAKE2b-256 9a292f0e0113dff391c0da1a3f55fc4d83cd25c04facac535a3e2410eb9522fc

See more details on using hashes here.

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

Hashes for kesslergame-2.4.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 35e7a56a1981e46f0bf636ec07ae91e7b0d1d12228372276a72e93591a5f2ec6
MD5 0fabd8c7d96269cefdc234bf121bcf92
BLAKE2b-256 5dde0dd1ecc69a5269cd653853063cedb110fa50672f5158f790e0df2483bc9a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page