A 2D infrastructure empire builder. Build and operate telecom networks on a political map, growing from a local ISP to a global telecom empire.
Mix of city builder, tycoon/business sim, and grand strategy. Web-based with offline single-player and async persistent multiplayer.
Live demo: globaltelco.online
Infrastructure Empire
Living World
Business Simulation
Network Operations
Build UX
Multiplayer
| Layer | Technology |
|---|---|
| Simulation | Rust (ECS architecture) → compiles to WASM (browser) + native binary (servers) |
| Frontend | Svelte 5 + deck.gl (2D map) + D3.js (charts) |
| Desktop | Tauri (Rust wrapper, system webview) |
| Server | Rust (Axum) with WebSocket |
| Database | PostgreSQL (Neon) |
| Build | Bun + wasm-pack + cargo-zigbuild |
| Hosting | Oracle Cloud (game server) + Vercel (frontend CDN) + Cloudflare (DNS/proxy) |
# Clone
git clone https://github.com/KodyDennon/GlobalTelco.git
cd GlobalTelco
# Build WASM module
wasm-pack build crates/gt-wasm --target web --out-dir ../../web/src/lib/wasm/pkg
# Install frontend dependencies
cd web && bun install
# Start dev server (hot reload)
bun run dev
Open localhost:5173 — the full game runs in your browser via WASM. No server needed for single-player.
# Rust
cargo build # Debug build
cargo test # Run all tests
cargo build --release # Release build
# WASM
wasm-pack build crates/gt-wasm --target web --out-dir ../../web/src/lib/wasm/pkg
# Frontend
cd web && bun run dev # Dev server
cd web && bun run build # Production build
cd web && bun run check # TypeScript check
# Desktop (Tauri)
cd desktop && cargo tauri dev # Dev mode
cd desktop && cargo tauri build # Production build
# Multiplayer server
cargo run --bin gt-server # Run locally
globaltelco/
├── crates/ # Rust workspace (11 crates)
│ ├── gt-common/ # Shared types, traits, protocol (types/ modular directory)
│ ├── gt-simulation/ # Core ECS engine, 36 systems (world/ modular directory)
│ ├── gt-world/ # World generation, terrain, rivers
│ ├── gt-economy/ # Finance, markets, contracts
│ ├── gt-infrastructure/ # Network graph, routing
│ ├── gt-population/ # Demographics, demand
│ ├── gt-ai/ # AI corporation controllers
│ ├── gt-bridge/ # Shared bridge trait + query functions (WASM & Tauri)
│ ├── gt-wasm/ # WASM bindings (queries, typed arrays, bridge impl)
│ ├── gt-tauri/ # Tauri native bridge (queries, bridge impl)
│ └── gt-server/ # Multiplayer server (routes/, ws/, db/ directories)
├── web/ # Svelte frontend
│ └── src/lib/
│ ├── wasm/ # TypeScript WASM bridge
│ ├── game/ # Game UI (map, HUD, build tools)
│ ├── panels/ # Management panels (dashboard, infra, etc.)
│ └── stores/ # Svelte stores
├── desktop/ # Tauri desktop app
├── deploy/ # Server deployment scripts
├── Docs/ # Design documents
└── screenshots/ # Game screenshots
Single-player: The Rust simulation compiles to WASM and runs entirely in the browser. No server needed.
Multiplayer: Server-authoritative. Clients send commands via WebSocket, the server validates and broadcasts state deltas to all players.
ECS tick order (36 deterministic systems): construction → orbital → satellite_network → maintenance → population → coverage → demand → routing → utilization → spectrum → ftth → manufacturing → launch → terminal_distribution → satellite_revenue → revenue → cost → finance → contract → ai → weather → disaster → debris → servicing → regulation → research → patent → market → auction → covert_ops → lobbying → alliance → legal → grants → achievement → stock_market
See Docs/ for full design specifications.
See CONTRIBUTING.md for guidelines. Contributions are welcome — the project uses a contributor license (see LICENSE Section 4).
Developed by: Claude Opus 4.5 & 4.6, Claude Sonnet 4.5 & 4.6, Gemini Pro 3.0, Gemini Flash
Orchestrated by: Kody Dennon
This project uses a custom Source Available license. You are free to clone, modify, build, run, and self-host for non-commercial purposes. Commercial use requires written permission.
See LICENSE for full terms.