Aetheris is an addictive, incremental multiplayer hacking game built for the Gamedev.js Jam 2026 (Ethereum Challenge). Players act as elite operatives attacking a central Mainframe while generating cryptocurrency, buying upgrades, upgrading their botnets, and trading their hard-earned data on the dynamic market.
The project is a turborepo monorepo encompassing both a modern frontend and a serverless backend.
packages/web(Frontend):- React + TypeScript + Vite.
- Game Engine: Phaser 3 for the core hacking interface (canvas-based).
- Styling: Tailwind CSS.
- Wallet & Crypto: wagmi and viem.
- Auth: Native WebAuthn (Passkeys) for secure, password-free accounts.
packages/backend(Backend):- Serverless API on Cloudflare Workers.
- Framework: Hono.
- Database: Cloudflare D1 (Serverless SQLite).
- State/Sessions: Cloudflare KV.
packages/contracts(Blockchain):- Hardhat workspace for smart contract compilation and potential deploy.
- The Forge (Hacking): Click to drain the Mainframe's HP. Instantly synced visuals via Phaser with backend boss regeneration (push-and-pull mechanic).
- Upgrades Lab: Invest in Neural Amplifiers, Auto-Miner Bots (idle progression), and Quantum Decryptors to exponentially increase your hash rate.
- Passkey Authentication: Cryptographically secure, frictionless sign-in using device biometrics or PINs. Fully bypasses the need to manage wallet private keys for casual players.
- Dynamic Crypto Market: Trade 3 distinct currencies (HASH, DATA, CRED) in real-time. Driven by an authentic SQLite order-matching engine and rendered with custom HTML5 Candlestick charts.
- Multiplayer Leaderboards & Live Feed: Track the top hackers globally and see live events (boss damage, achievements) on the scrolling news ticker.
- Bun (v1.1+)
- Node.js (v20+)
- Wrangler CLI (
npm install -g wrangler)
bun installThe backend mimics a Cloudflare edge environment locally.
cd packages/backend
bun run devIn a separate terminal, launch the Vite dev server.
cd packages/web
bun run devOpen http://localhost:5173 to play.
The codebase is strictly typed and linted.
- Fix all issues:
bun run fix - Check types:
bun run typecheck - Production Builder:
bun run build:packages
MIT