I looked into adding splines to the world. Finally decided upon using a Matinee to create a spline, attach an actor to it, and then any other game code can simply look at that actor
I did briefly look into USplineComponent but what I had was a little hacky. In my Actor subclass I declared a SplineComponent. From there, I added a member to my’SplineActor’ to allow it to chain into other ‘SplineActors’. When a property changed on the root, it would rebuild the spline. But sadness ensued once I realized what UPrimitiveComponent does internally. It submits a primitive (our spline) to the multithreraded renderer. This proxy has a ‘copy’ of our spline data. This meant what I needed to do was put in some atomic locks or something so that it would be thread safe to render my ‘updated’ splineActor or something
I meant to look into how the LAndscape & Matinee system works but I decided this is out of scope for my ‘starter’ project. I want to focus on learning the gameplay systems (not Tools atm). So I put aside this work and decided to just use Matinee. It already has world splines plus you can tweak the 2d spline representation, etc. The work is already done for my purposes.