-
Notifications
You must be signed in to change notification settings - Fork 14
Home
Pravus edited this page Mar 4, 2026
·
5 revisions
Note: The documentation has been migrated to the main repository. The canonical and most up-to-date version can be found at docs/README.md.
Welcome to the official documentation for Unity Explorer — the Decentraland client built on Unity. This wiki covers architecture, development standards, feature guides, and tooling.
- Setup — SSH, GPG, LODs, and environment setup
- Getting Started — Scene loaders and Unity project entry points
- Working with Explorer Packages — Managing private UPM packages
- Branch & PR Standards — Branches, PRs, commits, and merge policy
- Code Style Guidelines — Naming, formatting, and ordering conventions
- Standards — Memory, GC, performance, tests, and error handling
- Architecture Overview — ECS concepts, dependency management, containers, and abstractions
- Directories & Assemblies — Project folder structure and assembly rules
- Systems — ECS system lifecycle, streamables, and scene bounds
- Scene Runtime — SDK7 scene execution, CRDT bridge, and JS modules
- MVC — UI architecture: controllers, views, and the MVC manager
- Third-Party Libraries — ArchECS, ClearScript, and Sentry
- Development Guide — ECS system/component design patterns, queries, cleanup, and singletons
- Async Programming — Detached flows, cancellation, and exception-free async
- Implement SDK Components — Step-by-step guide for new SDK7 components
- Feature Flags — Fetching and checking feature flags at runtime
- Features Registry — Centralized feature state registry
- App Arguments — Command-line flags and launch parameters
- Asset Promises — Asynchronous asset loading with ECS promises
- Asset Bundles Conversion — GLTF to Asset Bundle conversion pipeline
- Web Requests Framework — Allocation-free web requests with retry policies
- Memory & Resource Unloading — Memory budgeting and cache unloading strategies
- Network Synchronization — Entity sync via LiveKit in worlds and Genesis City
- Diagnostics — ReportHub logging system and Sentry integration
- Avatar Rendering — GPU skinning, compute shaders, and cel-shading
- Emotes — Emote loading, animation controllers, and pooling
- Skeleton Loading Animation — Bone animations for loading states
- Avatar Animation for Demos — Using Unity Timeline for demo recordings
- Chat — Chat system architecture, state machine, and MVP structure
- Chat Emojis — Emoji atlas creation and TextMesh Pro integration
- Chat History Storage — Local encrypted chat history persistence
- Locomotion — Character movement, jumping, sprinting, and IK
- Landscape — Procedural terrain generation
- Notifications — Remote notification polling and display
- Generic Context Menu — Dynamic context menu components
- Quality Settings — Graphics quality levels and renderer configuration
- Settings Panel — Modular settings panel architecture
- Shared Space Manager — Coordinated UI panel visibility management
- Visibility Component Propagation — SDK visibility component inheritance rules
- Web3 & Authentication — Wallet signing, ephemeral addresses, and auth chains
- IPFS Realms — Publishing entities to IPFS catalysts
- Connect to Local Scene — Running and connecting to local SDK7 scenes
- Master of Bots — Simulating multiple bot users for load testing
- Override Debug Log Matrix — Runtime log severity overrides
- Performance Benchmark — Generating PDF benchmark reports
- Build & CI — GitHub workflows, Python build handler, and Unity Cloud
- Unity Upgrades — Handling Unity version upgrades and CI images
- Troubleshooting Missing Docker Images — Fixing missing UnityCI Docker images
- Development Guide
- Async Programming
- Implement SDK Components
- Feature Flags
- Features Registry
- App Arguments
- Asset Promises
- Asset Bundles Conversion
- Web Requests Framework
- Memory & Resource Unloading
- Network Synchronization
- Diagnostics