• Hello [name]! Thanks for joining the GMC. Before making any posts in the Tech Support forum, can we suggest you read the forum rules? These are simple guidelines that we ask you to follow so that you can get the best help possible for your issue.

FPS is slower than Room Speed in 1.4.9, even on fresh project

Hey all,

I'm a bit baffled here. I was working on my game, Slayers, Inc., and I noticed that if I set my room speed to 60, it would run at around 35-45 fps for a colleague of mine when they tried it on their computer, but still ran at 60 fps on my side.

"Oh, it's probably their computer or something they're running in the background", I thought, with all the hubris of a king. Annnd then it happened to me.

At first, I figured it might be something in my game dragging things down, some unnecessary calculation being run too often or a script that never stopped. But even disabling those, the problem persisted (for reference, my game is like Risk of Rain mixed with The Binding of Isaac: lots of enemies, lots of debuffs and damage-over-times).

Then I figured it was that fancy delta_time code I put in the game to handle any lag that happened more gracefully, provided by the wonderful Lucas C at this webzone.

So I took the delta_time shenanigans out. Still happened.

Set the room speed to 120? Game ran at a smooth 60 fps on a 60 Hz monitor, a rough 65-85 FPS on a 120 Hz monitor.

I even made a fresh project, where there was one object that drew text to the GUI showing FPS and room speed, and well...
1611075726999.png

...huh.

So, at the end of this long, winding road is my question: what am I missing? Why are all of my projects running below the room speed I give them? Is there some setting in the Preferences that I borked? ny feedback and thoughts are appreciated. I coul just make my room speed be 200 or above and call it a day, but I don't wanna slap a bandage on like that, knowing that it might (figuratively) melt lower-end hardware for a game that looks like it came from the mid-SNES-era.

Edit: And Ido realize FPS and room speed are not the same thing (if I'm not mistaken, room speed is calculations time, FPS is rednering time, FPS aspires to cap out at room speed), but I used to work on projects with nod delta_time and with room speed at 60, and fps would match that 60 unless there was something that caused lag (ie too many objects)
 
Last edited:
This seems like it might be related to CPU throttling or something like that. Is the laptop on "battery mode" or otherwise have power settings that might reduce CPU usage?
 

FoxyOfJungle

Kazan Games
Well, I have also seen this same problem, I really don't know why, but it was after some Windows 10 update, all my projects (in GMS 1.4) started to be in the 45 FPS range too... Maybe empty projects didn't stay. GMS 2 works normal. Setup: Ryzen 5 3.7 Ghz, 8 GB DDR4 Ram, 2 GB Vram, SSD Nvme 🤔
 
This seems like it might be related to CPU throttling or something like that. Is the laptop on "battery mode" or otherwise have power settings that might reduce CPU usage?
I see where you're coming from. Worth noting my friend's rig (the on who first reported the problem) was a gaming desktop, no exact specs but they're at, if not higher, than mine. And it looks like my battery settings are all at max performance, since this thing can only be academically-defined as a laptop. It's a glorified workstation that never leaves my desk at this point.

Well, I have also seen this same problem, I really don't know why, but it was after some Windows 10 update, all my projects (in GMS 1.4) started to be in the 45 FPS range too... Maybe empty projects didn't stay. GMS 2 works normal. Setup: Ryzen 5 3.7 Ghz, 8 GB DDR4 Ram, 2 GB Vram, SSD Nvme 🤔
Interesting, same thing happened in 1.4, but 2 seemed to be ok? I unfortunately do not have 2, and am on the fence about getting it, so I can't quite test it myself...
 

renex

Member
edit: hey! it's me again, it's been a while and there is a better solution nowadays. check it out: https://github.com/skyfloogle/gmsched

i'll leave the original post down below for reference.

-----------------------------------------------------------

hi! this is very clearly 1.4.1760+'s thread resolution scheduler problem. you can fix that using my patch: https://github.com/omicronrex/gms_scheduler_fix

paste a copy of it in your game maker directory, and add the dll as an included file, and that should fix things for you.
 
Last edited:
hi! this is very clearly 1.4.1760+'s thread resolution scheduler problem. you can fix that using my patch: https://github.com/omicronrex/gms_scheduler_fix

paste a copy of it in your game maker directory, and add the dll as an included file, and that should fix things for you.
Interesting, thank you! I tried that, and it worked when I compiled an exe version of the game, but it was still running into slowdown when testing through the IDE...is there any way around that that you know of?
 

renex

Member
Interesting, thank you! I tried that, and it worked when I compiled an exe version of the game, but it was still running into slowdown when testing through the IDE...is there any way around that that you know of?
go to your studio installation and drop a copy of dbghelp.dll next to runner.exe. glad it helped you!
 
go to your studio installation and drop a copy of dbghelp.dll next to runner.exe. glad it helped you!
Apologies for bothering you, but I just want to make sure I'm in the right place - I dropped the dll in my install folder (pictured below), but the game still has the slowdown when run through the IDE. Am I missing something here?

Tested both on the old install and a fresh install.
1611263957839.png
 

ReignOnU

Member
Setting the sleep timer to 15 ms should fix it, without requiring DLLs. DLLs are cool and all but interferes with multi-platform compatibility. If changing the sleep timer doesn't fix it you may need to use DLLs.
 

YellowAfterlife

ᴏɴʟɪɴᴇ ᴍᴜʟᴛɪᴘʟᴀʏᴇʀ
Forum Staff
Moderator
Setting the sleep timer to 15 ms should fix it, without requiring DLLs. DLLs are cool and all but interferes with multi-platform compatibility. If changing the sleep timer doesn't fix it you may need to use DLLs.
Setting sleep margin to 15 fixes it but at cost of maxing out one of the user's CPU cores (as now the game always waits using a busy-loop). Whether this is appropriate depends on what you do.
 
Sleep cycles was something I recently ran into with my game. I'd ignored the lower fps until, trying to fix something else, someone mentioned this. So just to clarify, Change Global Game Settings > Windows > near the bottom Sleep Cycles. I changed mine to 10 and it immediately became the appropriate 60 fps. I had no idea about it and still don't know a ton. I think it just prevents windows from entering any sort of low power mode/uses more power. But yeah try tweaking that number? Or, uh, I guess listen to the staff guy. Also, I didn't realize this was necro'd so heavily, heh.
 
Interesting. I had same problem running Windy Woods on android. It was running at half room speed. Any idea what sleep-margin should be used for android?
 
Top