hubs icon indicating copy to clipboard operation
hubs copied to clipboard

BitECS Component Burndown

Open netpro2k opened this issue 2 years ago • 0 comments

Simple Object3Ds

These will likely just be inflators that direclty read the properties, create an Object3D, and call addObject3DComponent. Depending on what they do they may or may not also add a tag component if they need to do any special cleanup outside of what Object3DTag is used for.

  • [x] simple-water [keianhzo] #5909
  • [x] mirror [Takahiro] #5919
  • [x] text [Takahiro] #5933 (JSX component done but might need some properties remapped, maybe think about TODOS around a system for calling sync() on all texts once per frame instead of in every system that uses them.)
  • [x] particle-emitter [keianhzo] #5926
  • [x] ambient-light [Takahiro] #5918
  • [x] directional-light
  • [x] hemisphere-light [Takahiro] #5934
  • [x] point-light [Takahiro] #5932
  • [x] spot-light [Takahiro] #5931

Media Loaders

largely done, need some property mapping and link needs to be figured out and need to handle "controls" and other mediaOptions in existing loaders like image and video

  • [x] model [Takahiro] #5953 JSX component is done, needs a "loader" version for GLTFs like we did for image/video.
  • [x] audio [Takahiro] #5949
  • [x] video [Takahiro] #5962 #5966 #5969 Mostly done. Needs support for HLS / DASH added in, and work done for owner selection for pinned videos.
  • [x] link [Takahiro] #5976
  • [x] html [Takahiro] #5977
  • [x] pdf [John]

Animation

  • [x] loop-animation [Takahiro] #5938 (likely right time to do some form of animationMixerSystem, start to think about networking, though not implementing that part)
  • [x] uv-scroll [Dom] (see if we can deal with material components in a less hacky way now)

Physics

Most of the current implementation of physics in BitECS now is hardcoded. Note: we can probably get pretty far with most environments by just re-implementing the auto shape generation we do for scenes without any physics components.

  • [x] ammo-shape [keianhzo] https://github.com/mozilla/hubs/pull/5978
  • [x] heightfield (likely maps to ammo-shape and becomes deprecated) [keianhzo] https://github.com/mozilla/hubs/pull/5978
  • [x] trimesh (likely maps to ammo-shape and becomes deprecated) [keianhzo] https://github.com/mozilla/hubs/pull/5978
  • [x] box-collier (likely maps to ammo-shape and becomes deprecated) [keianhzo] https://github.com/mozilla/hubs/pull/5978
  • [x] spawner hand grabbing (needs physics shapes) [keianhzo] https://github.com/mozilla/hubs/pull/5978

Audio

Ideally we can redo these to directly work with the WebAudio API and skip the threejs objects. Should simplify the code a bunch since we need to reach into the internals a bunch to do what we are doing now.

  • [x] audio-settings [keianhzo] https://github.com/mozilla/hubs/pull/6014
  • [x] zone-audio-source [keianhzo] https://github.com/mozilla/hubs/pull/5960
  • [x] audio-target [keianhzo] https://github.com/mozilla/hubs/pull/5960
  • [x] audio-params [keianhzo] https://github.com/mozilla/hubs/pull/5960
  • [x] audio-zone [keianhzo] https://github.com/mozilla/hubs/pull/5944
  • [x] audio-debug [keianhzo] https://github.com/mozilla/hubs/pull/5944

Misc

  • [x] duck [stalgiag] https://github.com/mozilla/hubs/pull/6072
  • [x] quack [stalgiag] https://github.com/mozilla/hubs/pull/6072
  • [ ] scale-audio-feedback [keianhzo] https://github.com/mozilla/hubs/pull/5974 (Not needed in this iterations)
  • [ ] morph-audio-feedback [keianhzo] https://github.com/mozilla/hubs/pull/5974 (Not needed in this iterations)
  • [x] billboard [keianhzo] #5901 (needed as is, but also a good time to think about how other engines handle billboarding as more of a rendering concept)
  • [x] media-frame [keianhzo] https://github.com/mozilla/hubs/pull/6003 system currently only handles capturing aframe objects. Needs property mapping for loading. Possible we want to hold off on doing this until we are ready to flip newLoader so that we can write the system entirely about new objects.
  • [ ] networked-drawing-buffer Used in pinned drawings to allow re-editing them. Quite low priority and complex. Should probably just be done when we redo the pen / drawing stuff.
  • [x] video-texture-source [Dom]
  • [x] video-texture-target (material component) [Dom]

Environment and Objects

  • [X] spawner
  • [X] spawn-point (maps to waypoint)
  • [X] frustum
  • [X] skybox
  • [X] background
  • [X] fog
  • [X] shadow

Not component burndown but needed before flipping newLoader to default

  • [x] networked-transform needs some form of lerping, ideally something that is somewhat physics aware.
  • [x] Object menu buttons need to be implemented, or equivalent capabilities need to be introduced. [Takahiro] #5985 #5993
  • [x] Objects sidebar needs to show (root) entities [keianhzo] https://github.com/mozilla/hubs/pull/6067
  • [x] Lobby camera needs to be positioned and animated (not at the origin) https://github.com/mozilla/hubs/pull/6022
  • [ ] Loading legacy room objects with newLoader needs to be supported. [John]
  • [ ] Do not crash on legacy scenes, now that we have stricter rules.

netpro2k avatar Jan 18 '23 05:01 netpro2k