After some comments on my recent culling video, and discussions about the performance of different approaches to threading, I thought it would be good to run some empirical tests to compare the results. I did not want to run the tests in isolation, but rather as part of an actual, complex, real-game setting, where lots of other calculations happen before, after, and in-between the tests. This highlights a few very interesting factors to keep in mind when planning a multi-threaded approach. Let’s have a look.
This is the story of implementing what I've learned into a gridless, interactive, world-building sandbox game called Minor Deity.
Minor Deity on Steam: https://store.steampowered.com/app/3876240/Minor_Deity/
Minor Deity Discord Server: https://discord.gg/2NEb4HxwhF
00:00 Introduction
01:16 Context is Important
02:08 Multi-threaded Native Arrays
03:30 Impact of Memory Caches
04:46 Pointers
05:34 One Job Per Frame
06:50 Setting up the Jobs
08:33 A More Complex Job
09:21 Outro