Skip to content

cas1m1r/Arcadia

Repository files navigation

Arcadia

Arcadia is a peer-to-peer game distribution platform.
It lets developers package their games into encrypted torrents and lets players download, verify, and launch them with full ownership.

Unlike existing storefronts, Arcadia is decentralized:

  • No revenue cut — developers keep 100% of sales.
  • No central servers — games are seeded via BitTorrent.
  • No gatekeeping — anyone can publish and anyone can play.

How it works

  1. Developer signs & encrypts

    • Build your game into an .arcpack.
    • Arcadia generates a developer signature (Ed25519) and per-player license (RSA).
    • Output: .arcmanifest, .license.json, .torrent.
  2. Game is seeded

    • The encrypted pack is seeded over BitTorrent.
    • Manifests and licenses can be shared over HTTP or any file channel.
  3. Player installs & verifies

    • Player runs arcadia get with the manifest.
    • The torrent downloads the encrypted pack.
    • The manifest + license are cryptographically verified.
  4. Player launches

    • Arcadia decrypts the pack into a temporary .run/ folder.
    • The executable is auto-discovered and launched.
    • Decrypted files are removed afterward (unless --keep-decrypted is set).

Usage

Developer workflow (Windows)

REM Run from project root
test_windows.bat

This will:

  • Generate dev and player keys (if not already present).
  • Pack and encrypt the game from example/game42/.
  • Write output to seeds/:
    • game42-1.0.0.arcmanifest
    • game42-1.0.0.license.json
    • game42-1.0.0.torrent
  • Start seeding the torrent and serving the files over HTTP.

Player workflow (Linux)

./test_linux_client.sh   http://<DEV-IP>:8080/game42-1.0.0.arcmanifest   http://<DEV-IP>:8080/game42-1.0.0.license.json   ~/.arcadia/keys/player_rsa_priv.pem

This will:

  • Fetch the manifest and license.
  • Verify the developer’s signature.
  • Download the encrypted game via BitTorrent.
  • Install it into ~/.arcadia/games/game42-1.0.0/.
  • Decrypt and launch it.

Current status

Arcadia is in Phase 2 of development:

  • ✅ Encrypted packs (AES-256-GCM)
  • ✅ Developer signing (Ed25519)
  • ✅ Per-player licenses (RSA)
  • ✅ Cross-platform testing (Windows → Linux)
  • ⚒️ Work in progress: SQLite library, reproducible builds, structured logging
  • SQLite library migration
  • Deterministic packaging & reproducible torrents
  • Structured logs + doctor++ diagnostics
  • Robust networking fallbacks (DHT, NAT)

Requirements

  • Python 3.9+
  • libtorrent (Python bindings)
  • cryptography (installed from requirements.txt)

About

The scaffolding for a system of P2P sale of digital products.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors