Skip to main content

Survivor Simulation Game

Project description

AEGIS

AEGIS is a survivor simulation game. This repo contains:

  • Server/engine (Python package) that runs simulations and exposes a WebSocket for the client
  • Client (Electron, React, TypeScript, Tailwind CSS) for visualizing and controlling simulations
  • Documentation site (Next.js/MDX)

Repo Layout

  • src/_aegis and src/aegis: Python engine, CLI entrypoint, public API
  • client: Electron desktop client (builds for macOS, Windows, Linux)
  • docs: Documentation website and content
  • schema: Shared Protocol Buffer/TypeScript types
  • worlds: Sample worlds for running simulations
  • agents: Example/reference agents (e.g., agent_path, agent_mas, agent_prediction)
  • config/config.yaml: Runtime configuration for the engine

Prerequisites

  • Python 3.12+
  • Node.js 20+
  • uv (for Python env/build) — pip install uv or see https://docs.astral.sh/uv/

Package name (PyPI)

The Python package is published as aegis-game. Once released, you can install it with:

pip install aegis-game

The CLI entrypoint is aegis (e.g., aegis launch).

Download for usage in assignments or competitions

  1. Create a python project and install the aegis-game package (Any method works, will demo with uv)
# Initialize project
uv init --package my-new-project
cd my-new-project

# Add the aegis-game package as a dependency
uv add aegis-game
  1. Activate the virtual environment

On macOS/Linux:

source .venv/bin/activate

On Windows (PowerShell):

.\.venv\Scripts\Activate.ps1
  1. Create scaffold
aegis init

This creates all necessary files/folders in your project that an aegis simulation needs to run

  1. Configure features

Edit config/config.yaml to enable/disable features (e.g., messages, dynamic spawning, abilities). If you change features, regenerate stubs so the API your agent recongizes matches the config:

aegis forge
  1. Launch a game (through the console)
# One agent
aegis launch --world ExampleWorld --agent agent_path

# Five agents with max rounds of 500 (requires config of ALLOW_CUSTOM_AGENT_COUNT=true)
aegis launch --world ExampleWorld --agent agent_path --amount 5 --rounds 500

Run aegis launch -h to see all ways you can run an aegis simulation

Notes:

  • World names are the file names under worlds/ without the .world extension. For example, worlds/ExampleWorld.world -> --world ExampleWorld.
  • Agent names are folder names under agents/. For example, agents/agent_path -> --agent agent_path.
  1. Use the client UI

TODO

Download for Development

Before you start, please read our Contributing Guidelines to understand the full contribution process, coding standards, and PR requirements.

  1. Clone the repository and set up the Python environment
git clone https://github.com/AEGIS-GAME/aegis.git
cd aegis
uv sync --group dev
  1. Activate the virtual environment

On macOS/Linux:

source .venv/bin/activate

On Windows (PowerShell):

.\.venv\Scripts\Activate.ps1
  1. Run locally
aegis launch --world ExampleWorld --agent agent_path

Client

For instructions on local development and setup of the client application, please see the client README

Documentation

The documentation can be found here.

Troubleshooting

  • Windows PowerShell execution policy may block script activation; if needed, run PowerShell as Administrator and execute:
    • Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
  • Ensure Node.js 20+ and Python 3.12+ are on your PATH
  • If the client cannot connect, verify the server was started with --client and that no firewall is blocking the port

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

aegis_game-2.6.0.tar.gz (3.5 MB view details)

Uploaded Source

Built Distribution

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

aegis_game-2.6.0-py3-none-any.whl (1.6 MB view details)

Uploaded Python 3

File details

Details for the file aegis_game-2.6.0.tar.gz.

File metadata

  • Download URL: aegis_game-2.6.0.tar.gz
  • Upload date:
  • Size: 3.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for aegis_game-2.6.0.tar.gz
Algorithm Hash digest
SHA256 eeb66366d52f79b2c1a2f3c5d8abc8548b2f01664cb1e4266d2813bc24f91606
MD5 65ba5e93354329a4c090ad75dab6000d
BLAKE2b-256 66e74439018846ce604b3463771837c9dea75adf982deb686b5071543f8ed77f

See more details on using hashes here.

Provenance

The following attestation bundles were made for aegis_game-2.6.0.tar.gz:

Publisher: aegis-ci.yml on AEGIS-GAME/aegis

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file aegis_game-2.6.0-py3-none-any.whl.

File metadata

  • Download URL: aegis_game-2.6.0-py3-none-any.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for aegis_game-2.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e98b5e6c1308e36879c95c6591adf870f66651b8d1d90e4b4f248ce834876036
MD5 a9b01f78ca1c3d76af8eefe406d01246
BLAKE2b-256 c851dff060cae327cf78d1953fc918063d8e9cc022442163dcf4e1e0d0da9f7a

See more details on using hashes here.

Provenance

The following attestation bundles were made for aegis_game-2.6.0-py3-none-any.whl:

Publisher: aegis-ci.yml on AEGIS-GAME/aegis

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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