Data flow in a property centric game engine

I know, I know, indies shouldn't build their own engine, but let's ignore reason for now and instead focus on something else. I wanted to build a property centric engine, using composition for pretty much everything rather than inheritance.

My research into a property centric design was driven by a fascination for data oriented design, and specifically the "where there's one there are many" mantra. I got obsessed with arrays of raw data, of lean structures. I wanted this to be the core of my engine.

{more …}

My take on Data-Oriented Design

Data-oriented design is a paradigm shift from the classic object-oriented way of doing things. Basically, instead of modelling game objects using object and class hierarchies, we shift our focus to the data that describes these objects, isolate each type of data, and treat all instances of this data type (also often referred to as properties) in one swoop. We're supposed to think of ways to transform data, rather than objects and classes. "Where there's one, there are many" is the mantra of data-oriented design, the question is, what does it mean to you? Chances are you probably already knew all this before coming here, so I'll focus on what it means to me, my attempts to translate it into the real world, and how I use it in Choco.

{more …}