Skip to main content

Titan

Titan is a distributed game backend built with Microsoft Orleans and .NET 10 for handling player accounts, inventory management, trading, and seasonal leagues.

Overview

Titan implements a "Global Server" architecture where game state lives in a distributed mesh of virtual actors called Grains. This enables:

  • Horizontal Scalability: Add Orleans silos to handle more players
  • Strong Consistency: Each grain is single-threaded, eliminating race conditions
  • Location Transparency: Grains can live on any silo, Orleans handles routing
  • Real-time Communication: SignalR WebSockets for bidirectional messaging

Key Features

FeatureDescription
Accounts & CharactersGlobal accounts with per-season characters (PoE-style leagues)
Inventory SystemGrid-based bags, equipment slots, stash tabs
Item GenerationARPG-style items with base types, modifiers, and currency orbs
TradingSecure peer-to-peer trades with atomic swaps and real-time updates
SeasonsTemporary leagues with character restrictions (Hardcore, Solo Self-Found)
Rate LimitingRedis-backed API throttling with configurable policies

Architecture at a Glance

Quick Start

# Prerequisites: .NET 10 SDK, Docker

# Clone and run with Aspire
cd src
dotnet run --project Titan.AppHost

The Aspire Dashboard will open, showing all services, logs, and metrics.

Documentation Sections