As far as I know, gdevelop has the characteristic that its movement actions take the framerate into account so that the game always runs at the same speed. This can be seen in the timedelta () value.
Let’s imagine a horizontal R-Type shoot’em up. A resolution of 1080p. The ship moves from one end of the screen to the other in 3 seconds: 1920p / 3s = 640p / s. The ship has a 64x64 pixel sprite. It may seem small, but it is not so small.
Let’s imagine a 16x16 pixel projectile that moves from one end of the screen to the other in 2 seconds: 1920p / 2s = 960p / s.
Let’s imagine that I am playing the game and at the same time I am rendering a video on my computer. so the game does not run smoothly and has framerate drops. this is an example, I can think of many more. The game eventually drops to a rate of 10fps and usually goes to a rate of 30fps. This is very real in a good computer like mine.
If the game goes to 30 fps then in each frame the ship moves 21 pixels: 640p/s / 30fps
If the game goes to 10 fps then in each frame the ship moves 64 pixels: 640p/s / 10fps
If the game goes to 30 fps then in each frame the projectile moves 32 pixels: 960p/s / 30fps
If the game goes at 10 fps then in each frame the projectile moves 96 pixels: 960p/s / 10fps
It can be imagined that the collision between the ship and the projectile is random, which can be a maximum error distance of 144 pixels: (96p + 64p) - 16p
This is a hypothetical case where the computer is pretty good. It is not strange a situation where we want to play even if the computer is a bit saturated. The type of game is the goal of gdevelop and it is not a demanding game. The situation could be more serious with a bad computer and other circumstances.
** EDIT: ** I just realized that frameskip can be avoided by setting the minimum fps to 60 and the maximum to 60. Gdevelop is great. Anyway, although it seems obvious, an option to avoid frameskip or inform people about it would be good. I’ve been eating my head for several days.LOL