nfengine icon indicating copy to clipboard operation
nfengine copied to clipboard

Refactor internals of Entity-Component-System design

Open Witek902 opened this issue 8 years ago • 0 comments

  • [x] Implement Entity class
  • [ ] Introduce Entity Template resource
  • [ ] Introduce Entity Template component
  • [x] Introduce Entity Controller
    • [x] Implement FreeCameraController in nfEngineDemo
  • [x] Separate Systems from components and resources
    • [x] Implement renderer system with simple mesh proxy and light proxy
      • [ ] Use BVH to speedup culling
      • [ ] Move high-level renderer to another project
    • [x] Implement entity system
    • [x] Implement input system
    • [x] Implement physics system with body proxy
  • [x] Simple event handling system

Some notes:

  • All components should be kept in a memory pool (one memory pool for one component type).
  • Components should be as small as possible - they should contain only "configuration", all additional data (e.g. shadow map pointer for lights) should be managed by an appropriate system. Components will usually create some kind of system proxy when it's possible, e.g. when mesh resource was loaded.

Witek902 avatar Mar 11 '16 19:03 Witek902