40 reputation
4
bio website
location
age
visits member for 1 years, 11 months
seen Feb 18 at 22:21

Oct
10
comment Dynamic Components
Thank you for replying, Coyote. In the scope of this project, memory and performance aren't very important since the paper describes mostly theoretical work; however, those words of advice are nevertheless true, and I will certainly keep them in the back of my mind.
Oct
9
comment Dynamic Components
Within due time, I will certainly share the architecture with the folks at gamedev.stackexchange. The architecture will be described in an academic paper I'm in the process of writing. Coyote's solution certainly works, depending on the architecture employed; however, I don't like the existing paradigm, which is why I'm writing a paper with new ideas :). To clarify: a method in a class derived from Component will be executed iff it's enabled. Aspect-oriented frameworks help me do exactly this by generically intercepting methods. Thanks again, and I'll keep you guys posted with updates.
Oct
9
comment Dynamic Components
Thank you for taking time to respond. Unfortunately, I don't believe your solutions solve my problem. For example, if object A is referencing Component B directly, removing B from an update loop will not affect B's inherent ability to make changes to A. When B is disabled, it is desired that nothing can be changed. After some Googling, it seems this problem is quite complicated and involves method-invocation interception and is language-specific. sharpcrafters.com/blog/post/deeper-into-aspect-inheritance.aspx details what would be needed for use in a C# system.
May
6
comment How can I store a set of concrete components and implement “GetComponent<T>()?”
I should mention that I am using C++, which made this problem non-trivial. However, using boost::any I was able to emulate C#'s functionality of Type. In conjunction with boost::any_cast and boost::any_bad_cast, I was able to solve the problem. I believe using boost::variant might be a better solution as it can emulate Java's wildcard abilities; however I'll look into that in a later date. For now, I might throw in some BOOST_STATIC_ASSERTS about T to ensure it is of type Component.
May
4
comment How can I store a set of concrete components and implement “GetComponent<T>()?”
Thanks, Josh. I guess my brain wasn't functioning this morning.
May
2
comment GameObject and Components
The messaging paradigm is taken care of by Qt's SIGNALs and SLOTs. However, the design pattern you are using (sort of like a Builder/Factory), in addition to referencing GameObjects by UID, can solve this problem. It's not the prettiest solution in the world, but it certainly is nifty and unique! When I am done implementing it (I just wrote it out on paper), I'll respond back with my code. Thanks, Nic!