Writing a blog post on Data Oriented Design. Any skeptics want to share their worries/criticisms? Looking to address some of the most common ones.
-
-
Well shit, now that the views on that post are going up, I'm frantically proof-reading all of them and finding typos everywhere.
Kiitos. Käytämme tätä aikajanasi parantamiseen. KumoaKumoa
-
-
-
To be a devil's advocate... "some developers don't understand multithreading, and [with this system] they don't have to" - sounds just like the reasoning that lead to introduction of garbage collection. Not saying DoD is inherently bad. Just that such a goal is questionable.
-
Nothing wrong with garbage collection as long as it’s done “right” according to your needs and purposes. In a way, garbage collection is also in Mana in several ways. The Gfx API does “GC” to frame data when it’s done being used.
- Näytä vastaukset
Uusi keskustelu -
-
-
I didn't read the post but the idea is what I'm wondering for 4 months (but I haven't enough skill to code it). What could've done for UE4 Blueprint type of gameplay coding (for things like RayCast, every ray is gathered and cast at once rather than casting seperately in BPs)
Kiitos. Käytämme tätä aikajanasi parantamiseen. KumoaKumoa
-
-
-
When i hear about multithreading stuff the questions i have are: Do you have a dynamic model (spawning tasks at runtime?). Do you use a fork-join model? Do you do task stealing? Do you do partitioning? Do you have task dependencies? If yes what do you do about deadlocks?
-
Dynamic model: yes. More here: https://link.medium.com/ojhloc5ynX Post might be a bit out of date at this point. I need to go back and update it for changes we’ve made to the engine since publishing the post.
Keskustelun loppu
Uusi keskustelu -
-
-
Continuing: What do you do about task thread affinities (to avoid trashing the cache)? What do you do about thread priorities? Do you have thread group based scheduling? And the biggest question of them all. How do you guarantee thread execution order independence?
-
I work on the Mana engine with Tim. Execution Order Independence is guaranteed by having each system declare data dependencies, and then building a static schedule that satisfies those dependencies. ( A before B ).
- Näytä vastaukset
Uusi keskustelu -
-
-
Execution order independence is a big deal in game engines. If you don't assure it, you'll be having each frame a different result depending on the order your threads executed. This will lead to very hard to find and fix bugs.
-
As
@rob_brink described, EOI is guaranteed for systems that touch the same data.
Keskustelun loppu
Uusi keskustelu -
Lataaminen näyttää kestävän hetken.
Twitter saattaa olla ruuhkautunut tai ongelma on muuten hetkellinen. Yritä uudelleen tai käy Twitterin tilasivulla saadaksesi lisätietoja.