Non-linear time is not impossible, but it is a pain in the ass.

The easiest way is to write game events from the end to beginning, so things in the "now" are influenced by things that haven't happened yet. The next step is to apply retroactive past, where things that have already happened can change based on what players are doing "now" or will (have to) do in the future.

In practice, this means you'll be working with hard self-fullfilling prophecies. Prophecies don't predict the future, they set the future; knowledge of the future is hence dangerous because it locksteps you into bringing that future about.

Even softer versions of the same will have your players dealing with dilemmas where the only reason something has happened/is happening/will happen is because player themselves predicted it and are acting in accordance with their prediction. A down-to-earth example of this happening would be "my prediction of being able to complete this painting in two weeks is the sole reason why I'm going to complete this painting in two weeks", a slightly more exotic one would be "my prediction that this society will crash due to rebellion, will only come true because I am choosing to rebel because of my prediction that this society will crash due to rebellion."