One of the more interesting new features in Unity 2018.1 is the new, experimental PlayerLoopSystem API. This deceptively small API set seems to hide a massive change in Unity's guts - we can now modify the engine main loop!
In this demo, you see how we can do amazing things like adding our own custom C# update phases to the engine. We can even *remove* parts of the engine from the player loop! For example, if you're making a 2D single player game it's now possible to remove all the systems related to 3D physics and Networking from the game loop entirely! I have no idea how safe this is in practice, and if it will have a measurable impact on performance or not - but it's cool that we can do it now!
I think the new ability to add our own update phases is possibly the most interesting and profound change here though - It would be great to experiment with moving global systems to this, such as lag compensation or network prediction correction (especially when paired with things like Physics/Physics2D.Simulate... I wonder if calling them from a PlayerSystem would work? deffo something to try). Expect people to do cool - near unimaginable stuff with this new feature!
Related Doc pages: