Fun fact: Doom Eternal does not have a main or render thread. It's all jobs with one worker thread per core.
-
-
You can implement nearly all concurrency control mechanisms on top of a job system with something akin to continuation passing style/async await/promises. A lock in that model is just a thread safe queue of waiting job continuations, when released the queued continuation runs.
-
In that model, are you manually rolling a custom transaction protocol for every interaction that may occur in-game, and manually plumbing all of the state around and reverting upon failure?
- 4 more replies
New conversation -
-
-
Is it fair to specify the topic more by asking "and game play coding needs retain simplicity" ?
-
With these architectural questions I always arrive at that. Surely I can write game play code in a parallel way like I write complex GPU compute algorithms. However, then only 10 people will make a game. Right?
- 2 more replies
New conversation -
-
-
Dunno about them, but we use a message based architecture to avoid race conditions. Each reciever decides when/how to resolve data change requests.
-
True object oriented programming!
End of conversation
New conversation -
-
-
Have a set of rules that allow for multiple outcomes from the same action when it won't disrupt the meta progress. In the case above, credit both unless it is meta-critical. This allows you to avoid checking in a lot of cases. Where it matters, do it the hard/slow way.
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
-
-
The same way you do with multiplayer: multicore and multinode are equivalently “multi”.
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
-
-
I assume there has to be a shared context to do locking and synchronization? But debugging this would be quite a feat!
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
-
-
I suspect they group tasks and have a few 'serial' group behaviors. In your particular example all damage can be logged with an entity and later resolved/processed by the entity itself.
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.