For a while I have been meaning to use emscripten to make some HTML5 games by first writing everything in C++ and SDL (which then gives me the option of porting the C++ code if I wish). I started hashing out some code and ended up on my usual jaunt through trying to write the *perfect* system (I can't help myself, despite reading "write games not engines"). I love component based systems, on paper, and I set about writing a simple OOP implementation and was getting frustrated so I started reading up on other component designs and started to read a lot about CES and how it is better achieved through DOD...to be perfectly honest the end goal for me is never really to release a game but to broaden my mind, learn something new and play a bit of intellectual ping pong with people
So i have been reading various articles on DOD including this book: http://www.dataorienteddesign.com/dodmain/ and in general its really hard shifting my brain out of OOP and getting to grips with something that on the face of it looks quite old school. But the advantages make sense and actually the style of coding looks like it could be quite nice to use for games, if done right. And i don' think it has to be devoid of encapsulation (or at least the main point of), in fact the more I think about it, if i code in a style akin to how i code my shaders then it will be pretty tight. Any thoughts on DOD in general would be appreciated
there are lots of articles around, including on gamedev that talk about CES implementations but I keep coming back to Artemis
On paper artemis http://gamadu.com/artemis/manual.html sounds ideal, its based on http://t-machine.org/index.php/2007/11/11/entity-systems-are-the-future-of-mmog-development-part-2/ opinion on CES.
But when I poke around the code for the C++ implementation of artemis, i can't decide if its actually good DOD, there are also 3/4 C++ implementations of Artemis. Commet, Gamedev and the one I poked around. Various hints that the C# implementation is better etc.
Enough waffle, Actual Questions!
- Has anyone used Artemis, got any comments
- Has anyone chosen not to use Artemis and why?
- What did you choose instead?
- Any good resources or things to say about DOD
- Any defense of *classic game OOP* and the whole "death by a thousand paper cuts" argument
I hope this post can be a good little discussion, with some nice resources for anyone else that comes stumbling into these topics (I will post some more resources when i find them )