avocado-old/TODO.md
2019-10-02 18:06:31 -05:00

1.8 KiB

TODO

  • ✔ Remove dependency on decorators
  • ✔ Synchronized should be a mixin
  • ✔ Behavior items should derive type/name
  • ✔ Precompile behavior traversals
  • ✔ 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()
  • Socket WebWorker can't connect in Firefox
  • ✔ 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)?
  • Property.fastAccess to skip getter, this.entity.currentAnimation
  • ✔ 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 remember packets
    • ✔ Implement Entity remove packets
  • ✔ Save state/param extensions separately on create instead of only merging
  • Pointer events polyfill: https://github.com/jquery/PEP
  • Target trait updates beyond just visible; e.g. others don't need to know about inventory change
  • afterDestructionTickers shouldn't exist... destruction should be deferred
  • Remove position pack check from trait and add to Vector
  • zLib dictionary for packet compression