Slow down or speed up part physics for slow-motion and time-control effects

It would help if it could be adjusted per WorldModel, and WorldModels gained the ability to run physics simulation.
And/or WorldModels could have a :StepPhysics method on them, which would inherently allow for time scaling using the delta time input.

Regardless, time scaling at any level would be super useful and helpful, it’d be important to allow timescale to be 0 though, to allow simple & efficient physics pausing.

1 Like

I think the best approach is to use other Engines as a reference

I don’t know exactly how they do it I just know how and what I would use it for

I would like to be able to make the game speed faster or slower so say GameSpeed = 2 everything in the game will speed up 2x, this is useful for Tower Defense games, and testing

Essentially the engine runs 2x faster than normal or more depending on the value set

1 Like

Even if it is place wide, this could open up all kinds of possibilities! One request I have is to allow the client to slow its physics separate from the server, this of course would only apply to objects that are network owned by that client. This could be very useful for many things, I have a game that’s mostly client based, where users exist in worlds separate from each other, the entire game is mostly client sided and users can simply see each other if they are in the same world. Having this option would make it fun to use in that game where i could slow time for events and whatnot. But outside of my exact use case I could see this being very useful for a few use cases that local (non place wide) physics time control. You could simply give network ownership to a client with a set physics speed to achieve all kinds of cool things!

1 Like

Roblox has a system which slows down the physics calculation when there is too many parts to calculate so this is for sure possible to just add it as a feature we can change, it would also be nice if we could make the engine prioritize the calculation speed rather than perfomence (if possible obviously)

Currently, for my use cases, it would be great to have “TimeScale” as either a property of a WorldModel or RunService, so I can easily speed up/slow down time.
I also like the ideas of Slow down or speed up part physics for slow-motion and time-control effects - #21 by drewbluewasabi

I’d personally rather both to be possible.

First off, a place wide option definitely, which would perhaps multiply the delta time passed on by RunService events, or would at least affect all physics-related Instances when physics are calculated.
Changing delta time may or may not be beneficial, however it can always be modified to match the time scale by the developer whenever they use it.
This would already allow for tons of slow-motion effects to spice up the gameplay, or in some cases, like with SuperHot-like games, would be almost essential to the experience. For example, slow-mo cams on kills, winning a game, and in cutscenes.

Secondly, it’d be very useful in some cases if this could be applied to individual WorldModels and Assemblies. Tho if this is also added, changing the delta time passed on by RunService events becomes apparently unintuitive, so at that point it’d most likely, if required, have to be calculated by the developer.
This would give far more flexibility to the system, since it wouldn’t be either everything slow-mo or nothing slow-mo, but rather more specific objects for a plethora of visual (and even audial) effects. And not only effects, but even gameplay mechanics could emerge from this.