You should check out my couple of blog posts on Mana Engine, a thread-safe game engine that is DoD and scheduled similarly to a frame graph. https://medium.com/@tloch14/mana-engine-achieving-thread-safety-1143dd3deae5 … I haven't kept up with the posts, so information is kinda light. HMU if you want to know more.
-
-
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.
1 vastaus 0 uudelleentwiittausta 0 tykkäystä -
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.
1 vastaus 0 uudelleentwiittausta 0 tykkäystä -
But I think you’re right to be skeptical. I have another post later on illustrating why it’s useful. You can implement something “single threaded” and then if you need to, make MT improvements later.
1 vastaus 0 uudelleentwiittausta 0 tykkäystä -
This reflects the realities of development. You often work on a team, where each member has different skills. Initial implementation of a feature can be “single threaded”, where safety is guaranteed and concurrent work will still be scheduled.
1 vastaus 0 uudelleentwiittausta 0 tykkäystä -
If performance demands it, you can later make MT improvements. The DoD design makes that an easy refactor in many cases.
1 vastaus 0 uudelleentwiittausta 0 tykkäystä -
As a final note: on days when my brain is deep in some other subject, *I* am bad at multithreading. Being able to tackle the actual problem at and and leave the MT for another day is a boon.
1 vastaus 0 uudelleentwiittausta 0 tykkäystä -
A tool that helps you do things that you know how do, but now faster, easier and safer is great. Saying that "developers don't need to understand <a fundamental concept of modern computing>" for any such concept, is a recipe for disaster. Just that.
1 vastaus 0 uudelleentwiittausta 0 tykkäystä -
Fair enough. I agree with your point.
1 vastaus 0 uudelleentwiittausta 0 tykkäystä -
I've been thinking about this the past day. In this case, the user truly doesn't need to understand MT programming concepts. As far as the user is concerned, all tasks could be run on 1 thread. The user only needs to understand how it generates task order.
2 vastausta 0 uudelleentwiittausta 0 tykkäystä
It is only when you specifically opt into MT behavior (info on that here: http://medium.com/@tloch14/mana-engine-dynamic-tasks-b7563362ede1 …) or interact with an API (Mana has you covered there too: http://medium.com/@tloch14/mana-engine-thread-safety-of-apis-7e73d482a5c6 …) do you really need to care about MT techniques.
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.