I’ve been interested in the tenets of data-oriented design for several years now, but I haven’t made any headway in terms of actually practicing it at scale. I suspect I’m not the only person frustrated by this state of affairs. [1/7]
-
-
Have you seen anything from the fine folks
@ourmachinery ? They have some recent blog posts discussing data structures, and you can run a Google search against their site for "data-oriented" posts. -
Yep, I’ve followed their blog and podcast with great interest! Learned a lot from the Bitsquid/Stingray blog back in the day too
Kraj razgovora
Novi razgovor -
-
-
For me, trying to do SIMD programming will naturally lead me away from OOP, towards DOD. AVX-intrinsics means doing everything in batches of 8. 8 x-coords 8 y-coords 8 z-coords e.g. Keeping (x,y,z) as part of a huge class goes counter to this, and requires reorganization.
-
Real World coding problems I have tackled like this (high throughput 8-way SIMD) include: * crowd-pathfinding (8-gridcells per instruction.) * N-Body gravity (8 bodies per instruction.) * intersection testing (8 AABBs per instruction.) So for me, writing more SIMD (in C) helps.
- Još 1 odgovor
Novi razgovor -
-
-
I had the same problem recently. The first half of the Overwatch Gameplay Architecture and Netcode video (https://www.youtube.com/watch?v=W3aieHjyNvw …) is what helped me the most, I think. I then wrote an ECS test from scratch, and when I had questions I looked at the Unity ECS docs for inspiration.
Hvala. Twitter će to iskoristiti za poboljšanje vaše vremenske crte. PoništiPoništi
-
-
-
Personally, I had trouble getting a handle on it from videos. Mike Acton's boids demo from GDC 2018 is pretty good though
-
What did it for me was taking a month last year and building a poly line system for my game in it. I probably took three or so different approaches before I wound up with a solution that felt usable, fast, and robust. I think the answer is (as it often is) just build things
- Još 1 odgovor
Novi razgovor -
-
-
TBH I would focus on a simple (procedural) API, and not even expose much of the "data-oriented-ness" to the API user. How the data is laid out in memory and how it's processed should be an "implementation detail". IMHO Entity/Component/System doesn't imply DoD (and vice versa).
-
...the main problem I usually have with "OOP libraries" is that their API consists of a bunch of classes, usually resembling too closely the internal implementation, this makes it hard to learn for the user, and hard to change the implementation for the library writer.
- Još 3 druga odgovora
Novi razgovor -
-
-
https://www.gamedevs.org/uploads/data-driven-game-object-system.pdf … by Scott Bilas was probably the first big write-up of the ECS (except it was not called that). Note that main goal was to deal with "God objects and crazy obj hierarchies (...but it ultimately led to more cache friendly setup)
Hvala. Twitter će to iskoristiti za poboljšanje vaše vremenske crte. PoništiPoništi
-
Čini se da učitavanje traje već neko vrijeme.
Twitter je možda preopterećen ili ima kratkotrajnih poteškoća u radu. Pokušajte ponovno ili potražite dodatne informacije u odjeljku Status Twittera.