Friday, May 28, 2010

Practical Examples in Data Oriented Design

Here are the slides from my talk at the Sthlm Game Developer Forum yesterday:


  1. Very good read, thanks!(is there audio btw?) I wonder if there is a good book on data oriented approach...

  2. Thank you very much! The ideas reflect my practice as well, but here they are compiled in one presentation!

  3. Interesting read, I hope it's ok to ask some questions for such an old post..
    I'm designing a scene graph now and decided to try the data oriented approach, but I can't figure out how to do certain things cleanly..
    Regarding the scene graph, how would one remove or add a node? If deleting a node involves moving all nodes below it to the left in the array, isn't that slow?
    Also, the index for the mesh would have to be updated, which means that adding new objects that attach to the scene graph would involve changing the "remove node" function, correct? Do I have to search through all meshes to see if the node index for each mesh needs to be updated?
    Thanks for a great blog.

  4. Note that our "scene graphs" do not cover the entire scene, only the objects within a particular entity. So adding or removing nodes is actually not a very common operations. (You would seldom add a new mesh to an entity.) So the system is not super optimized for that case. It is optimized for the common case of updating the scene graph.

    That said, to add a node as a leaf (which you would normally do), you would just add it to the end of the scene graph array.

    Removing a node isn't really necessary. You can just leave it in the scene graph. Unless you have some use case where you constantly add and remove nodes, but we don't have that.

    Relinking within the entity's scene graph is thus the only thing that actually would require things to move around in the array. But that is an even more rare thing to want to do. You would seldom want to relink so that the hand is before the shoulder in the scene graph, for instance. So you can afford to have special, expensive code for those rare cases.

  5. The Advanced on-site service is only offered if Geek Squad determines that a problem can’t be addressed remotely. Both plans include 24/7 phone support, 24/7 online support, adding network devices, firewall support, VPN support, setup of computers and servers, software or OS installation, computer tune-ups, diagnostics and repair, and data backups and transfer.

    For more information visit site :- Geek Squad Appointment

  6. Good respond in return of this query with genuine arguments and explaining the whole thing about that.
    check here

  7. This comment has been removed by the author.


  8. Canon Printer Driver and software for your model is a must for utilizing all the devices such as your printer, scanner, fax machines, and much more perfectly. Regardless of having a new PC, printer, an updated OS, or having trouble with your PC and Printer communication, updating your drivers or reinstalling Canon Driver Download can be helpful.Downloading ij.start.cannon drivers can be confusing, you need to cautiously install the software and drivers of your canon printer model that are compatible with your PC.

  9. Thank you for giving us this interesting information. It is really helpful. Quickbooks , which is an accounting software used in many organization. Sometimes users face some errors like Quickbooks won't open . Due to this error Quickbooks shows page not loading or doesn't start. It stops ongoing procedure and windows crashes.

  10. The QuickBooks Error 15227 is experienced when you are doing any Update of the product. This Error is known as the Update Error .We have some easy steps to fix this error code problem.

  11. I am really impressed with your writing talents. Keep up the excellent quality writing, it is rare to see a fantastic blog like this one. Thanks for sharing. Also visit.
    family celtic symbols |
    Celtic symbol for family