Code center > Darwinbots3

Cpp version

<< < (2/2)

Numsgil:
There are some high level algorithmic optimizations that might be made that would speed up things considerably. But those are later on down the road.  Initial versions will be much slower.

jknilinux:
How slow are we talkin for initial versions? DB2 speed? half that? Why will they be so slow?

Also, how much experience do you have with bigO optimization? Will implementing such algorithms be difficult/unavailable in initial releases? At what point do you think DB3 will reach a usable level?

Also, can we implement some sort of 2.5D mode, so it won't actually have to deal with 3D graphics? Maybe a memory location that, if set to 1, brings the bot to a parallel 2D sim, moving it slightly in the 3rd dimension, where things in each 2D level can only interact with that which is in their level. It can switch back to 0 if it wants to return to the original one. Maybe we can implement each 2D sim in this mode on a different core/computer? on second thought, this would be a great way to induce speciation by setting slightly different physics to each parallel 2D plane... Perhaps we can use this as an alternative to the roving teleporter option too for IM?

Same with 3D, you can make it 3.5D where bots can move slightly into the fourth dimension by setting some value to 1 in memory. IMO, better idea than roving teleporter. This way, bots can choose to leave the sim or not.

Numsgil:

--- Quote from: jknilinux ---How slow are we talkin for initial versions? DB2 speed? half that? Why will they be so slow?
--- End quote ---

For physics, I'm not using a broadphase yet, so collisions will be O(n^2) instead of O(n). Worse, collision response is using dense matrix factorization, so "islands" of bots will be O(n^3) instead of O(n) like sparse matrix math would give.  On the plus side information will be cached between frames so in a zero bot sim where nothing is moving it will probably be much faster.  


--- Quote ---Also, how much experience do you have with bigO optimization? Will implementing such algorithms be difficult/unavailable in initial releases? At what point do you think DB3 will reach a usable level?
--- End quote ---

I do program real time systems for a living so I'm not exacly out of my element here. Initial releases won't have them because it would take extra time and I just really want somthing for users to play with sooner rather than later. I'll prioritize speed vs features based on initial feedback. The algorithms are difficult to program (testing needs to be rigorous especially) because they rely on high level math that not everyone is familiar with. If someone wants to tackle one of the problems I think it would make a good project.  They're conceptually self contained, and I can partly walk people through the math involved.


--- Quote ---Also, can we implement some sort of 2.5D mode, so it won't actually have to deal with 3D graphics?
--- End quote ---

DB3 won't be 3D. I was considering it at first but I changed my mind because it would have been difficult to build a good control scheme for bots and even users.  The graphics use a custom built 2d wrapper around 3d xna, though, so they are 3d in a manner of speaking (hardware accelerated cards treat 2d as 3d basically).


--- Quote ---Maybe a memory location that, if set to 1, brings the bot to a parallel 2D sim, moving it slightly in the 3rd dimension, where things in each 2D level can only interact with that which is in their level. It can switch back to 0 if it wants to return to the original one. Maybe we can implement each 2D sim in this mode on a different core/computer? on second thought, this would be a great way to induce speciation by setting slightly different physics to each parallel 2D plane... Perhaps we can use this as an alternative to the roving teleporter option too for IM?
--- End quote ---

Interesting idea. When I get to working on teleporters I'll see what can be done.

Navigation

[0] Message Index

[*] Previous page

Go to full version