v9940 - 60fps, chat revamp, mod stuff
Been a while huh? While I'm pretty sure that more or less everyone had already tried one or other beta from Discord, I think it's important to formally promote a version to take the role of the new stable release.
So, let's begin
60fps (or any FPS, really)*
* so long as
supplies last your CPU can hold up
As it was recited a few times, implementing 60fps on the Nuclear Throne's original source code would not have been viable - the game contained thousands of velocity, timing, and other constants that would all have to be manually readjusted (sometimes just multiplying or dividing by two, sometimes more complex formulas - and you might have thought that your high school physics course was useless).
However, I didn't write a GM-specific code editor with advanced find-replace functionality (pattern matching, custom logic) for nothing, you know, so I thought - maybe this would be more viable to do this way? Fast-forward some 30 hours of work, and the game now spots a current_time_scale variable, which controls how fast everything happens.
So, to run the game at 60fps, you would open chat (T) and paste (Ctrl+V) the following:
/gml q=60 room_speed=q current_time_scale=30/q
For 144fps, you would change 60 to 144.
While this isn't perfect (differences in how projectiles bounce are the most apparent), it's still a very good option if you were irked by 30fps lock in past.
Combine with display scaling, and the game looks smoother than ever.
For a long time, chat in NTT was pretty basic - you could enter text and erase entered text.
This changes now - the chat now has cursor, selection, and even auto-completion!
Mods can make use of new chat features as well, so this is an all-around good thing.
If you are making or playing NTT mods, there are a couple new toys now.
There are now shaders, which can be used for visual effects, or wilder things - such as the raycast mod by Golden Epsilon:
There are now also 3d functions, which can be used for, well, that
And mouselock functions for specific purpose of first-person mods and anything akin.
And you can now make built-in mutations more or less powerful via skill_set(mut_scarier_face, factor)
And about 30 other things
The future is bright.
It would appear like the day had come when Nuclear Throne imports and functions correctly in GameMaker Studio 2, therefore it might finally be time to move to GMS2.
This will allow to make use of various performance improvements that happened in past year and so, will allow to finally have proper post-loop performance in coop (eliminating the need for offline mode), and open the road for some of the wilder improvements (for mods in particular).
For the base game, it'll hopefully mean a less broken Linux and Mac builds, as both runtimes had seen substantial improvements recently.
However, that means that this is potentially the last release that runs on DX9 (and, consequently, Windows XP) - while u99r2 will likely still get a separate XP-compatible version for those few that use it (which, essentially, would be the current state of bugfixes + whatever newer ones manually ported back to GMS1), NTT tends to change far more game code at once, therefore maintaining two independent versions would be impractical.
Get Nuclear Throne Together
Log in with itch.io to leave a comment.
The process is as following:
- Start multiplayer, get to campfire screen
- Each player does `/sideload` to enable loading mods/external content
- Any of players does the commands or `/load startup` to load their startup.txt
When setting the game to run at 60 fps by the command mentioned in this post, I get the following message at the title screen:
Your game seems to be running at >1x speed.
Try removing options.ini from the game directory;
Check the FAQ topic if the issue persists.
What's the cause of this happening? How can this message be disabled? Is there any command in NTT to suppress all warnings and error messages to display on the title screen?
Well, does the game work correctly despite that? If you ran the command and then exited to the main menu, this appears for a split second as the framerate stabilizes to the original value.
I run the command at startup through `startup.txt`. Here's its content.
/gml game_set_size(426, 240)
/gml room_speed*=2 current_time_scale/=2
If I set `AlternateSyncMethod=1` at `options.ini` this message is constantly displayed at the title screen and menus. This can be seen in the video.
When setting AlternateSyncMethod to 0, the warning isn't displayed. However, I observe tearing and tiny frame rate stuttering when playing the game, so I have to change the value back to 1.
In general, I think, it's probably better to put warnings in the console or/and in a log file. Or, as an alternative, there can be a command/option to change log verbosity.
every time i try to install this update i get this error message:
Couldn't open NuclearThroneTogether.exe for writing: System.UnauthorizedAccessException: Access to path "
Snip\Steam\steamapps\common\Nuclear Throne\NuclearThroneTogether.exe" is denied
i managed to fix it by changing the install location, but now it just won't start. i double click on the exe file, it says that the game is running, and then it just... stops running, before it even brings it up.
where we can get that Raycast Mod? i can't find it
Thank you so much for the update! Love it, and the jump to 60fps is beautiful. I couldn't find the raycast mod you mentioned, is it something that's available?
Awesome update, thanks a million. Only one problem: There seems to be a hard cap at 144fps. I can't get the game to run any higher than that and I'm positive it's not a hardware limitation.
Well, I originally had it cap at 60, then someone said that they have a 144hz monitor so I bumped the cap to 144 and never thought of it again I take it that you have a 240hz monitor?
Playing at 144FPS IS SO DOPE
Thanks for making the mod!