Best Practices
Worker Function Requirements
Section titled “Worker Function Requirements”// ✅ Pure function using only parametersprotected workerProcess(entities: PhysicsData[], dt: number, config: any): PhysicsData[] { return entities.map(e => { e.y += e.velocity * dt; return e; });}
// ❌ Avoid using this or external variablesprotected workerProcess(entities: PhysicsData[], dt: number): PhysicsData[] { e.y += this.someProperty; // ❌ Can't access this in Worker}Data Design
Section titled “Data Design”- Use simple, flat data structures
- Avoid complex nested objects
- Keep serialization overhead minimal
When to Use Workers
Section titled “When to Use Workers”| Scenario | Recommendation |
|---|---|
| Entities < 100 | Don’t use Worker |
| 100 < Entities < 1000 | Traditional Worker mode |
| Entities > 1000 | SharedArrayBuffer mode |
| Complex AI | Traditional Worker mode |
| Simple physics | SharedArrayBuffer mode |
Performance Tips
Section titled “Performance Tips”- Only use Workers for compute-intensive tasks
- Use SharedArrayBuffer to reduce serialization
- Keep data structures simple and flat
- Use
entitiesPerWorkerfor load balancing