Just went over de data depository article. It has some similarities with what I worked on in my university years. I had a central simulation state with various actors taking turns to modify the state.
Just a dump on my thoughts of implementation in DB3:
It pays to think about the organization of data and the way on how to achieve the link between the modules: relatively speaking either the database is going to be complex and the interfaces simple or the other way around.
For now I see three or four object types in the database:
Shapes (including or maybe even solely consisting out of their edges)
Bots (Corpses as a special type)
shots
Are teleports a separate object type or an instance of a shape?
For each of these types some underlying data needs to be stored in the depository. An overview of what springs to mind and where they would be needed:
Bots:
location / shape (collision detection, rendering, volume, DNA)
Connections (ties) interaction between cells, DNA
Mass (physics, DNA)
Velocity (physics, DNA)
Acceleration (physics, DNA)
Refvars (DNA)
Shapes:
Location / shape (intersection / collision, rendering, DNA))
Physical / chemical attributes (DNA, physics)
Shots:
location (collision, rendering, DNA)
Velocity (physics, DNA)
Type / content (physics, rendering, DNA)
Teleports:
To from link (network)