# Hercules Pyloaded Weltraum-Browsergame, vierte Fassung von Hercules: nach dem Original von Warpman, Hercules Reloaded und Hercules Rereload jetzt als Neubau in Python mit Django und HTMX. Das Konzept (Spielregeln, Architektur, Fahrplan) liegt als Dokument vor: [Hercules Pyloaded – Konzept](https://claude.ai/code/artifact/745bf02e-46d7-4087-9f78-d941c55997f1). ## Voraussetzungen - Python 3.12 oder neuer (entwickelt mit 3.14) - [uv](https://docs.astral.sh/uv/) für Abhängigkeiten und Umgebung - Git - Docker nur für den Betrieb mit PostgreSQL (optional) uv wurde hier per `pip install --user uv` installiert und wird daher als `python -m uv` aufgerufen. Wer den Ordner `%APPDATA%\Python\Python314\Scripts` in den PATH aufnimmt, kann `uv` direkt nutzen. ## Einrichtung ```bash python -m uv sync python -m uv run pre-commit install python -m uv run python manage.py migrate python -m uv run python manage.py createsuperuser python -m uv run python manage.py runserver ``` Danach läuft das Spiel unter http://127.0.0.1:8000/ und der Admin unter http://127.0.0.1:8000/admin/. Ohne weitere Einstellungen wird SQLite im Projektordner verwendet. ## Prüfungen ```bash python -m uv run ruff format python -m uv run ruff check python -m uv run mypy python -m uv run pytest ``` pre-commit führt alle vier vor jedem Commit aus. Der Workflow in `.gitea/workflows/ci.yml` macht dasselbe auf dem Gitea-Server, sobald dort ein Runner für das Repository registriert ist. ## Betrieb mit Docker ```bash cp .env.example .env docker compose up -d --build ``` Startet `web` (Django + gunicorn), `worker` (Ereignis-Queue) und `db` (PostgreSQL 17). ## Projektstruktur ``` src/ config/ Django-Einstellungen und URLs engine/ reine Spielregeln: Formeln, Kampf, Bahnen (ohne Django, voll typisiert) game/ Django-App: Modelle, Services, Views, Templates, Worker data/ Stammdaten (YAML) – maßgebliche Quelle für das Balancing templates/ gemeinsame Templates tests/ pytest ``` ## Lizenz MIT, siehe [LICENSE](LICENSE).