A real-time multiplayer 2.5D JRPG built with modern web technologies, Rust backend, and blockchain integration for NFT assets. Features server-authoritative game design with client-side rendering and Web3 integration.
- Genre: 2.5D JRPG with real-time multiplayer and roguelite elements
- Art Style: Pixel art with 2.5D rendering and isometric maps
- Platform: Web browsers (desktop and mobile), Tauri desktop app (planned)
- Architecture: Server-authoritative client-server with WebSocket communication
- Backend: Rust with Game Entity System (GES) and ECS architecture
- Frontend: React with Canvas API, WebGL rendering (planned)
- Blockchain: Substrate (Ink!) and EVM-compatible chains for NFT assets
game/
โโโ docs/ # Project documentation
โ โโโ 001-initial-project-specification.md
โ โโโ 002-blockchain-entity-system-architecture.md
โ โโโ 003-game-design-document.md
โ โโโ 004-task-registry.md
โ โโโ 005-data-structures-and-architecture.md
โ โโโ 006-quick-reference-card.md
โโโ packages/ # Monorepo packages
โ โโโ client/ # React frontend application
โ โโโ server/ # Rust backend with GES
โ โโโ shared-types/ # TypeScript type definitions
โ โโโ shared-logic/ # Rust game logic modules
โ โโโ assets/ # Game assets and resources
โโโ tools/ # Development tools and scripts
โโโ Makefile # Build and development commands
โโโ package.json # Root package.json for pnpm monorepo
โโโ Cargo.toml # Root Cargo.toml for Rust workspace
โโโ README.md
- Node.js: 18.0.0 or higher
- pnpm: 8.0.0 or higher (we use pnpm instead of npm)
- Rust: Latest stable version
- Git: For version control
-
Clone the repository
git clone https://github.com/yourusername/game-2.5d-jrpg.git cd game-2.5d-jrpg -
Install pnpm dependencies
pnpm install
-
Build shared packages
make build-shared
-
Build and run development stack
make dev
- Build all packages:
make build - Build client only:
make build-client - Build server only:
make build-server - Start development:
make dev(runs both client and server) - Check status:
make status - Clean builds:
make clean
Blockchain Layer (Web3)
โโโ NFT Assets (Ink!/Solidity)
โโโ IPFS Content Storage
โโโ Account Abstraction
โ
Server Layer (Rust)
โโโ Game Entity System (GES)
โโโ AI Movement & Behavior
โโโ Item Spawning & Management
โโโ Combat & Interaction Systems
โโโ Blockchain Interface
โ
Client Layer (React)
โโโ Derived Game State
โโโ Canvas Rendering (2.5D)
โโโ Fog of War System
โโโ Input Handling
โโโ WebSocket Sync
- Server: Maintains authoritative game state and validates all actions
- Client: Derives local state from server via WebSocket synchronization
- Consistency: All clients see identical game world
- Anti-Cheat: Server validates critical actions before applying
- Web3 Integration: Server manages NFT asset state and blockchain interactions
- ECS Layer: Generic entity management with components
- Game Logic Layer: Game-specific behavior and state
- UI Layer: React components and Canvas rendering
- Sync Layer: WebSocket communication with server
- Initial Project Specification: Project overview and technical architecture
- Blockchain Architecture: Web3 integration and NFT asset system
- Game Design Document: Game mechanics, features, and design vision
- Task Registry: Development tasks and progress tracking
- Data Structures & Architecture: Single source of truth for system design
- Quick Reference Card: Common patterns and pitfalls to avoid
- Monorepo Structure: pnpm workspaces + Cargo workspace
- Type System: Shared TypeScript types and Rust modules
- Client Foundation: React app with Canvas rendering
- Game Loop: 60 FPS game loop with input handling
- Camera System: Zoom, pan, and player following
- Fog of War: Dual-radius visibility and exploration system
- AI Movement: Autonomous NPC movement with patrol patterns
- Item Spawning: Dynamic consumables and collectibles
- Stamina System: Movement costs and regeneration
- Server Integration: WebSocket communication setup
- State Synchronization: Client-server state sync
- Blockchain Interface: NFT asset integration
- Multiplayer Foundation: Player synchronization
- Combat System: Turn-based and real-time combat
- Quest System: Roguelite quest generation
- Tauri Desktop App: Native desktop wrapper
- Docker Containerization: Full stack deployment
- Framework: React 18 with TypeScript
- Graphics: Canvas API (2.5D rendering), WebGL (planned)
- State Management: Client-side derived state with server sync
- Real-time: WebSocket communication
- Build Tool: Vite with pnpm
- Language: Rust with latest stable
- Architecture: Game Entity System (GES) with ECS patterns
- Networking: WebSocket server with real-time updates
- Game Systems: AI, combat, item management, blockchain interface
- Substrate: Ink! smart contracts for NFT assets
- EVM: Solidity contracts for cross-chain compatibility
- IPFS: Decentralized content storage
- Account Abstraction: Simplified Web3 user experience
- Monorepo: pnpm workspaces + Cargo workspace
- Git Workflow: Conventional commits with commitlint
- Build System: Makefile with parallel execution
- Code Quality: TypeScript strict mode, Rust clippy
- Follow the conventional commit format (enforced by commitlint)
- Update documentation for any changes
- Ensure all tests pass
- Follow the DRY principle and layered architecture
- Maintain proper separation of concerns
- Use the quick reference card for common patterns
type(scope): description
feat: add new feature
fix: bug fix
docs: documentation changes
style: formatting changes
refactor: code refactoring
test: adding tests
chore: maintenance tasks
- Single Source of Truth: Server maintains authoritative state
- Layered Separation: ECS โ Game Logic โ UI layers
- Reference-Based Relationships: Game objects reference ECS entities
- Component Composition: Entities composed of multiple components
- Entity Creation: Always create both Entity + Game Object
- State Updates: Use update functions, never direct modification
- Collection Management: Keep all related collections in sync
- Server Sync: Client state derived from server, not self-initialized
- Monorepo setup and package structure
- Type system and shared modules
- Client foundation and game loop
- Basic rendering and camera system
- Fog of War and exploration
- AI movement and behavior
- Item spawning and management
- Stamina and movement systems
- Server integration and WebSocket sync
- Player synchronization
- Combat and interaction systems
- Blockchain interface implementation
- NFT asset integration
- Tauri desktop app
- Docker containerization
- Performance optimization
- Production deployment
This project is licensed under the MIT License - see the LICENSE file for details.
- Zero Reality Team: Core development and architecture
- JRPG Community: Game design inspiration
- Pixel Art Community: Aesthetic guidance
- Rust & Web3 Communities: Technical expertise
For detailed development information, see the docs folder. For current task status, see Task Registry.