Post by Admin on Jul 16, 2016 4:35:36 GMT
Simon Schmid @sschmid Nov 12 2015 01:37
new release Entitas 0.24.3
Simon Schmid @sschmid Nov 12 2015 05:21
@mikecann Thanks for your feedback! I just replied with a comment disq.us/8r1pb5
Mike Cann @mikecann Nov 12 2015 08:41
awesome thanks!
Chris Malliapi @malliapi Nov 12 2015 10:27
hi
Simon Schmid @sschmid Nov 12 2015 18:23
hi
Felipe Alfonso @bitnenfer Nov 12 2015 22:54
hello :smile:
Felipe Alfonso @bitnenfer Nov 12 2015 23:01
I just watch the unite talk. I haven't seen the code but i have a questio. Are components stored in the entity o in the systems?
Maxim Zaks @mzaks Nov 12 2015 23:05
Components are stored in the entity. Systems are stateless
Felipe Alfonso @bitnenfer Nov 12 2015 23:08
wouldn't it be more efficient to store components in systems and keep entities mostly as handlers?
Simon Schmid @sschmid Nov 12 2015 23:21
@mikecann new release 0.24.4 with nicer error messages
Maxim Zaks @mzaks Nov 12 2015 23:22
Components are like atoms they are the essential building blocks of your state.
Entity is like a molecule. It combines multiple components into something logical.
Systems change molecules or create new molecules dependent on the given molecules.
So far for the philosophical part
Practically, for efficiency we have groups which we query from systems I guess those can be characterised as handlers if I understand you correctly
Felipe Alfonso @bitnenfer Nov 12 2015 23:34
I like the poetic representation . But it still means you are accessing every frame members of the entity which will probably fill you cache line with stuff you don't need. For example, you wouldn't need a render component data when you are handling the moving behaviour
Simon Schmid @sschmid Nov 12 2015 23:37
I didn’t really get your example with the moving behaviour… what do you mean?
Maxim Zaks @mzaks Nov 12 2015 23:40
Entity is internally represented as an array of components which are pointers. By loading an entity into memory you are loading an array of pointers. If you have lots of components you are polluting the CPU cache a bit. To avoid this you can have fine grained pools as entities from a certain pool type can only have a components from the certain pool type.
I guess you are worried about CPU cache? Or I mis understood you?
new release Entitas 0.24.3
Simon Schmid @sschmid Nov 12 2015 05:21
@mikecann Thanks for your feedback! I just replied with a comment disq.us/8r1pb5
Mike Cann @mikecann Nov 12 2015 08:41
awesome thanks!
Chris Malliapi @malliapi Nov 12 2015 10:27
hi
Simon Schmid @sschmid Nov 12 2015 18:23
hi
Felipe Alfonso @bitnenfer Nov 12 2015 22:54
hello :smile:
Felipe Alfonso @bitnenfer Nov 12 2015 23:01
I just watch the unite talk. I haven't seen the code but i have a questio. Are components stored in the entity o in the systems?
Maxim Zaks @mzaks Nov 12 2015 23:05
Components are stored in the entity. Systems are stateless
Felipe Alfonso @bitnenfer Nov 12 2015 23:08
wouldn't it be more efficient to store components in systems and keep entities mostly as handlers?
Simon Schmid @sschmid Nov 12 2015 23:21
@mikecann new release 0.24.4 with nicer error messages
Maxim Zaks @mzaks Nov 12 2015 23:22
Components are like atoms they are the essential building blocks of your state.
Entity is like a molecule. It combines multiple components into something logical.
Systems change molecules or create new molecules dependent on the given molecules.
So far for the philosophical part
Practically, for efficiency we have groups which we query from systems I guess those can be characterised as handlers if I understand you correctly
Felipe Alfonso @bitnenfer Nov 12 2015 23:34
I like the poetic representation . But it still means you are accessing every frame members of the entity which will probably fill you cache line with stuff you don't need. For example, you wouldn't need a render component data when you are handling the moving behaviour
Simon Schmid @sschmid Nov 12 2015 23:37
I didn’t really get your example with the moving behaviour… what do you mean?
Maxim Zaks @mzaks Nov 12 2015 23:40
Entity is internally represented as an array of components which are pointers. By loading an entity into memory you are loading an array of pointers. If you have lots of components you are polluting the CPU cache a bit. To avoid this you can have fine grained pools as entities from a certain pool type can only have a components from the certain pool type.
I guess you are worried about CPU cache? Or I mis understood you?