3 ms·
The example chart of a "highly optimized game" shows games systems being multithreaded (in addition to physics). As far as I am aware, this is still pretty rare
by Pulcinella 5y ago
The example chart of a "highly optimized game" shows games systems being multithreaded (in addition to physics). As far as I am aware, this is still pretty rare in games, unless I am wrong. I know Unity is trying to parallelize gameplay code (rather than just networking, I/O etc) via DOTs, to mixed results. Are there other games[0] or engines that are attempting to do this? I know their are GDC talks from Naughty Dog and Bungie about how they parallelized their engines, but the Bungie one about Destiny still made it seem like the gameplay logic was still largely single threaded.
[0] I believe Noita (a falling sand type game) parallelizes the falling sand update loop by breaking the screen up into different regions with "dirty" rects and splitting that work out amongst multiple threads.
- hinkley 5y agoApple had a way to add a second thread to OpenGL to do some pipelining work. Prepping some of the data to send to the graphics card happened on a worker thread, allowing some speed up, but if memory serves it was less than 30%. I think this document describes it: https://developer.apple.com/library/archive/documentation/GraphicsImaging/Conceptual/OpenGL-MacProgGuide/opengl_threading/opengl_threading.html https://developer.apple.com/library/archive/documentation/Gr... These sorts of improvements were interesting in an era of casual gaming on 4 core laptops, but when laptops start having 16 cores this is not so interesting.
- kevingadd 5y agoNVIDIA and AMD's drivers currently offload a bunch of stuff to driver-owned worker threads for you, they've been doing it for a long time.
- deleted 5y ago[deleted]
- raphlinus 5y agoThe chart is based loosely on the Call of Duty presentation (linked in the article), which does employ parallelism to reduce latency. There's also a lot of interest in ECS engines that can parallelize the work, for example Bevy tries to make parallelism easy.
- Pulcinella 5y agoReading through it, it seems that use parallelism in rendering to reduce latency but I'm not sure if they also use it for game logic (e.g. updating NPC positions, calculating projectile trajectories, etc.)