Modular software designs such as the component based approach (see Mick West's article) is gaining more and more ground in becoming the modern way of building games. At least, that is what I interpret from the increasing amount of middleware using, and pushing these concepts (e.g. Unity3D, TorqueX). Not to mention all the recent forum activity regarding these concepts on the various game-development sites.
Personally I have been intrigued by this approach for a long time, and have built a small and lightweight framework which helps me in building software the component- and data-driven way.
Building this framework has been interesting, exciting, and has, surprisingly, taken a long time considering how “simple” it is on paper. So, inspired by Adam Martin’s series on entity-systems and based on my experiences with developing this framework, I will, through a series of short posts, present various implementation details that you can use, to hopefully improve your component-based framework.
The code samples presented in these posts might not be applicable to all systems since they’re written in C#. However, the concepts should still be useful.