avocado-old/TODO.md
2020-06-23 20:01:40 -05:00

46 lines
1.9 KiB
Markdown

# TODO
- ✔ Remove dependency on decorators
- ✔ Synchronized should be a mixin
- ✔ Behavior items should derive type/name
- ✔ Precompile behavior expressions
- ✔ Abstract physics world tick optimizations
- ✔ Cache current routine for Behaved tick
- ✔ Inline traits into entity, remove Proxy
- ✔ Eliminate immutable.toJS()
- ✔ Track dirty entity state (entityList.tick())
- ✔ Investigate visibleEntities path
- ✔ Investigate lookupEmitListeners path
- ✔ Investigate visibleBoundingBoxes path
- ✔ EventEmitter::emit is too hot
- ✔ Entity packets
- ✔ Decouple input normalization from action registry
- ✔ entityList.fromJSON()
- ✔ Don't run emitter destruction tickers on server
- ✔ Investigate unrolling equalsClose
- ✔ Bitshifts for on_positionChanged x/y boxing
- ✔ Memoize Object.getOwnPropertyNames results per trait constructor
- ✔ EE optimizations (lookupEmitListeners)
- ✔ Core.fastApply, search for /\(\.\.\./
- ✔ Rename visibleBoundingBox(es)? to visibleAabb(s)?
- ✔ Trait params fromJS is super slow
- ✔ Entity::is is slow?
- ✔ Manual state sync
- ✔ Synchronized provides packet updates
- ✔ Phase out EntityPacketSynchronizer
- ✔ Implement ALL trait state update packets
- ✔ Implement Entity remove packets
- ✔ Save state/param extensions separately on create instead of only merging
- ✔ Target trait updates beyond just visible; e.g. others don't need to know
about inventory change
- ✔ Remove position pack check from trait and add to Vector
- ❌ PIXI particles
- ❌ Pointer events polyfill: https://github.com/jquery/PEP
- ✔ Fix physics drag during latency
- ❌ Socket WebWorker can't connect in Firefox
- ✔ PIXI update to v5
- ❌ chunked tile communication
- ❌ Property.fastAccess to skip getter, this.entity.currentAnimation
- ❌ zLib dictionary for packet compression
- ❌ afterDestructionTickers shouldn't exist... destruction should be deferred