Cowards' Game Simulation
A bachelor’s project with a downloadable Python desktop simulation, Bot Society, for exploring how six bot strategies interact under configurable game rules. I built the simulation myself without AI assistance for the core; AI was used to create the Windows executable.
Overview
A bachelor’s project with a downloadable Python desktop simulation, Bot Society, for exploring how six bot strategies interact under configurable game rules. I built the simulation myself without AI assistance for the core; AI was used to create the Windows executable.
Project Screens
The executable is not code-signed. Python and Qt are bundled; no account or internet connection is required according to the project README.
- Download software.exe and open it on Windows. Initial startup may take a few seconds.
- Choose New game and select between 2 and 5,000 bots across the six strategies.
- Adjust the round limit, starting score, random seed, payoffs, and reproduction rules, then choose Start simulation.
- Use Pause / Resume or Stop & save. Inspect Game details, Export plot, or reopen saved runs from Game history.
Example exported run: population by strategy, crashes per round, offspring, and surviving-bot scores. This run ends with no survivors; outcomes depend on settings and seed.
Problem
Explore how payoff rules, reproduction, and strategy choices affect a population of interacting bots over repeated rounds.
Solution
A PySide6 interface brings simulation settings, live charts, pause/resume controls, and saved game history into one window. Users can configure 2–5,000 bots and repeat runs with the same seed and settings.
Architecture
The documented desktop application separates the interface (app.py), simulation rules (engine.py), plotting (charts.py), local SQLite history (storage.py), and styling (theme.py). The core simulation was built independently without AI; AI assistance was used to create the Windows executable with PyInstaller.
Outcomes
Downloadable Windows desktop application with no separate Python installation required.
Four result charts show population, crashes, offspring, and survivor scores.
Local history preserves settings, round results, final statistics, and plot images.
