Web-first multiplayer game platform with a domain-driven monorepo, cross-platform runtime shells, and Solana-integrated workflows.
Built for transparent, high-trust gameplay with modular architecture.
Live app: game.ocentra.ca
Website: ocentra.ca
- What Ocentra Is
- Platform Highlights
- Game Catalog and AI Direction
- Developer Tools
- Architecture Overview
- Repository Map
- Local Development
- Testing and Security Coverage
- Links
- License
Ocentra Games is a full-stack game platform that combines:
- domain-driven architecture via focused
@ocentra/*packages - event-driven runtime composition across app and domains
- Cloudflare backend services for API and coordination
- Solana-integrated paths for blockchain-bound workflows
- AI integration for local and cloud model flows
- web, desktop, and mobile host delivery from one shared runtime
The goal is to keep gameplay, infrastructure, platform delivery, and AI capabilities modular and verifiable as the product surface grows.
- explicit boundaries across app, backend, blockchain, and domains
- shared contract domains to align frontend and backend behavior
- typed interfaces and direct imports instead of hidden wiring
- React runtime with gameplay, lobby, social, and competition flows
- app adapter layer for auth, assets, AI, storage, networking, and Solana
- route and shell gating by platform (
web,desktop,mobile)
- Cloudflare Worker backend in
infra/cloudflare - Durable Objects for stateful coordination
- R2-backed storage paths for platform and match data
- local-first cache and storage behavior in app layers
- Anchor workspace in
Rust/ocentra-games - client integration paths in app/domain layers
- chain-bound logic and tests isolated to dedicated workspace/docs
- provider/model abstractions in
packages/ai-domain - local and cloud provider paths
- in-app and package-level tooling for model/runtime validation
The repo includes a large data-driven game catalog under:
packages/card-games/src/processed-games
Current scope is 1,100+ entries, with expansion toward 1,500+. Catalog and pipeline details:
packages/card-games/README.mdpackages/data-explorer/README.md
Main app explorer route:
/CardGamesExplorer
Local example:
http://localhost:3000/CardGamesExplorer
- AI-only leaderboard paths are handled in Cloudflare logic:
infra/cloudflare/src/logic/leaderboard.ts
- replay and rich verification fixtures exist in:
scripts/solana/verification/examples
- AI vs AI and AI vs human flows share the same platform runtime foundations
AI domain includes speech and TTS-related paths:
packages/ai-domainpackages/ai-domain/docs/OVERVIEW.md
Standalone editor package:
packages/asset-editor/README.mdpackages/asset-editor/docs/RUNTIME-FLOWS.md
In-app dev surface:
src/ui/pages/dev/AIPlayground
Related AI architecture:
packages/ai-domain/docs/OVERVIEW.md
Cross-cutting asset delivery (Worker download-url, main app vs asset editor, dev/prod/Tauri/mobile) is documented in docs/ocentra/asset-handling.md.
flowchart TD
App[src app runtime]
Domains[packages domain modules]
Worker[infra/cloudflare worker]
Solana[Rust/ocentra-games]
Platforms[platform hosts]
App --> Domains
App --> Worker
App --> Solana
Platforms --> App
sequenceDiagram
participant Player as Player
participant UI as src UI
participant Adapter as src adapters
participant Domain as @ocentra domains
participant API as Cloudflare worker
participant Chain as Solana stack
Player->>UI: interact with game flow
UI->>Adapter: trigger app action
Adapter->>Domain: call typed domain API
Domain->>API: call backend endpoint
Domain->>Chain: execute chain-bound path when needed
API-->>Domain: return response
Domain-->>UI: map result to state
UI-->>Player: render updated experience
src/README.mdsrc/ARCHITECTURE.mdsrc/ui/README.mdsrc/ui/ARCHITECTURE.mdsrc/adapters/README.mdsrc/adapters/ARCHITECTURE.md
docs/ocentra/README.md— documentation hub (e.g. asset handling)
packages/asset-domain/README.mdpackages/game-domain/README.mdpackages/game-asset-domain/README.mdpackages/game-ui-types/README.mdpackages/eventing-domain/README.mdpackages/endpoint-domain/README.mdpackages/logging-domain/README.mdpackages/network-domain/README.mdpackages/solana-domain/README.mdpackages/storage-domain/README.mdpackages/crypto-domain/README.mdpackages/verification-domain/README.mdpackages/ai-domain/README.mdpackages/api-domain/README.mdpackages/boundary-domain/README.mdpackages/behaviour-domain/README.mdpackages/contracts-domain/README.mdpackages/credentials-domain/README.mdpackages/auth-domain/README.mdpackages/card-games/README.mdpackages/core-ui/README.mdpackages/data-explorer/README.md
infra/cloudflare/README.mdinfra/cloudflare/docs/ARCHITECTURE.mdinfra/cloudflare/docs/OVERVIEW.mdRust/README.mdRust/ocentra-games/README.mdplatforms/desktop/tauri/README.mdplatforms/mobile/README.md
- Node.js 22+
- npm 11+
- optional for Solana work: Rust + Anchor CLI + Solana toolchain
Read:
docs/SETUP.md
npm install
npm run devCommon commands:
npm run lint
npm run test
npm run buildSolana workspace:
cd Rust/ocentra-games
npm install
anchor build
anchor testPlatform and backend workflows:
platforms/desktop/tauri/README.mdplatforms/mobile/README.mdinfra/cloudflare/README.md
Cloudflare worker has large automated coverage (2,000+ test cases) across:
- API correctness and contract behavior
- auth/session and origin/CORS boundaries
- abuse/rate-limit and concurrency/idempotency paths
- economic and rollback-sensitive flows
- integration/runtime modes (local worker, pool workers, deployed target)
Details and commands:
infra/cloudflare/docs/TEST-README.md
Repository-level quality/security expectations:
.cursor/rules/ocentra-test-rules.mdc.cursor/rules/ocentra-security-rules.mdc
Active focus areas:
- strengthen domain boundaries and typed contracts
- expand data-driven runtime and asset workflows
- improve parity across web, desktop, and mobile shells
- keep observability and test coverage aligned with runtime changes
- keep docs close to code and reduce stale artifacts
This repository is public for transparency, while direct development access is invite-only and coordinated by the Ocentra team.
For collaboration or partnership inquiries:
- local setup:
docs/SETUP.md - live app: game.ocentra.ca
- website: ocentra.ca
- Cloudflare backend docs:
infra/cloudflare/README.md - Solana workspace docs:
Rust/ocentra-games/README.md - app docs:
src/README.md - platform docs:
platforms/mobile/README.md,platforms/desktop/tauri/README.md - game catalog docs:
packages/card-games/README.md - AI overview docs:
packages/ai-domain/docs/OVERVIEW.md - asset editor docs:
packages/asset-editor/README.md
This repository is public for transparency and educational access, while remaining proprietary.
See LICENSE for complete terms.
- allowed: view and study code
- not allowed: unauthorized copying, modification, redistribution, or commercial use
For licensing questions, contact:



