So, for fun, I'm trying to write my own maya/max/blender style 3d program in python.
In my current simplified implementation all 3dObjects in a scene are stored with unique names in a dict.
I want to parallelize the graph traversal early on so I don't make single threaded assumptions later in my code that lock me in.
I am going to use a (hopefully) simplified 3dsMax type architecture where:
There are multiple types of objects and modifiers
Each modifier/object type will have a different number of properties that could include lists of other objects
A friend of mine says that using an embedded database might be a good course of action. Especially because of my goal to support multiple full character rigs in a scene... Or maybe because he knows how to use a database, everything looks like a case to use a database.
Either way, I started doing research on databases and wow... Information overload and so many to choose from.
From what I've read, I would certainly want something embedded, and in-memory, but I don't really understand what else I would need. Transactional/thread-safe/concurrent?
Is a database really a good idea in this case? Or should I just roll the multi-thread logic myself?
If someone here with some experience could point me in the right direction, I would be most grateful.