0 Favourites

# Can someone explain dt and timescale in detail?

• 3 posts
• I know dt is regarding FPS.

I know 60 is the target fps for the system.

dt*60 -is used to take FPS into consideration.

The system doesn't always have 60 FPS.

Why dt*60 and not dt*fps?

I have an idea why, but I am missing something...

dt*fps would seemingly get stuck in a feed back loop, but not sure.

I noticed in some cases *dt*60 doesn't work.

An example would be on setting a layer angle and layer scale.

When I use 1*dt*60 it happens instantly, I had to use 1*dt to get results.

Why is this?

Does timescale affect FPS?

I always show 60 FPS, but TimeScale 2.0 would make a second last half a second in real world time.

System would show 60fps regardless.

So would TimeScale 2.0 have FPS of 120 in real world time, or is it still 60?

I recently had a timescale issue.

An object would move when system timescale was set to 0.

I originally adjusted timescale of the object, but found it didn't work for an Instance variable (Adjusted Every Tick).

Some older posts suggested

Self.X -11 *dt*60

It said the formula adjusts to timescale and to fps, it does I tested it.

This implies TimeScale of 2 would do 120 ticks per real world second, correct?

I tested

Self.X - (11 * timescale)

It doesn't adjust based off of FPS it seems.

Also...

Since on the topic of TimeScale/DT/FrameRate

I saw

"Set Minimum FrameRate"

in C3.. What does this do?

I didn't understand it in manual.

Kind of seems like I answered most of my questions.

Can someone correct if I am wrong or confirm if I am right.

P.S.

If timescale formula answer is different for C3 than I would like to know it too.

I expect it to be the same, but a new expression or something may have been added.

• Read the tutorial delta-time and framerate independence.

FYI the per-frame FPS is actually 1 / dt, so dt * fps is the same as dt / dt which is always equal to 1. Construct measures FPS over a period of 1 second though so it won't be exactly that, but basically using that formula makes no sense.

Develop games in your browser. Powerful, performant & highly capable.

Construct 3 users don't see these ads
• I have actually read it a few times before.

I know more than I did last time I read it.

It answered most of the questions.

I now understand dt*60 isn't the right one to use and that *dt is.

It also helped me figure out an issue.

I had a variable set to X* 0.015 * dt.

0.015 originally was per tick and not per second.

So it was working, but to small to notice..

I multiplied it by 60 and it is now X*0.9*dt and is working fine.

Also I used the variable somewhere else and had *dt.