This is the main game application for Eternum, built with React, TypeScript, and Vite.
To run the game locally:
- Make a copy of
.env.local.sampleand rename it to.env.local - Update the following environment variables in
.env.localbased on your target environment:VITE_PUBLIC_TORII="http://127.0.0.1:8080"VITE_PUBLIC_NODE_URL="http://127.0.0.1:5050"
- Run
pnpm run devto start the development server
src/ui/
├── design-system/
│ ├── atoms/ # Basic UI components (button, input, select, tabs, etc.)
│ └── molecules/ # Composite components (tooltips, resource icons, etc.)
├── features/ # Domain-driven feature modules
│ ├── economy/
│ │ ├── banking/ # Liquidity, swaps, bank operations
│ │ ├── resources/ # Resource management, transfers, inventory
│ │ └── trading/ # Market orders, trading history, transfers
│ ├── military/
│ │ ├── battle/ # Combat system, raids, attack containers
│ │ └── components/ # Army management, battle logs, defense
│ ├── world/
│ │ └── components/ # Map entities, hyperstructures, battles
│ ├── settlement/
│ │ ├── components/ # Settlement canvas, minimap, controls
│ │ ├── construction/# Building preview
│ │ └── production/ # Production controls, labor, resources
│ ├── social/
│ │ ├── chat/ # Real-time chat system with Socket.io
│ │ ├── guilds/ # Guild management system
│ │ └── player/ # Player lists and panels
│ ├── progression/
│ │ ├── hints/ # Tutorial/hint system
│ │ ├── onboarding/ # New user onboarding
│ │ └── quests/ # Quest system
│ └── infrastructure/
│ ├── automation/ # Automation tables and transfers
│ └── bridge/ # Blockchain bridge functionality
├── layouts/ # Page layouts (world, onboarding, etc.)
├── modules/ # Feature modules (settings, combat simulation, etc.)
├── shared/ # Cross-feature shared components
│ ├── components/ # Shared UI components
│ └── containers/ # Layout containers
└── utils/ # UI utilities