Distributed Systems project that simulates concurrent cave exploration with autonomous drones and rovers.
Cave Game demonstrates multi-agent coordination in a procedurally generated environment. Agents explore a cave map concurrently, share mission-relevant information, and progressively build global situational awareness.
Main building blocks:
- Threaded mission orchestration for multiple agents
- Procedural cave generation
- Vision-based local exploration
- Frontier/path-driven movement behaviors
- Python 3.11+
- Windows, Linux, or macOS
pipavailable in your Python installation
Create and activate a virtual environment (recommended):
python -m venv .venvWindows PowerShell:
.venv\Scripts\Activate.ps1Windows CMD:
.venv\Scripts\activate.batInstall dependencies:
python -m pip install --upgrade pip
python -m pip install pygame numpy opencv-pythonRun the game:
python main.pyIn menus:
Up/Down: move selectionLeft/Right: change selector or slider valuesEnter: confirm / open submenu / start mission- Number keys
0-9: edit seed field Backspace: delete seed digits
Simulation settings available in-game:
- Objective:
ExplorationorSearch and Rescue - Cave size:
Small,Medium,Big - Seed: custom numeric seed or default per cave size
- Drones: from 3 to 8
- Demo Cave:
Yes/No
Persistent settings are stored in:
GameConfig/options.ini: audio volume, music toggle, button sound toggleGameConfig/symSettings.ini: last selected mission parameters
| Feature | Status | Notes |
|---|---|---|
| Terrain roughness map | Implemented | Available in current simulation flow |
| Known map visualization | Implemented | Available in current simulation flow |
| Distributed data sharing (terrain, POI, paths) | In progress | Core sharing exists, integration is ongoing |
| Waypoints for optimal path segmentation | Planned | Not yet implemented |
| Battery management | Planned | Not yet implemented |
| Non-random exploration logic | Planned | Current behavior includes random exploration components |
| Search & Rescue mission logic | Planned | Objective exists in UI; full mission logic is pending |
| Drift modeling | Planned | Not yet implemented |
Additional documentation is available in the docs folder:
docs/DISTRIBUTED_MAPPING.mddocs/IMPLEMENTATION_SUMMARY.mddocs/INTEGRATION_GUIDE.mddocs/MapGenerator.md
- If dependencies fail to install, upgrade
pipfirst and retry. - If
pygameaudio initialization fails, check that your system audio device is available and not locked by another app. - If
cv2import fails, reinstall OpenCV:
python -m pip install --force-reinstall opencv-python- This repository is under active development.
- Some modules contain extension points for future mission logic.