I just take a breath and sit back, rethinking the really great stuff we are learning here. Stephen, as you said, there's not a lot of really valuable content available on the net, so again thank you so much for this course. I admit, I'm overwhelmed by the huge amount of details, that get added to the code, so while understanding the concepts, these details require taking that lean back and review.
As always happens to me, in almost each chapter, some ideas come into my mind immediately, and I'd like to share some of these for this important topic for some discussion, because I might be completely off here and would appreciate feedback.
Here we go with my thoughts:
Do we really need to capture Frame Packages on each Tick if for example running at 60fps? Why not simply add a configurable interval of for example 10 captures per second. Remember, that we do an interpolation.
The advantage in the first place is less processing overhead for the capture process itself and less memory required for the LinkedList, that does not grow that fast.
But also: in this case, why use a Linked list at all? We have a given time MaxRecordTime AND a given interval - so the data size is fixed (+-1 maybe) - means, that we can just use a simple TArray allocated in advance whichcould be iterated in a round-robin way.
So this is a fixed allocated structure in memory, so not requiring any dynamic allocations once created. Even the for sure highly optimized linked list cannot be more efficient than this, I believe.
At least I implemented this one (not yet the array version, but the fixed timer interval) It basically works, but Idid not yet test this extensively.