Great write-up. I find this system a lot more friendly than previous attempts I've made at game programming, usually involving derived classes of a an Entity class that posses inherited function calls for things like Draw(), Move(), etc.<p>By using data-only entities, it becomes a lot simpler to create Draw and Move classes which take an entity as an object and use the data therein to perform the action described by their class name. This makes it a bit simpler at the "main" code loop, because you don't need to pass handles, etc. down to the entities in order to draw using the game engine.