TODO 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. * long term feature: templated generic vm
  2. * long term feature: shared_ptr less locator
  3. * long term feature: shared_ptr less resource cache
  4. * custom allocators and EnTT allocator-aware in general (long term feature, I don't actually need it at the moment) - see #22
  5. * debugging tools (#60): the issue online already contains interesting tips on this, look at it
  6. * work stealing job system (see #100)
  7. - mt scheduler based on const awareness for types
  8. * meta: sort of meta view based on meta stuff to iterate entities, void * and meta info objects
  9. - remove runtime views, welcome reflection and what about snapshot?
  10. * allow for built-in parallel each if possible
  11. * allow to replace std:: with custom implementations
  12. * types defined at runtime that refer to the same compile-time type (but to different pools) are possible, the library is almost there
  13. * add opaque input iterators to views and groups that return tuples <entity, T &...> (proxy), multi-pass guaranteed
  14. * allow for custom stomp functions
  15. * custom (decoupled) pools ==> N-buffering, shared components, multi-model, hibitsets, and so on
  16. - explore the possibility to wrap other backend with a XHandler component
  17. * snapshot rework/deprecation
  18. - create(hint: entity) -> force-create
  19. - assign<T...>(first, last)
  20. * use unordered_map for named pools and context variables:
  21. - use direct access (pool-like) also for context variables
  22. - allow for key/value variables where the key is an ENTT_ID_TYPE
  23. - improves multi-stomp
  24. * add examples (and credits) from @alanjfs :)
  25. * static reflection, hint: template<> meta_type_t<Type>: meta_descriptor<name, func..., props..., etc...>
  26. * ENTT_NAMED_TYPE -> ENTT_EXPORT and add also ENTT_EXPORT_WITH_NAME
  27. * meta: members+class as fake functions, is it possible?
  28. * meta: export implicitly generated named types if possible
  29. * add meta support to registry:
  30. - entity for each component
  31. - opaque get
  32. - and so on (I'm lazy) :)
  33. * registry::each to iterate all components of an entity
  34. * named types: almost-stable index optimization for direct access to pools, no more linear searches
  35. - can implicitly generate types for meta benefit from a similar approach?
  36. * detect family on a macro based model
  37. * is it possible to make named type constraints namespace-free?
  38. * stomp -> merge (naming is hard as heck, it's known thing)
  39. * observer: user defined filters (eg .replace<T, &function> or .group<T, U, &func>)
  40. * any-of rule for views/groups (eg entity has A and any of B/C/D)
  41. * sparse set: there exists an alternative to paginated sparse arrays?
  42. * see warning (vs2017 only): d:\a\entt\entt\src\entt\entity\registry.hpp(108)
  43. * registry
  44. - ::assure -> pool_type<T> &
  45. - ::group improve, reduce code
  46. * Mission: get rid of named types
  47. - make it possible to use custom generators (eg for plugins)
  48. * dispatcher
  49. * emitter
  50. * registry
  51. * meta
  52. * monostate
  53. * locator
  54. - families should be defined as out-of-class to guarantee the same identifiers for the same types
  55. - update doc: family, dispatcher, emitter, registry, meta, across boundaries
  56. - update tests