nfengine
nfengine copied to clipboard
Refactor internals of Entity-Component-System design
- [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] Implement renderer system with simple mesh proxy and light 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.